ВУЗ:
Составители:
8. СИСТЕМЫ ЗАЩИТЫ ПРОГРАММНОГО ОБЕС-
ПЕЧЕ
НИЯ
8.1. КЛАССИФИКАЦИЯ СИСТЕМ ЗАЩИТЫ ПРОГРАММНОГО ОБЕСПЕЧЕ-
НИЯ
Системы защиты программного обеспечения (СЗПО) широко распространены и на-
ходятся в постоянном развитии, благодаря расширению рынка программного обеспече-
ния (ПО) и телекоммуникационных технологий. Необходимость использования систем
защиты СЗПО обусловлена рядом проблем, среди которых следует выделить: незаконное
использование алгоритмов, являющихся интеллектуальной собственностью автора, при
написании аналогов продукта (промышленный шпионаж); несанкционированное исполь-
зование ПО (кража и копирование); несанкционированная модификация ПО с целью внедре-
ния программных злоупотреблений; незаконное распространение и сбыт ПО (пиратство).
Существующие системы защиты программного обеспечения можно классифицировать
по ряду признаков, среди которых можно выделить:
•
метод установки;
•
используемые механизмы защиты;
•
принцип функционирования.
Системы защиты ПО по
методу установки можно подразделить на:
1)
системы, устанавливаемые на скомпилированные модули ПО;
2)
системы, встраиваемые в исходный код ПО до компиляции;
3)
комбинированные.
Системы первого типа
наиболее удобны для производителя ПО, так как легко мож-
но защитить уже полностью готовое и оттестированное ПО, а потому и наиболее попу-
лярны. В то же время стойкость этих систем достаточно низка (в зависимости от принци-
па действия СЗ), так как для обхода защиты достаточно определить точку завершения
работы «конверта» защиты и передачи управления защищенной программе, а затем при-
нудительно ее сохранить в незащищенном виде.
Системы второго типа неудобны для производителя ПО, так как возникает необхо-
димость обучать персонал работе с программным интерфейсом (API) системы защиты с
вытекающими отсюда денежными и временными затратами. Кроме того, усложняется
процесс тестирования ПО и снижается его надежность, так как кроме самого ПО ошибки
может содержать API системы защиты или процедуры, его использующие. Но такие сис-
темы являются более стойкими к атакам, потому что здесь исчезает четкая граница между
системой защиты и как таковым ПО.
Наиболее живучими являются комбинированные системы защиты. Сохраняя досто-
инства и недостатки систем второго типа, они максимально затрудняют анализ и дезак-
тивацию своих алгоритмов.
По
используемым механизмам защиты СЗ можно классифицировать на:
1) системы, использующие сложные логические механизмы;
2)
системы, использующие шифрование защищаемого ПО;
3)
комбинированные системы.
Системы первого типа используют различные методы и приемы, ориентированные
на затруднение дизассемблирования, отладки и анализа алгоритма СЗ и защищаемого
ПО. Этот тип СЗ наименее стоек к атакам, так как для преодоления защиты достаточно
проанализировать логику процедур проверки и должным образом их модифицировать.
Более стойкими являются системы второго типа. Для дезактивации таких защит не-
обходимо определение ключа дешифрации ПО. Самыми стойкими к атакам являются
комбинированные системы.
Для защиты ПО используется ряд методов:
1.
Алгоритмы запутывания – используются хаотические переходы в разные части
кода, внедрение ложных процедур – «пустышек», холостые циклы, искажение количест-
ва реальных параметров процедур ПО, разброс участков кода по разным областям ОЗУ и
т.п.
2.
Алгоритмы мутации – создаются таблицы соответствия операндов – синонимов
и замена их друг на друга при каждом запуске программы по определенной схеме или
случайным образом, случайные изменения структуры программы.
3.
Алгоритмы компрессии данных – программа упаковывается, а затем распаковы-
вается по мере выполнения.
4.
Алгоритмы шифрования данных – программа шифруется, а затем расшифровы-
вается по мере выполнения.
Страницы
- « первая
- ‹ предыдущая
- …
- 93
- 94
- 95
- 96
- 97
- …
- следующая ›
- последняя »