ВУЗ:
Составители:
Т е м а 10. СИСТЕМЫ ЗАЩИТЫ ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
10.1. КЛАССИФИКАЦИЯ СИСТЕМ ЗАЩИТЫ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Системы защиты ПО широко распространены и находятся в постоянном развитии, благодаря расширению рынка ПО и
телекоммуникационных технологий. Необходимость использования систем защиты (СЗ) ПО обусловлена рядом проблем,
среди которых следует выделить: незаконное использование алгоритмов, являющихся интеллектуальной собственностью
автора, при написании аналогов продукта (промышленный шпионаж); несанкционированное использование ПО (кража и
копирование); несанкционированная модификация ПО с целью внедрения программных злоупотреблений; незаконное рас-
пространение и сбыт ПО (пиратство).
Существующие системы защиты программного обеспечения можно классифицировать по ряду признаков, среди которых
можно выделить:
1)
метод установки;
2)
используемые механизмы защиты;
3)
принцип функционирования.
Системы защиты ПО по
методу установки можно подразделить на:
1)
системы, устанавливаемые на скомпилированные модули ПО;
2)
системы, встраиваемые в исходный код ПО до компиляции;
3)
комбинированные.
Системы первого типа
наиболее удобны для производителя ПО, так как легко можно защитить уже полностью готовое
и аттестированное ПО, а потому и наиболее популярны. В то же время стойкость этих систем достаточно низка (в зависимо-
сти от принципа действия СЗ), так как для обхода защиты достаточно определить точку завершения работы "конверта" за-
щиты и передачи управления защищенной программе, а затем принудительно ее сохранить в незащищенном виде.
Системы второго типа неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с про-
граммным интерфейсом (API) системы защиты с вытекающими отсюда денежными и временными затратами. Кроме того, ус-
ложняется процесс тестирования ПО и снижается его надежность, так как кроме самого ПО ошибки может содержать API сис-
темы защиты или процедуры, его использующие. Но такие системы являются более стойкими к атакам, потому что здесь исче-
зает четкая граница между системой защиты и как таковым ПО.
Наиболее живучими являются комбинированные системы защиты. Сохраняя достоинства и недостатки систем второго
типа, они максимально затрудняют анализ и дезактивацию своих алгоритмов.
По
используемым механизмам защиты СЗ можно классифицировать на:
1)
системы, использующие сложные логические механизмы;
2)
системы, использующие шифрование защищаемого ПО;
3)
комбинированные системы.
Системы первого типа используют различные методы и приемы, ориентированные на затруднение дизассемблирования,
отладки и анализа алгоритма СЗ и защищаемого ПО. Этот тип СЗ наименее стоек к атакам, так как для преодоления защиты
достаточно проанализировать логику процедур проверки и должным образом их модифицировать.
Более стойкими являются системы второго типа. Для дезактивации таких защит необходимо определение ключа де-
шифрации ПО. Самыми стойкими к атакам являются комбинированные системы.
Для защиты ПО используется ряд методов, таких как:
1.
Алгоритмы запутывания – используются хаотические переходы в разные части кода, внедрение ложных процедур –
"пустышек", холостые циклы, искажение количества реальных параметров процедур ПО, разброс участков кода по разным
областям ОЗУ и т.п.
2.
Алгоритмы мутации – создаются таблицы соответствия операндов-синонимов и замена их друг на друга при каж-
дом запуске программы по определенной схеме или случайным образом, случайные изменения структуры программы.
3.
Алгоритмы компрессии данных – программа упаковывается, а затем распаковывается по мере выполнения.
4.
Алгоритмы шифрования данных – программа шифруется, а затем расшифровывается по мере выполнения.
5.
Вычисление сложных математических выражений в процессе отработки механизма защиты – элементы логики
защиты зависят от результата вычисления значения какой-либо формулы или группы формул.
6.
Методы затруднения дизассемблирования – используются различные приемы, направленные на предотвращение
дизассемблирования в пакетном режиме.
7.
Методы затруднения отладки – используются различные приемы, направленные на усложнение отладки програм-
мы.
8.
Эмуляция процессоров и операционных систем – создается виртуальный процессор и/или операционная система (не
обязательно существующие) и программа-переводчик из системы команд IBM в систему команд созданного процессора или
ОС, после такого перевода ПО может выполняться только при помощи эмулятора, что резко затрудняет исследование алго-
ритма ПО.
9.
Нестандартные методы работы с аппаратным обеспечением – модули системы защиты обращаются к аппаратуре
ЭВМ, минуя процедуры ОС, и используют малоизвестные или недокументированные ее возможности.
В свою очередь, злоумышленники так же применяют ряд методов и средств для нарушения систем защиты. Ситуация
противостояния разработчиков СЗПО и злоумышленников постоянно изменяется за счет комбинирования уже известных
Страницы
- « первая
- ‹ предыдущая
- …
- 98
- 99
- 100
- 101
- 102
- …
- следующая ›
- последняя »