1.3. Мониторинг событий
Средства мониторинга событий - утилиты, отслеживающие операции, производимые программным обеспечением над файлами, реестром, портами, а также отслеживающие потоки системных сообщений.
Программы, выполняющие слежение над файловыми операциями и операциями с реестром Windows, представляют собой мощный инструмент для злоумышленника при взломе программных защит. Их использование помогает ему намного быстрее понять принцип функционирования модуля защиты ПО, локализовать его в коде программы, и в дальнейшем – атаковать его.
Средства мониторинга файловых операций и операций с реестром используются злоумышленником в первую очередь для решения следующих задач.
Для вычисления файлов, в которых модуль защиты хранит для себя служебную, ключевую информацию, цифровые подписи, и т.д.
Для вычисления секретных недокументируемых файлов, в которых модуль защиты хранит конфиденциальную информацию. Такие файлы иногда используются в слабых программных защитах и, как правило, хранятся во временных либо системных папках.
Для вычисления тех файлов, в которые модуль защиты записывает информацию при установке ПО. Как правило, это бывает необходимо для снятия защит, ограничивающих функционирование во времени использования.
Для вычисления записей в системном реестре Windows, в которых модуль защиты сохраняет служебную информацию при регистрации. Это также бывает необходимо, при снятии защит по времени использования. Кроме этого, некоторые разработчики защит ПО довольно часто в реестр записывают конфиденциальную информацию (например, ключи), что, вообще говоря, делать строго не рекомендуется.
Как правило, злоумышленник атакует модуль защиты с помощью мониторов событий следующим образом.
Запуск монитора файловых операций и монитора операций с реестром.
Установка защищенного ПО при запущенном мониторе файловых операций и мониторе операций с реестром. В данном случае злоумышленник решает задачу обнаружения тех файлов и записей в реестре, в которых модуль защиты сохраняет служебную информацию в процессе установки. После выполнения данного шага злоумышленник исследует протоколы, сформированные мониторами и вычисляет необходимые файлы и записи реестра. Данный шаг используется, как правило, для атаки на защитные механизмы ограничения по времени использования и по количеству запусков.
3. Если программа обращается к реестру и файлам в процессе своей работы, то злоумышленник запускает программу при запущенных файловом мониторе и мониторе реестра и исследует ее протокол. Данный шаг используется, как правило, для атаки на защитные механизмы ограничения по времени использования, по количеству запусков, для взлома защит, хранящих ключи, пароли и другую конфиденциальную информацию во внешних файлах.
3. С использованию средств отладки или редактора кода осуществляется выход на модуль защиты, из которого выполняется обращение к файлам и к реестру.
4. Отключение защитных механизмов.
Наиболее известным мониторами файловых операций и операций с реестром являются FileMon и RegMon Марка Руссиновича.
Файловый монитор FileMon предоставляет широкий спектр возможностей для пользователя и позволяет протоколировать не только те файлы, к которым велось обращение, но также и функции, которые при этом использовались: FindOpen, FindFirst, FindNext и т.д., время, результат операции, детализированная информация по передаче и т.д. В утилиту включены средства фильтрации, позволяющие осуществлять поиск по фильтру в протоколируемых данных (рис. 1.2).
Рис. 1.2. Диалоговое окно работы с программой Filemon
Монитор операций с реестром Regmon позволяет отслеживать приложения, выполняющие операции с реестром, выполняемые операции, путь, по которому ведется обращение, результат операции, а также детализировать выполняемый запрос (рис. 1.3).
Рис. 1.3. Диалоговое окно работы с программой Regmon
З лоумышленником для взлома защит ПО могут быть эффективно использованы, также, стандартные утилиты, входящие в дистрибутивные пакеты различных продуктов. Очень эффективным средством для злоумышленника является монитор spy++, входящий в поставку Microsoft Visual C++. Данный монитор может предоставить злоумышленнику достаточно много информации о приложениях, запущенных в системе, а также об их взаимодействии. Он способен предоставить следующую информацию в хорошо структурированном виде:
1. Подробную информацию об открытых окнах и о приложениях, которые открывают данные окна. При этом, для каждого окна приложения, открытого в системе, предоставляется следующая информация: описание окна, дескриптор окна, размеры, класс окна, стиль окна (CHILD, VISIBLE, …), ссылки на родительские и дочерние окна, информацию о меню, иконках курсорах в окнах и т.д.
2. Информация о запущенных в системе процессах.
3. Информация об используемых в системе потоках.
4. Отлавливать и протоколировать все сообщения, возникающие в системе (WM_GetText, WM_PAINT и т.д. (всего более 660)). При этом, можно поставить фильтр на отлавливание сообщений с множеством настроек – для каких окон, для каких приложений, какие сообщения отлавливать и т.д. Существует возможность отлавливать сообщения по их группам. Всего выделено 32 группы, наиболее важные из них для злоумышленника – группы General, KeyBoard, Dialog, AFX/MFC, Registered, Edit Field. Если злоумышленнику, например, не известно, с помощью каких функций осуществляется чтение пароля из окна ввода, то установив фильтр на все сообщения такого рода и исследовав сформированный протокол, можно достаточно быстро получить необходимую информацию, и использовать ее при реализации взлома.
- Модульная архитектура технических средств защиты по от несанкционированного использования
- Функционирование подсистем и модулей системы защиты по от несанкционированного использования
- Электронные ключи hasp
- Глава 1. Методы и средства обратного проектирования.
- 1.1. Понятие обратного проектирования
- 1.2. Основные приемы, используемые злоумышленником при отладке и дизассемблировании программного обеспечения
- 1.2.1. Специфика атак на модули проверки корректности ключевой информации
- 1.2.2. Специфика атак на модули проверки истечения временного срока работы программы или ограничения по количеству ее запусков
- 1.2.3. Отлов злоумышленником вызова WinApi функций при взломе по
- 1.3. Мониторинг событий
- Глава 2. Методы противодействия обратному проектированию
- 2.1. Методы противодействия отладчикам
- 2.1.1. Защита от отладчиков реального режима
- 2.1.2. Защита от отладчиков защищенного режима
- 2.1.3. Методы, основанные на невозможности полного эмулирования отладчиком среды загрузки программы
- 2.2. Методы противодействия дизассемблированию программного обеспечения
- 2.3. Защита, основанная на человеческом факторе злоумышленника
- Глава 3. Общие методы защиты программ от отладки и дизассемблирования
- 3.1. Использование недокументированных команд и недокументированных возможностей процессора
- 3.2. Шифрование кода программы
- Глава 4. Эмуляторы процессоров. Использование эмуляторов для взлома и защиты программного обеспечения.
- Глава 5. Защита исходных текстов программного обеспечения
- Глава 6. Идентификация и аутентификация субъектов
- 6.1. Идентификация и аутентификация пользователей с использованием технических устройств
- 6.2. Идентификация и аутентификация с использованием индивидуальных биометрических характеристик пользователя
- 7. Защита от разрушающих программных воздействий
- 7.1. Понятие разрушающего программного воздействия
- 7.2 Модели взаимодействия прикладной программы и рпв
- 7.3 Компьютерные вирусы как класс рпв
- 7.4. Защита от рпв. Изолированная программная среда
- Глава 8. Руководящие документы России
- Приложение
- 6.1. Отладка программ в отладчике SoftIce
- 6.2. Дизассемблирование программ с помощью интерактивного дизассемблера Ida Pro
- 6.3. Редактор кода hiew
- Лабораторные работы