Практический экзорцизм - изгоняем «зло‑код» голыми руками
🕛 20.09.2009, 14:29
Проверено автором. Если в процессе работы антивирусов, чистильщиков, сканеров и прочего вы все‑таки почувствовали, что экзорцист - это вы, а порции адреналина получает кто‑то другой, то непременно, даже не задумываясь, вам обязательно следует «убить» его собственными руками.Для ритуала нам понадобятся:
- светлая голова и работающая Windows;
- Редактор реестра;
- минимальный набор специальных программ (Starter, ADinf).
Как правило, процедура безопасного избавления от вредоносного ПО включает в себя ряд стадий, главными из которых будут следующие.
1. Завершение "зло‑процесса".
2. Уничтожение исполняемого файла.
3. Уничтожение записи в реестре, принадлежащей вирусу/троянскому коню.
Технология убийства процесса, принадлежащего "чужому", несложна и сводится к выделению процесса в списке Диспетчера задачи нажатию кнопки Завершить процесс.Понятное дело, что следующие процессы трогать не стоит: Explorer, Lsass, Services, System, Winlogon, Vsmon, Ctfmon, Svchost, Csrss, Smss. Естественно, помимо перечисленных, в Диспетчере задачможно обнаружить и другие процессы - те, которые принадлежат запущенным и резидентно выполняющимся приложениям. Это, например, avp, принадлежащий «Антивирусу Касперского», zonealarm, принадлежащий брандмауэру, и т. д. Особое внимание следует обратить на так называемые процессы‑маскировщики, имитирующие истинные: explore, sys, svshost, winlogin, systrey и т. д.
При невозможности остановки "зло‑процесса" средствами Диспетчера задачможно воспользоваться утилитой Process Explorer или ей подобной (например, вышеупомянутой Anti‑Spy Info).
Здесь следует упомянуть о множестве подводных камней, с которыми может столкнуться пользователь, пытающийся "высадить" заразу из системы:
- никто не запретит вредоносному коду висеть в Диспетчере задачпод «легальным» именем (например, svchost);
- "зло‑процесс" может вообще не светиться в Диспетчере задач- такое вполне возможно.
Вторая стадия нашего ритуала подразумевает удаление тела "зло‑кода". Но опять с некоторым уточнением.
- Удаление такого файла может стать непреодолимым препятствием: система просто запретит удалять ею используемый файл. В этом случае удалить вирус можно будет только из другой среды (например, используя Live‑CD) или, предварительно переименовав подозрительный файл, удалить его одним из возможных способов.
- Возможен также вариант, когда "зло‑код" изменяет настройки Windows, так чтобы пользователь не мог видеть скрытые файлы (в числе которых и сам вирус).
- Если вирус внедрится в один из легально используемых системой файлов - кого тогда мы будем удалять?! К счастью, большинство из вариантов подобного рода несостоятельны изначально: в системе Windows присутствует служба SFC, следящая за грубой подменой системных файлов.
- Возможен также вариант, когда файл будет удален, но по прошествии некоторого времени легко и просто "восстанет из пепла". Как такое может быть? Да очень просто. Хотя бы посредством технологии "watch dog" (от англ. "сторожевой пес"), когда вирус или троянский конь для своей работы использует два взаимоподдерживающих файла: в случае удаления первого второй реанимирует его, и наоборот.
- Более продвинутый "зло‑код" внедрится прямо в адресное пространство одного из доверенных процессов (например, IE, Opera и т. д.). Физически такой код будет присутствовать только в оперативной памяти! Результат - никаких следов на диске. Решение проблемы напрашивается само собой, исходя из специфических особенностей работы такого кода…
Будем считать, что у читателя не возникнет трудностей с удалением исполняемого файла заразы. Но для начала его надо найти!
Одним из возможных вариантов такого поиска может стать поиск системных файлов, дата создания которых отличается от остальной массы аналогичных файлов. Как это сделать? Просто. Для просмотра даты создания открываем проводник Windows, после чего в меню Видвыбираем Таблица,затем Вид► Выбор столбцов в таблицеи устанавливаем флажок напротив Дата создания.Щелкнув кнопкой мыши на шапке таблицы, выбираем сортировку по убыванию даты создания, после чего самые новые файлы окажутся в начале списка. Системные файлы, чья дата создания отличается от «основной» для таких же аналогичных файлов, должны насторожить.
ПРИМЕЧАНИЕ
Достаточно эффективным способом обнаружения вредоносного кода может стать простой контроль новых файлов в системной директории средствами операционной системы Windows через Пуск ► Поиск. В простейшем случае такой контроль может быть сведен к поиску файлов, созданных, к примеру, сегодня.
К слову будет сказано, идея о том, чтобы контролировать появление новых файлов на жестком диске, достаточно проста, но, как показала практика, более чем эффективна. Удачная ее реализация - программа‑ревизор ADinf32. Ревизор, в отличие от полифагов (а к данной категории относится большинство антивирусных программ), в свежих базах не нуждается.
Принцип работы ADinf32 основан на сохранении в специальной базе основных данных о каждом логическом диске в системе. При первом запуске в таблицах запоминаются объем оперативной памяти, образы главного загрузочного сектора, загрузочных секторов, список сбойных кластеров, структура дерева каталогов, длины и контрольные суммы файлов. Когда вирусный код заражает компьютер, он изменяет объект, в который внедряется исполняемый файл, главный загрузочный сектор, FAT‑таблицу - что‑то да изменит. Если ревизор обнаруживает на диске изменения, характерные для действия вируса/троянского коня, он предупреждает об этом пользователя. Важным отличием ADinf от других существующих программ‑ревизоров является доступ к дискам без использования функций операционной системы. Такой метод доступа к дискам позволяет успешно обнаруживать стелс‑вирусы (вирусы‑невидимки).
При условии что был сделан снимок чистой системы, найти и стереть "лишний" файл не составит особого труда (рис. 4.8).
Третьим пунктом в нашем ритуале изгнания должно стать удаление "зло‑записи" из реестра. Существует множество широко известных ключей автозапуска, в которые прописываются вирусы, черви, троянские кони и другие программы, пытающиеся внедриться в атакуемую систему.
Запись на автозапуск "зло‑кода" может быть здесь:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
А также здесь:
HKEY_CURENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce
HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
Программа ADinf32 в действии
Вышеперечисленные ветки реестра можно считать самыми распространенными путями запуска, однако эти записи составляют далеко не исчерпывающий список.
Удалить запись, принадлежащую непрошеному гостю, можно, запустив редактор реестра (откройте меню Пуск,щелкните на ссылке Выполнитьи в появившемся окне введите команду regedit) или же воспользовавшись специализированными утилитами типа Starter (рис. 4.9).
Утилита Starter в действии
И напоследок один из примеров излечения системы от вируса, который при своей работе просто‑напросто отключал "Антивирус Касперского 7.0", Nod32, Dr.Web и другое антивирусное программное обеспечение. Вирус присутствовал в базах перечисленных антивирусов, но отключал их прежде, чем они пытались удалить его.
Выход оказался достаточно простым: в данном случае эффективным средством против упреждающей деструктивной деятельности такого вируса оказалась загрузка системы из‑под учетной записи с пользовательскими привилегиями (до этого момента систему загружали из‑под прав администратора, и вирус, соответственно, имел практически неограниченные привилегии, в том числе и возможность управления антивирусным ПО).
В связи с этим уместно упомянуть одно из главных правил антивирусной безопасности: вирусный код может все то, что может пользователь.
Вывод: работа с пользовательскими правами в системе значительно снижает как риск заражения, так и возможные деструктивные последствия запуска вредоносного кода.