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

Компьютерный СМЕРШ

Зайцев Олег (z-oleg.com/secur)

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


Неубиваемые процессы must die

Однако найти подозрительный процесс – еще не все. Иногда оказывается, что злобный процесс пытается защищаться от пользователя. Существует несколько методов защиты от убиения процессов. Для начала рассмотрим самый простой метод, применяемый в SpyWare WinAd и его клонах. Как и все гениальное, идея этого метода подразумевает, что вредоносная программа состоит не из одного, а из двух исполняемых файлов. При запуске одного из них автоматически запускается второй. Затем во время работы процессы следят друг за другом, и если завершить процесс A, то процесс B немедленно перезапустит его (и, соответственно, наоборот). Убить такие процессы поштучно сложно, так как для этого нужно остановить оба процесса, а затем прибить их. Удобнее всего сделать это из программы ProcessExplorer от Sysinternals.

Второй метод "неубиваемости" несколько сложнее. Вместо второго процесса применяется поток, созданный в системном процессе, чаще всего - в Explorer.exe. Поток следит за процессом SpyWare и перезапускает процесс в случае необходимости. Для обнаружения такого вредоносного потока можно применить ProcessExplorer от SysInternals, для анализа - отладчик OllyDBG (он не требует инсталляции, что очень удобно в полевых условиях). Есть аналогичные варианты, в которых вместо потока применяется DLL, прописанная, скажем, как элемент Winlogon - задачей такой DLL является перезапуск процессов и защита файлов путем их открытия с монопольным доступом.

Третий метод, еще более сложный, предполагает перехват API-функции OpenProcess и тем самым блокирует все посягательства на защищаемый процесс. Естественно, прибить такой процесс можно только после нейтрализации или обхода перехватчика.

Неудаляемые файлы

Как и в случае с удалением процессов, многие SpyWare отчаянно защищают свои файлы от удаления, для этого чаще всего применяются вот эти три методики:

1. Открытие файла на монопольный доступ. Эту операцию может выполнить второй процесс "зверя", внедренная им в какой-либо процесс библиотека или поток. Для поимки такого "блокиратора" достаточно при помощи ProcessExplorer или его аналогов посмотреть, какой процесс держит открытым интересный тебе файл.

2. Восстановление файла после удаления. Первый метод слишком заметен, поскольку после неудачных попыток стирания файла можно в конце концов загрузиться с CD-диска и прибить файл. Более хитрой является методика восстановления файла, при которой никто не мешает стереть зверя (пользователь и антивирусы думают, что успешно удалили его, а тот через некоторое время "оживает"). SpyWare чаще всего применяют два метода: отложенное переименование и троянский поток. При отложенном удалении при помощи секции [rename] файла wininit.ini для Win9x или функции MoveFileEx с флагом MOVEFILE_DELAY_UNTIL_REBOOT настраивается отложенное переименование/перемещение файла (естественно, для этого где-то на диске хранится копия SpyWare). Следовательно, если такой SpyWare находится в папке автозапуска, то в момент старта он создает свою копию, настраивает отложенное переименование и никак не препятствует своему удалению.

Назад на стр. 060-070-1  Содержание  Вперед на стр. 060-070-3