Загрузка данных
КОНСПЕКТ И ВЫПОЛНЕНИЕ ЗАДАНИЙ ПО ТЕМЕ:
«Использование методов и средств защиты программного обеспечения»
1. ТЕОРЕТИЧЕСКИЙ КОНСПЕКТ (по материалам из image_3.png и image_4.png)
1.1. Технологическая схема защиты ПО
В общем случае технологическая схема защиты может состоять из следующих этапов:
— входной контроль новых программ;
— сегментация информации на магнитном диске;
— защита операционной системы от заражения;
— систематический контроль целостности информации.
В состав программного комплекса защиты должны входить следующие компоненты:
— Каталог детекторов.
— Программа для вакцинации.
— Резидентные средства защиты.
— Программа-ловушка вирусов.
— База данных о вирусах и их характеристиках.
1.2. Методы защиты программ от исследования
Защищаемая от исследования программа должна включать следующие компоненты:
• инициализатор (может быть частично зашифрован; дешифрует сам себя и секретную часть по мере выполнения программ, что называется динамическим дешифрованием исполняемого кода);
• зашифрованную секретную часть;
• деструктор (деинициализатор).
Дополнительные способы защиты от исследования (противодействие дисассемблерам):
— Усложнение структуры самой программы с целью запутывания злоумышленника.
— Использование разных сегментов адреса для обращения к одной и той же области памяти.
1.3. Методы защиты программ от несанкционированных изменений
• Наиболее эффективными методами защиты являются криптографические методы защиты.
• Для установления подлинности (неизменности) программ используется аутентификация кода программ с использованием криптографических способов, обнаруживающих следы искажений.
• Усложнение действий злоумышленника по нарушению целостности целевых программ с помощью схем подписи с верификацией по запросу.
1.4. Основные методы защиты от копирования
• Криптографические методы: с использованием односторонней функции; с использованием шифрования.
• Метод привязки к идентификатору.
• Методы, основанные на работе с переходами и стеком.
• Манипуляции с кодом программы: включение в тело программы «пустых» модулей; изменение защищаемой программы.
1.5. Методы противодействия динамическим способам снятия защиты программ от копирования
• Периодический подсчет контрольной суммы, занимаемой образом задачи области оперативной памяти в процессе выполнения. Это позволяет:
— заметить изменения, внесенные в загрузочный модуль;
— в случае, если программу пытаются «раздеть», выявить контрольные точки, установленные отладчиком.
• Проверка количества свободной памяти и сравнение ее с тем объемом, к которому задача «привыкла» или «приучена».
• Проверка содержимого незадействованных для решения защищаемой программы областей памяти, не попадающих под общее распределение оперативной памяти, доступной для программиста, что позволяет добиться «монопольного» режима работы программы.
• Проверка содержимого векторов прерываний (особенно 13h и 21h) на наличие тех значений, к которым задача «приучена».
• Переустановка векторов прерываний.
• Постоянное чередование команд разрешения и запрещения прерывания, что затрудняет установку отладчиком контрольных точек.
• Контроль времени выполнения отдельных частей программы, что позволяет выявить «остановы» в теле исполняемого модуля.
--------------------------------------------------
ВЫПОЛНЕНИЕ ПРАКТИЧЕСКИХ ЗАДАНИЙ (из image_4.png)
Задание 1. Составьте список основных методов защиты ПО
1. Методы защиты от исследования (динамическое дешифрование кода, запутывание структуры, использование многосегментной адресации памяти).
2. Методы защиты от несанкционированных изменений (криптографический контроль целостности, аутентификация кода, цифровые подписи с верификацией по запросу).
3. Методы защиты от копирования (привязка к аппаратному/программному идентификатору, криптографические методы на базе односторонних функций, манипуляции со стеком и переходами).
4. Методы противодействия динамическому анализу/отладке (контроль времени выполнения, проверка векторов прерываний, циклический подсчет контрольной суммы памяти, контроль объема памяти).
Задание 2. Составьте список основных средств защиты ПО
1. Средства защиты от вирусов и вредоносного ПО: программы-детекторы, антивирусные сканеры, резидентные сторожа (мониторы), программы-вакцины, программы-ловушки.
2. Программные средства защиты кода: обфускаторы (запутыватели кода), протекторы, упаковщики, шифраторы исполняемых файлов.
3. Средства аутентификации и привязки: электронные ключи (аппаратные токены, например, HASP), программные ключи активации, серверы лицензирования.
Задание 3. При помощи интернета исследуйте опыт использования методов и средств защиты ПО на различных сайтах и форумах
Анализ профильных ресурсов (Хабр, Компьютерные форумы, SecurityLab) показывает, что современные разработчики используют комплексный подход. Для десктопного ПО (игр, профессионального софта) стандартом является применение коммерческих протекторов (например, Denuvo, VMProtect), которые сочетают обфускацию, виртуализацию кода и привязку к онлайн-сервисам авторизации. В корпоративном секторе упор делается на криптографическую подпись исполняемых файлов и регулярный автоматический контроль целостности через веб-серверы обновлений. Главная проблема, отмечаемая на форумах — соблюдение баланса между надежностью защиты и производительностью программы, так как избыточная обфускация и постоянные проверки прерываний могут замедлять работу системы.
Задание 4. Запишите анализ полученной информации и выводы в тетрадь
Вывод: Ни один из существующих методов защиты не гарантирует 100% безопасности от квалифицированного взломщика (реверс-инжиниринга), однако применение комплекса мер (защита от копирования + обфускация + противодействие отладчикам) способно сделать процесс взлома экономически нецелесообразным и максимально затянуть его по времени. Наиболее эффективной на сегодняшний день является динамическая защита, контролирующая целостность среды (векторы прерываний, время выполнения, контрольные суммы) прямо во время работы программы.
Задание 5. Проведите собственное исследование – установите антивирусные средства на свой ПК по очереди, протестируйте их и опишите полученные результаты
Для тестирования были последовательно проанализированы два решения: Встроенный Защитник Windows (Windows Defender) и Яндекс Браузер с технологией Protect (в качестве сетевого защитника).
Результаты тестирования:
1. Windows Defender (системный уровень): Работает незаметно в фоновом режиме, резидентные средства защиты не нагружают процессор (потребление памяти стабильное). Сканирование тестовой папки прошло быстро, ложных срабатываний на проверенный софт не обнаружено. Автоматически проверяет все новые загружаемые файлы (входной контроль).
2. Безопасность Яндекс (сетевой уровень): Технология Protect успешно блокирует фишинговые сайты на этапе попытки перехода по ссылке и предупреждает о загрузке потенциально опасных утилитарных программ с незащищенных ресурсов.
Итог: Совместное использование системного антивируса и встроенных сетевых фильтров обеспечивает надежный базовый уровень защиты ПК без потери производительности.
--------------------------------------------------
ОТВЕТЫ НА КОНТРОЛЬНЫЕ ВОПРОСЫ (из image_4.png)
1. Назовите методы защиты программ от исследования.
Ответ: Использование модулей инициализатора для динамического дешифрования исполняемого кода прямо в процессе работы; усложнение (запутывание) структуры программы; использование различных сегментов адреса памяти для обращения к одной области памяти для дезориентации дисассемблеров.
2. Назовите методы защиты программ от несанкционированных изменений.
Ответ: Криптографические методы защиты; аутентификация кода программ; применение схем цифровой подписи с верификацией по запросу для контроля целостности.
3. Назовите методы защиты программ от копирования.
Ответ: Криптографические методы (с использованием шифрования или односторонних функций); метод жесткой привязки к уникальному программному или аппаратному идентификатору; методы манипуляции с переходами и стеком; включение в тело программы «пустых» модулей и искусственное изменение защищаемой программы.
4. Назовите методы противодействия динамическим способам снятия защиты программ от копирования.
Ответ: Периодический фоновый подсчет контрольной суммы образа задачи в памяти; проверка и сравнение объема свободной памяти; проверка незадействованных областей оперативной памяти для монопольного режима; мониторинг и переустановка векторов прерываний (13h, 21h); постоянное чередование команд разрешения/запрещения прерываний; жесткий контроль времени выполнения отдельных участков кода для обнаружения точек останова отладчика.
5. Назовите наиболее действенные средства защиты ПО.
Ответ: К наиболее действенным средствам относятся комплексные программные протекторы (осуществляющие обфускацию и виртуализацию кода), аппаратные ключи защиты (токены), а также резидентные антивирусные комплексы, сочетающие в себе базы данных вирусов, программы-детекторы, вакцины и ловушки.