Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв Тюмень РСПСИТ 2010-12-14 Послан в Тюмень....doc
Скачиваний:
18
Добавлен:
24.04.2019
Размер:
5.82 Mб
Скачать

1.10. Классификация систем защиты программных средств

Существующие системы защиты ПС (СЗ ПС) можно клас­си­фи­ци­ро­вать по ряду признаков: методы установки, используемые механизмы защиты и принципы функционирования.

1.10.1. Методы установки

Системы, устанавливаемые на скомпилированные модули ПC, удобны для производителя ПC, так как позволяют легко защитить пол­ностью готовое и оттестированное ПС. Стойкость этих систем доста­точ­но низка, так как для обхода защиты достаточно определить точку завер­шения работы «конверта» защиты и передачи управления защищен­ной программе, а затем принудительно ее сохранить в незащищенном виде.

Системы, встраиваемые в исходный код ПС до компиляции, не­удоб­ны для производителя ПC, так как возникает необходимость обучать персонал работе с программным интерфейсом (API) системы защиты с вытекающими отсюда денежными и временными затратами. Кроме того, усложняется процесс тестирования ПC и снижается его надежность, поскольку, кроме самого ПC, ошибки могут быть как в API системе защиты, так и в процедурах, его использующих. Но такие системы являются стой­кими к атакам, потому что в них исчезает четкая граница между системой защиты и ПC как таковым.

Комбинированные системы защиты являются наиболее живучими. Сохраняя достоинства и недостатки систем второго типа, они максимально затрудняют анализ и дезактивацию своих алгоритмов.

1.10.2. Методы защиты

Рассмотрим основные методы:

  • алгоритмы запутывания: используются хаотичные переходы в разные части кода, внедрение ложных процедур-«пустышек», холостые циклы, искажение количества реальных параметров процедур ПС, разброс участков кода по разным областям ОЗУ;

  • алгоритмы мутации: cоздаются таблицы соответствия операн­дов-синонимов и замена их друг на друга при каждом запуске программы по определенной схеме или случайным образом, случайные изменения структуры программы;

  • алгоритмы компрессии данных: программа упаковывается, а затем распаковывается по мере выполнения;

  • алгоритмы шифрования данных: программа шифруется, а затем расшифровывается по мере выполнения;

  • вычисление сложных математических выражений в процессе отра­ботки механизма защиты: элементы логики защиты зависят от ре­зуль­тата вычисления значения какой-либо формулы или группы формул;

  • методы затруднения дизассемблирования: используются раз­лич­ные приемы, направленные на предотвращение дизассемблирования в пакет­ном режиме;

  • методы затруднения отладки: используются различные приемы, направленные на усложнение отладки программы;

  • эмуляция процессоров и операционных систем: создаются вир­туаль­ный процессор и/или операционная система (не обязательно реально существующие) и программа-переводчик из системы команд IBM в систему команд созданного процессора или ОС; после такого перевода ПС может выполняться только при помощи эмулятора, что резко затрудняет исследование алгоритма ПС;

  • нестандартные методы работы с аппаратным обеспечением: мо­ду­ли системы защиты обращаются к аппаратуре ЭВМ, минуя процедуры операционной системы, и используют мало известные или недокументи­ро­ван­ные ее возможности;

  • шифрование защищаемого ПС: для дезактивации защиты необходи­мо определение ключа дешифрации ПС;

  • комбинированные методы.