Смекни!
smekni.com

Заражение существующих модулей. Отличие от первого способа заключается в том, что rootkit не содержит своего отдельного модуля и использует внедрение в уже существующие. Применение данного подхода позволяет сделать rootkit устойчивым к перезагрузке, поскольку чаще всего заражаются модули, которые будут загружены ОС в любом случае (например, драйвер файловой системы).

7 Методики обнаружения RootKit в системе

Рассмотрим базовые методики поиска RootKit:

Сравнение двух «снимков» системы (например, списка файлов на диске). Первый снимок делается на проверяемой системе, второй – после загрузки с CD или подключения исследуемого HDD к заведомо чистому компьютеру. Подобная методика гарантированно позволит обнаружить любой RootKit, который маскирует на диске свои файлы.

Сравнение данных, возвращаемых API функциями разного уровня и (или) получаемых низкоуровневыми методами (например, прямым чтением диска и анализом файлов реестра). Данная методика не требует перезагрузки исследуемого ПК и реализована в бесплатной утилите RootkitRevealer от SysInternals (http://www.sysinternals.com). Другим примером может случить утилита KLister (www.rootkit.com) для построения списка запущенных процессов, которая состоит из драйвера и консольной программы, использующей этот драйвер;

Анализ в памяти функций основных библиотек на предмет наличия изменений их машинного кода. Данный метод наиболее эффективен для борьбы с RootKit в пользовательском режиме. Подобная методика позволяет не только обнаружить перехват функций, но и восстановить нормальную работу поврежденных функций. Кроме того, сравнение «снимков» системы, полученных до и после восстановления функций API во многих случаях позволяет обнаружить маскирующиеся процессы, сервисы и драйверы. Данная методика не требует перезагрузки и один из вариантов реализован в моей утилите AVZ;

Анализ и восстановление ServiceDescriptorTable. Данная методика позволяет бороться с рядом перехватчиков, работающих в режиме ядра (собственно, с перехватчиками, основанными на правке SDT). Практическая реализация – утилита SDTRestore (http://www.security.org.sg/code/sdtrestore.html). Однако восстановление SDT окажет воздействие на работу всей системы и может привести к очень неприятным последствиям (в простейшем случае – полное зависание системы с выходом на BSoD, в худшем – непредсказуемое нарушение нормальной работы приложений, перехватывающих NativeAPI для реализации своих функций).

8 Заключение

Описанные выше базовые методики перехвата функций поясняют основные принципы работы RootKit. Однако следует помнить, что разработчики RootKit-технологий не стоят на месте, в результате постоянно появляются новые разработки, подходы и методы.

Практика показывает, что разработчики вредоносных программ (вирусов, троянских программ, шпионского ПО) все чаще начинают использовать RootKit-технологии, что существенно затрудняет обнаружение и удаление созданных ими вредоносных программ. Чаще всего применяются методики перехвата функций в режиме пользователя, но в последнее время появились весьма эффективные реализации с применением драйверов. В этом плане по моей статистике наиболее «знаменит» Backdoor.Win32.Haxdoor, который устанавливает в систему несколько драйверов, что позволяет ему достаточно эффективно маскироваться от обнаружения пользователем.

Список литературы

Возможности rootkit и борьба с ними http://www.cybersecurity.ru/manuals/crypto/law/5734.html

Windows под прицелом http://www.securitylab.ru/contest/212106.php

Невидимые LKM-атаки на Windows NT: поваренная книга руткитмейкера http://www.xakep.ru/post/40549/default.asp