МЕТОДЫ ЗАЩИТЫ ОТ ИССЛЕДОВАНИЯ ПРОГРАММ
Технологии противодействия заметно обгоняют эволюцию систем защиты
Крис Касперски. Техника и философия
хакерских атак
· Средства исследования программ
· Защита программ от дисассемблирования
· Защита программ от работы под контролем отладчика
Противодействие попыткам запуска и/или исполнения защищенной программы обязательно необходимо сопровождать механизмами, предотвращающими возможность исследования программы, в том числе и зарегистрированных (законных) копий.
Повторим, что для взлома защиты нарушителю прежде всего необходимо найти защитный механизм и понять логику его работы, то есть исследовать программу.
Средства исследования программ
Основными инструментами для исследования программ являются дисассемблеры и отладчики.
Дисассемблирование - это получение из исполняемого кода программы код на языке ассемблера.
Дисассемблер - программа, осуществляющая дисассемблирование.
Интерактивный дисассемблер - программа, тесно взаимодействующая с пользователем в процессе дисассемблирования.
Отладчик - программа, предназначенная для анализа поведения другой программы, обеспечивающая остановку в указанных точках и позволяющая просматривать (редактировать) содержимое ячеек памяти, регистров процессора и команды программы.
Эмулирующий отладчик - отладчик, который самостоятельно интерпретирует и выполняет команды программы (без использования реального процессора).
Существует также множество программ-утилит, предназначенных для вспомогательных операций по изучению логики работы механизма защиты. Широко используются
· шестнадцатеричные просмотрщики - редакторы;
· редакторы таблиц экспорта/импорта;
· так называемые файловые мониторы, позволяющие отслеживать операции работы с файлами;
· а также мониторы реестра, создающие протокол обращений к реестру
· и многие другие.
Например, с помощью файлового монитора (FileMonitor) взломщик может отследить работу защищенной программы с файлами и обнаружить ключ (пароль), хранящийся в некотором файле. Произведя анализ протокола обращений к реестру с помощью монитора реестра (RegMon), взломщик может обнаружить ключ (пароль), хранящийся в системной базе данных Registry.
Инструментарий современного хакера на столько развит, что все попытки авторов защит противодействовать исследованию программ с точки зрения высококвалифицированных хакеров считаются безрезультатными.
С помощью современных версий интерактивных дисассемблеров и эмулирующих отладчиков может быть обнаружена практически любая защита.
! |
Тем не менее отказываться от использования приемов и методов защиты от дисассемблирования кода программы и ее работы под отладчиком нельзя.
Напомним, что абсолютной защиты вообще не бывает. Эффективной защитой считается такая, на взлом которой необходимы материальные и трудовые затраты, во много раз превышающие затраты на покупку программного обеспечения. Поэтому затруднение взлома защиты любыми путями и методами является оправданным. Если преодолеть защиту не сможет молодой неопытный взломщик, и заказчику придется обращаться к высококвалифицированному специалисту, - это уже плюс.
Считая защиту от дисассемблирования и отладки, рассчитанной на взломщика средней квалификации, назовем такую защиту затруднением анализа программ. Рассмотрим ее основные моменты.