Файл: Классификация систем защиты программного обеспечения (защита программного обеспечения ).pdf
Добавлен: 29.04.2023
Просмотров: 265
Скачиваний: 1
СОДЕРЖАНИЕ
1 ЗАЩИТА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
1.1 Обеспечение безопасности программного обеспечения. Меры и основные направления
1.2. Методы и средства защиты программного обеспечения
2. СИСТЕМЫ ЗАЩИТЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЕ. ОСНОВНЫЕ ВИДЫ И ОЦЕНКА ИХ ЭФФЕКТИВНОСТИ
2.1. Классификация систем защиты программного обеспечения
2.2. Достоинства и недостатки основных систем защиты программного обеспечения
Согласно Гражданского кодекса Российской Федерации, программное обеспечение и базы данных приравниваются к литературным произведениям, и их защита регулируется авторским законодательством, однако, в контексте защиты программного обеспечения как объекта интеллектуальной собственности, к программам применима как лицензия, так и патент, так как зачастую программы имеют инновационный характер и сложный технологический процесс разработки, поэтому авторское законодательство, порой, не может с учётом всех аспектов обеспечить должный уровень правовой защиты данным результатам интеллектуальной деятельности. Но, чтобы обезопасить программу от незаконного использования (воспроизведения, коммерческого использования, сдачи в прокат или импорта произведения) правовых средств, порой, недостаточно, так как эти средства в сфере защиты интеллектуальной собственности известны неповоротливой и абсолютно негибкой процедурой осуществления их на практике. Ведь от момента обнаружения факта нарушения авторских прав до конечного решения судебных инстанций может пройти от нескольких месяцев до нескольких лет судебных тяжб, которые в свою очередь также требуют затрат средств и времени.
2. СИСТЕМЫ ЗАЩИТЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЕ. ОСНОВНЫЕ ВИДЫ И ОЦЕНКА ИХ ЭФФЕКТИВНОСТИ
2.1. Классификация систем защиты программного обеспечения
Существующие системы защиты программного обеспечения можно классифицировать по ряду признаков, среди которых можно выделить:
- метод установки;
- используемые механизмы защиты;
- принцип функционирования.
Системы защиты ПО по методу установки можно подразделить на:
-
-
-
- системы, устанавливаемые на скомпилированные модули ПО;
- системы, встраиваемые в исходный код ПО до компиляции;
- комбинированные.
-
-
Системы первого типа наиболее удобны для производителя ПО, так как легко можно защитить уже полностью готовое и оттестированное ПО, а потому и наиболее популярны. В то же время стойкость этих систем достаточно низка (в зависимости от принципа действия системы защиты), так как для обхода защиты достаточно определить точку завершения работы «конверта» защиты и передачи управления защищенной программе, а затем принудительно ее сохранить в незащищенном виде.
Системы второго типа неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с программным интерфейсом (API) системы защиты с вытекающими отсюда денежными и временными затратами. Кроме того, усложняется процесс тестирования ПО и снижается его надежность, так как кроме самого ПО ошибки может содержать API системы защиты или процедуры, его использующие. Но такие системы являются более стойкими к атакам, потому что здесь исчезает четкая граница между системой защиты и как таковым ПО.
Наиболее живучими являются комбинированные системы защиты. Сохраняя достоинства и недостатки систем второго типа, они максимально затрудняют анализ и дезактивацию своих алгоритмов.
По используемым механизмам защиты системы защиты можно классифицировать на:
1) системы, использующие сложные логические механизмы;
2) системы, использующие шифрование защищаемого ПО;
3) комбинированные системы.
Системы первого типа используют различные методы и приемы, ориентированные на затруднение дизассемблирования, отладки и анализа алгоритма системы защиты и защищаемого ПО. Этот тип систем наименее стоек к атакам, так как для преодоления защиты достаточно проанализировать логику процедур проверки и должным образом их модифицировать.
Более стойкими являются системы второго типа. Для дезактивации таких защит необходимо определение ключа дешифрации ПО. Самыми стойкими к атакам являются комбинированные системы.
Для защиты ПО используется ряд методов:
1. Алгоритмы запутывания – используются хаотические переходы в разные части кода, внедрение ложных процедур – «пустышек», холостые циклы, искажение количества реальных параметров процедур ПО, разброс участков кода по разным областям ОЗУ и т.п.
2. Алгоритмы мутации – создаются таблицы соответствия операндов – синонимов и замена их друг на друга при каждом запуске программы по определенной схеме или случайным образом, случайные изменения структуры программы.
3. Алгоритмы компрессии данных – программа упаковывается, а затем распаковывается по мере выполнения.
4. Алгоритмы шифрования данных – программа шифруется, а затем расшифровывается по мере выполнения.
5. Вычисление сложных математических выражений в процессе отработки механизма защиты – элементы логики защиты зависят от результата вычисления значения какой-либо формулы или группы формул.
6. Методы затруднения дизассемблирования – используются различные приемы, направленные на предотвращение дизассемблирования в пакетном режиме.
7. Методы затруднения отладки – используются различные приемы, направленные на усложнение отладки программы.
8. Эмуляция процессоров и операционных систем – создается виртуальный процессор и/или операционная система (не обязательно существующие) и программапереводчик из системы команд IBM в систему команд созданного процессора или ОС, после такого перевода ПО может выполняться только при помощи эмулятора, что резко затрудняет исследование алгоритма ПО.
9. Нестандартные методы работы с аппаратным обеспечением – модули системы защиты обращаются к аппаратуре ЭВМ, минуя процедуры ОС, и используют малоизвестные или недокументированные ее возможности.
По принципу функционирования системы защиты можно подразделить на следующие:
1) упаковщики/шифраторы;
2) системы защиты от несанкционированного копирования;
3) системы защиты от несанкционированного доступа.
Первоначально основной целью упаковщиков/шифраторов являлось уменьшение объема исполняемого модуля на диске без ущерба для функциональности программы, но позднее на первый план вышла цель защиты программного обеспечения от анализа его алгоритмов и несанкционированной модификации. Для достижения этого используются алгоритмы компрессии данных; приемы, связанные с использованием недокументированных особенностей операционных систем и процессоров; шифрование данных, алгоритмы мутации, запутывание логики программы, приведение операционной системы в нестабильное состояние на время работы программного обеспечения и др. Целью таких систем является защита программного обеспечения от анализа его алгоритмов и несанкционированной модификации. Для достижения этого используются алгоритмы компрессии данных; шифрование данных, алгоритмы мутации, запутывание логики программы, приведение ОС в нестабильное состояние на время работы программного обеспечения и др.
Защита от несанкционированного копирования — система мер, направленных на противодействие несанкционированному копированию информации, как правило, представленной в электронном виде (данных или собственнического программного обеспечения).
При защите от не санкционированного копирования основываются в зависимости от применяемых способов и средств могут использоваться правовые, организационные, технические и криптографические методы защиты.
Правовые методы защиты информации от несанкционированного копирования основываются на ответственности, предусмотренной действующим законодательством, как за несанкционированное использование защищаемой информации, так и за преодоление применяемых средств защиты информации.
Организационные методы защиты информации от несанкционированного копирования заключаются в том, что полноценное использование защищаемой информации невозможно без соответствующей поддержки со стороны ее владельца (пользовательская документация, «горячая линия», система обучения пользователей, обновление ПО и т. п.).
Технические методы защиты информации от несанкционированного копирования предполагают намеренное ограничение или затруднение различных действий с данными в электронной форме (копирование, модификация, просмотр и т. п.), либо позволяют отследить такие действия с помощью систем контроля и управления доступом.
Криптографические методы защиты информации от НСК используют криптостойкие алгоритмы защиты информации. Данные методы основываются на необходимости знания определенного секретного ключа для получения доступа к защищаемой информации.
Преимуществом технических и криптографических методов защиты информации от НСК является возможность предотвращения непосредственного копирования информации с носителей.
Средства защиты от несанкционированного доступа — это программные и/или аппаратные средства, позволяющие предотвратить попытки несанкционированного доступа, такие как неавторизованный физический доступ, доступ к файлам, хранящимся на компьютере, уничтожение конфиденциальных данных.
Средства защиты от несанкционированного доступа чаще всего имеют следующие функции:
- Осуществление идентификации и усиленной аутентификации доверенными средствами, как пользователей, так и устройств.
- Разграничение доступа к файлам и каталогам в соответствии с матрицей доступа (дискреционный метод) и режима конфиденциальности (полномочный доступ).
- Регистрация и хранение информации о действиях пользователя, позволяющие производить мониторинг и аудит информационной безопасности.
- Построение замкнутой программной среды, позволяющей запускать только выделенный набор программ из белого списка.
- Контроль целостности файлов и каталогов (с возможностью запрета на загрузку операционной системы, в случае повреждения данных).
- Теневое копирование информации (при копировании конфиденциальных данных на носители информации, при печати конфиденциальной информации на принтере).
- Контроль устройств (разрешение и запрет на использование флеш-накопителей, DVD-приводов, Wi-Fi-адаптеров и другого оборудования).
2.2. Достоинства и недостатки основных систем защиты программного обеспечения
Первоначально основной целью упаковщиков/шифраторов являлось уменьшение объема исполняемого модуля на диске без ущерба для функциональности программы, но позднее на первый план вышла цель защиты ПО от анализа его алгоритмов и несанкционированной модификации. Для достижения этого используются алгоритмы компрессии данных; приемы, связанные с использованием недокументированных особенностей операционных систем и процессоров; шифрование данных, алгоритмы мутации, запутывание логики программы, приведение ОС в нестабильное состояние на время работы ПО и др.
Положительные стороны:
-
-
-
- В рамках периода безопасного использования данные системы обеспечивают высокий уровень защиты ПО от анализа его алгоритмов.
- Методы упаковки/шифрации намного увеличивают стойкость СЗ других типов.
-
-
Отрицательные стороны:
-
-
-
- Практически все применяемые методы замедляют выполнение кода ПО.
- Шифрование/упаковка кода ПО вызывает затруднения при обновлении (update) и исправлении ошибок (bugfix, servicepack).
- Возможно повышение аппаратно-программных требований ПО.
- В чистом виде данные системы не применимы для авторизации использования ПО.
- Эти системы применимы лишь к продуктам небольшого объема.
- Данный класс систем уязвим, так как программный код может быть, распакован или расшифрован для выполнения. Обладают небольшим сроком безопасного использования ввиду п. 4.
- Упаковка и шифрование исполняемого кода вступает в конфликт с запрещением самомодифицирующегося кода в современных ОС.
-
-
Системы защиты от несанкционированного копирования осуществляют «привязку» программного обеспечения к дистрибутивному носителю (гибкий диск, CD и др.). Данный тип защит основывается на глубоком изучении работы контроллеров накопителей, их физических показателей, нестандартных режимах разбивки, чтения/записи и т.п. При этом на физическом уровне создается дистрибутивный носитель, обладающий предположительно неповторимыми свойствами (нестандартная разметка носителя информации или/и запись на него дополнительной информации – пароля или метки), а на программном – создается модуль, настроенный на идентификацию и аутентификацию носителя по его уникальным свойствам. При этом возможно применение приемов, используемых упаковщиками/шифраторами.