Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #70, СЕНТЯБРЬ 2006 г.

Враг неведом

Зайцев Олег

Спецвыпуск: Хакер, номер #070, стр. 070-034-6


if (!CurrentProcess) return;

PLIST_ENTRY ProcessAPL = (PLIST_ENTRY)((ULONG)CurrentProcess + ActiveProcessLinkOffset);

ProcessAPL->Flink->Blink = ProcessAPL->Blink;

ProcessAPL->Blink->Flink = ProcessAPL->Flink;

KeLowerIrql(OldIRQL);

}

Возникает вопрос: можно ли найти замаскированный таким образом процесс? Для данного пример ответ однозначен — можно! Известно несколько наиболее распространенных метода поиска:

* Метод «лобового перебора». Сводится к циклу перебора PID от нуля до некоего большого числа с попыткой открыть процесс или получить список его библиотек по PID. Метод будет работать, но его корявость оставим без комментариев;

* Метод «косвенных признаков». Сводится к тому, что, к примеру, можно найти открытые процессом хендлы, обнаружить хендл процесса среди принадлежащих csrss.exe-хендлов процессов, найти принадлежащие процессу окна и т.п. Естественно, разработчики руткитов могут бороться с этим.

* Метод «мониторинга API». Этот метод сводится к тому, что скрытый процесс должен что-то делать. Следовательно, отслеживая все операции в системе можно обнаружить активность процесса-невидимки.

* Метод «мониторинга запуска». Сводится к установке драйвера, который прописан как BOOT, и с момента загрузки мониторит запуск и завершение процессов.

Для желающих поэкспериментировать с поиском скрытых процессов могу порекомендовать утилиту Process Hunter (автор — Ms-Rem, http://www.wasm.ru/pub/21/files/phunter.rar) и статью «Обнаружение скрытых процессов», которую можно найти на wasm.ru, а для желающих поглубже изучить маскировку по DKOM-методике я советую покопаться в исходника FU Rootkit последней версии.

[антируткиты]

Итак, мы поговорили о технологии руткитов – теперь нужно вспомнить про антируткиты. Все антируткиты можно разделить на две категории:

* Детекторы. Задача такой программы – обнаружение следов присутствия руткита в системе.

* Детекторы-нейтрализаторы. Программы данного класса не просто детектируют наличие перехвата или модификаций машинного кода, но и обладают способностью к активному противодействию. Противодействие может сводиться к восстановлению модифицированной руткитом таблицы импорта и KiST и восстановлению модифицированного машинного кода. Программы этого класса являются «палкой о двух концах», поскольку все известные на данный момент антируткиты не различают «хорошие» и «плохие» перехваты. В результате антируткит может запросто отключить антивирусный монитор или проактивную защиту.

[AVZ]

AVZ не является специализированным антируткитом, но тем не менее содержит средства поиска и нейтрализации основных разновидностей руткитов: UserMode и KernelMode. Данные о найденных перехватчиках вносятся в протокол с поясняющей технической информацией, в частности с адресами перехватчиков. Нейтрализация руткита сводится к восстановлению поврежденного программного кода и модификаций KiST. Кроме того, в ходе поиска руткитов производится поиск скрытых процессов по нескольким типовым методикам. Ограничение: не детектирует маскировку файлов при помощи драйвера-фильтра.

Назад на стр. 070-034-5  Содержание  Вперед на стр. 070-034-7