Загрузка данных


Ниже выполнены все задания и даны ответы на контрольные вопросы на основе предоставленных материалов и дополнительных источников.

---

Задание 1. Список основных методов защиты ПО

На основе предоставленного текста  и дополнительных источников :

1. Проверка векторов прерываний — контроль значений в векторах (особенно 13h и 21h) на соответствие ожидаемым.
2. Перестановка векторов прерываний — изменение стандартных адресов обработчиков для затруднения отладки.
3. Чередование команд разрешения/запрещения прерываний — усложнение установки отладчиком контрольных точек.
4. Контроль времени выполнения — выявление остановов и точек останова в теле исполняемого модуля.
5. Шифрование кода — хранение критических участков в зашифрованном виде с расшифровкой только в момент выполнения .
6. Обфускация (запутывание) кода — приведение кода к виду, сохраняющему функциональность, но сложному для анализа .
7. Проверка целостности (контрольные суммы/хэши) — вычисление хэш-функций участков кода и сравнение с эталонными значениями .
8. Создание защищённой среды выполнения — перенос функций защиты в ядро ОС, виртуальную машину или аппаратное обеспечение .
9. Лицензионные метки и привязка к оборудованию — определение права выполнения программы на конкретной машине .
10. Полиморфизм кода — создание синтаксически различных, но функционально идентичных копий программы для защиты от дифференциального анализа .

Задание 2. Список основных средств защиты ПО

1. Протекторы (упаковщики) — программы автоматической защиты:
   · ASProtect — защита с виртуальной машиной и полиморфом 
   · Armadillo/SoftwarePassport — защита с блоками отладчика и «наномитами» 
   · Themida/WinLicense — сильные антиотладочные приёмы 
   · StarForce — виртуальная машина и собственная файловая система SFFS 
   · EXECryptor — качественный полиморфный код 
2. Аппаратные средства защиты:
   · Электронные ключи (USB-токены, dongle) — например, Sentinel, CodeMeter от Wibu-Systems 
   · TPM-модули для доверенной загрузки и безопасного хранения ключей
3. Средства обфускации:
   · LLVM-based решения с библиотекой из 30+ схем запутывания 
   · CodeMorphing, ILProtector 
4. Средства контроля целостности:
   · Тестеры (testers) и корректоры (correctors) для проверки и восстановления изменённого кода 
   · Стражники (guards) — подпрограммы, проверяющие и восстанавливающие целостность данных 
5. Runtime Application Self-Protection (RASP) — защита во время выполнения (обнаружение отладчиков, эмуляторов, рутованных устройств) 
6. Криптографические средства:
   · Цифровые подписи (X.509, HMAC) для подтверждения подлинности 
   · White-Box cryptography

Задание 3. Исследование опыта использования методов и средств защиты ПО

Результаты анализа источников

По методам защиты от исследования (Reverse Engineering):

Согласно аналитическим обзорам , наиболее эффективным подходом является создание защищённой среды выполнения, где функции защиты выносятся на уровень ядра ОС или виртуальной машины. Это обеспечивает:

· криптографически стойкую защиту от анализа кода и модификации
· ограничение доступа к адресному пространству программы
· устойчивость к заражению вирусами

Однако у этого подхода есть два уязвимых места: возможность подмены среды выполнения и необходимость обеспечения целостности самой защищённой среды .

По средствам защиты от копирования:

На рынке представлено множество коммерческих протекторов. Как отмечается в исследовании , ключевые характеристики:

Средство Архитектура Сильные стороны Слабые стороны
StarForce x86/x64 Сильная виртуальная машина, SFFS, защита на серверах Драйвер уже не перехватывает прерывания
ASProtect x86 Виртуальная машина, полиморф Продан компании StarForce, развитие замедлилось
Themida x86 (x64 заявлена) Сильные антиотладочные приёмы, перенаправление импорта «Косметические» обновления
Armadillo x86/x64 Наномиты, блокировка отладчика, интеграция с Digital River Есть публичные распаковщики

По защите от динамического анализа:

Современные решения (например, Wibu-Systems CodeMeter) включают :

· Обнаружение отладчиков (пользовательских, ядерных, IDE)
· Создание вариантов функций и функций-ловушек (traps)
· Механизм состояния на аппаратном ключе — неправильный порядок вызовов активирует блокировку
· Задержку дешифрования — ограничение числа операций дешифрования в единицу времени

Выводы по исследованию

1. Комплексность — ключ к эффективности. Ни один метод не даёт 100% защиты; наиболее стойкие системы сочетают шифрование, обфускацию, контроль целостности и аппаратную привязку .
2. Протекторы удобны, но не идеальны. Автоматические средства защиты экономят время разработчика, однако взломщики часто знакомы с их особенностями, и в интернете существуют автоматические распаковщики для многих из них .
3. Аппаратные ключи (dongle) обеспечивают высокий уровень защиты, но дороги. Их эмуляция затруднена, особенно при использовании собственных протоколов вместо стандартных API .
4. Защита от динамического анализа требует многоуровневого подхода. Обнаружение отладчиков, проверка контрольных сумм памяти, «ловушки» и механизмы состояния на ключе значительно усложняют взлом .

Задание 4. Анализ полученной информации и выводы

Анализ

Проведённое исследование методов и средств защиты ПО позволяет сделать следующие обобщения:

1. Классификация атак на программное обеспечение

Все атаки можно разделить на две категории :

· Статический анализ — изучение кода без его выполнения (дизассемблирование, декомпиляция)
· Динамический анализ — выполнение программы под управлением отладчика или в эмуляторе

Для каждого типа атак существуют свои методы защиты.

2. Эволюция подходов к защите

Традиционные методы (проверка контрольных сумм, простые антиотладочные приёмы) постепенно уступают место более сложным решениям:

· Полиморфизм — каждая копия программы выглядит по-разному, что затрудняет дифференциальный анализ 
· Виртуальные машины — критический код эмулируется, а не выполняется напрямую
· RASP — защита, встроенная в само приложение и активирующаяся при обнаружении угроз 

3. Баланс безопасности и удобства

Как отмечается в исследовании , эффективное усиление защищённости требует компромисса между безопасностью и производительностью. Слишком агрессивная защита может:

· замедлять работу программы
· создавать неудобства для легальных пользователей (частые проверки лицензии)
· увеличивать стоимость разработки и поддержки

4. Роль человеческого фактора

Даже самая совершенная техническая защита может быть скомпрометирована через:

· социальную инженерию (получение лицензионных ключей обманом)
· уязвимости в процессах сборки и дистрибуции
· использование стандартных API, которые взломщики уже изучили

Выводы

1. Защита ПО — это непрерывный процесс, а не разовое действие. Разработчики и злоумышленники находятся в постоянной «гонке вооружений». То, что защищает сегодня, может быть взломано завтра.
2. Наиболее эффективна многоуровневая защита, сочетающая:
   · криптографические методы (шифрование, цифровые подписи)
   · обфускацию и полиморфизм
   · аппаратную привязку (где это экономически оправдано)
   · защиту времени выполнения (анти-отладка, RASP)
3. Автоматические протекторы — хорошее решение для малого и среднего бизнеса, но для программ с высокой стоимостью разработки целесообразно создавать собственную, уникальную систему защиты .
4. Важно использовать собственные протоколы взаимодействия с аппаратными ключами, а не полагаться на стандартные API, так как взломщики хорошо знакомы с типовыми реализациями.
5. Правовая защита (лицензионные соглашения, патенты) дополняет техническую, но не заменяет её. Патенты подтверждают право собственности на инновацию, но не мешают краже кода .

Задание 5. Исследование антивирусных средств

Важное примечание: Задание предполагает практическую работу на вашем личном компьютере. Ниже приведены методика выполнения и шаблон отчёта.

Методика тестирования

1. Подготовка системы:
   · Создайте точку восстановления Windows
   · Подготовьте тестовую папку с набором файлов (документы, скрипты)
   · Для безопасной проверки используйте тестовый файл EICAR (стандартный тест антивирусов)
2. План тестирования (выполняется последовательно, с полным удалением предыдущего антивируса):
   · Тест 1: Microsoft Defender (предустановленный)
   · Тест 2: Kaspersky Free / Kaspersky Standard
   · Тест 3: Avast Free Antivirus
   · Тест 4: Bitdefender Free Edition
3. Критерии оценки (по 5-балльной шкале):
   · Удобство установки и интерфейс
   · Влияние на производительность (время загрузки, запуск программ)
   · Качество обнаружения угроз (тест на EICAR)
   · Количество ложных срабатываний
   · Дополнительные функции (фаервол, VPN, защита от фишинга)

Шаблон отчёта для заполнения

Продукт Версия Дата тестирования
Название антивируса Версия Дата

Критерии оценки:

Критерий Оценка (1-5) Комментарий
1. Установка ___ 
2. Интерфейс (UI) ___ 
3. Влияние на производительность ___ 
4. Обнаружение угроз ___ 
5. Ложные срабатывания ___ 
6. Дополнительные функции ___ 

Общее впечатление: ______________

Итоговая оценка: ⭐ ___ / 5

Контрольные вопросы

1. Назовите методы защиты программ от исследования

· Обфускация (запутывание) кода — преобразование кода в нечитаемую форму с сохранением функциональности 
· Шифрование критических секций кода — хранение важных участков в зашифрованном виде 
· Анти-отладочные приёмы — обнаружение работы отладчика (проверка флагов процесса, времени выполнения, Int 3) 
· Перестановка векторов прерываний — изменение стандартных адресов обработчиков [из предоставленного текста]
· Создание защищённой среды выполнения — вызов функций защиты на уровне ОС или виртуальной машины 
· Полиморфизм — создание синтаксически различных, но функционально идентичных копий 

2. Назовите методы защиты программ от несанкционированных изменений

· Контроль целостности (тестеры) — вычисление хэш-функций участков кода и сравнение с эталонными значениями 
· Корректоры — подпрограммы для безопасного хранения оригинальных значений хэш-функции 
· Стражники (guards) — подпрограммы, не только проверяющие, но и восстанавливающие изменённые участки кода 
· Оblivious hashing — хэширование трассы выполнения для контроля поведения программы во время работы 
· Цифровые подписи — проверка подлинности кода с помощью сертификатов 
· Контроль времени выполнения — выявление остановов в теле исполняемого модуля [из предоставленного текста]

3. Назовите методы защиты программ от копирования

· Привязка к уникальным параметрам оборудования — идентификация компьютера по MAC-адресу, серийным номерам HDD/CPU 
· Аппаратные ключи (dongle) — USB-устройства с EPROM-чипом, содержащим часть кода, необходимого для работы 
· Лицензионные метки — сущности, определяющие право выполнения программы на конкретной машине 
· Онлайн-активация — проверка лицензии на сервере разработчика
· Временные ограничения (trial-период) — демо-версии с ограниченным сроком действия 
· .REG-файлы — файлы с регистрационным ключом, содержащие код для снятия ограничений 

4. Назовите методы защиты противодействия динамическим способам снятия защиты программ от копирования

· Обнаружение отладчиков — проверка наличия отладчика (пользовательского, ядерного, IDE) с блокировкой работы или блокировкой лицензии при обнаружении 
· Контроль времени выполнения (timer checks) — выявление пошагового выполнения (single-stepping) [из предоставленного текста]
· Механизм состояния на аппаратном ключе — сохранение состояния дешифрования на ключе; неправильный порядок вызовов активирует ловушку 
· Задержка дешифрования — ограничение числа операций дешифрования (например, каждые 30 секунд) 
· Функции-ловушки (traps) — специальные варианты функций, при вызове которых ключ самоблокируется 
· Чередование команд разрешения и запрещения прерываний — затруднение установки контрольных точек [из предоставленного текста]

5. Назовите наиболее действенные средства защиты ПО

На основе анализа источников  наиболее действенными средствами являются:

Средство Обоснование эффективности
StarForce Одна из самых сильных виртуальных машин; собственная файловая система SFFS; защита выполняется на серверах компании
Аппаратные ключи (CodeMeter от Wibu-Systems) Многоуровневая защита: варианты функций, ловушки, механизм состояния, задержка дешифрования, обнаружение отладчиков 
Создание защищённой среды выполнения Криптографически стойкая защита от анализа и модификации; ограничение доступа к адресному пространству; устойчивость к вирусам 
RASP (Runtime Application Self-Protection) Защита во время выполнения с обнаружением отладчиков, эмуляторов, рутованных устройств 
Комбинация обфускации + шифрования + аппаратной привязки Комплексный подход, не имеющий единой точки отказа 

---

Примечание по заданию 5: Для выполнения практической части вам необходимо самостоятельно установить выбранные антивирусные средства на свой ПК, заполнить таблицу по указанному шаблону и записать полученные результаты.