Win32.Ntldrbot (aka Rustock.C) – не миф, а реальность!
Ищут пожарные, ищет милиция,
Ищут фотографы в нашей столице,
Ищут давно, но не могут найти
Парня какого-то лет двадцати.
С.Михалков
Rootkit (руткит, от англ. root – «корень» и kit – «набор») — программа или набор
программ, позволяющие компьютерному злоумышленнику закрепиться во взло-
манной системе и скрыть следы своей деятельности путём сокрытия файлов, про-
цессов, а также самого факта присутствия.
По материалам Wikipedia
Предисловие
В последнее время, одним из основных направлений развития вредносных про-
грамм стало применение в них всевозможных способов защиты от обнаружения
антивирусными средствами. Руткиты становятся все более изощренные, их количе-
ство растет с каждым годом. Большинство из них – это чужие идеи, воплощенные не
лучшим образом в коде, однако, есть и крайне интересные экземпляры. Об одном
таком мифическом и неопределяемом до недавнего времени рутките эта статья.
Ботнеты
Для того чтобы понять, о чем пойдет речь дальше, необходимо ознакомиться с не-
которыми терминами, один из них – ботнет. По данным все той же Wikipedia, бот-
нет или бот-сеть (англ. botnet) — это компьютерная сеть, состоящая из некоторого
количества хостов, с запущенными ботами — автономным программным обеспе-
чением. Чаще всего бот в составе ботнета скрытно устанавливается на компьютере
жертвы и позволяет злоумышленнику выполнять некие действия, эксплуатируя ПО
и ресурсы заражённого компьютера. Как правило, ботнеты используются для не-
легальной или несанкционированной деятельности — рассылки спама, перебора
паролей в удалённой системе, атак на отказ в обслуживании и многого другого.
Компания SecureWorks провела исследование наиболее крупных бот-сетей, за-
нимающихся рассылкой спама. Нас же интересует только один из них, а именно
Rustock, который занимает третье место в этом своеобразном рейтинге. Краткая ин-
формация по ботнету выглядит так:
• предполагаемое количество зараженных машин: порядка 150, 000;
• способность ботнета рассылать спам: порядка 30 миллиардов сообщений
в день;
• наличие руткит-составляющей: да.
Теперь вы представляете с чем мы имеем дело и каков размах подобных сетей
в Интернет.
Взросление Rustock
Название Rustock придумали специалисты антивирусной компании Symantec, и
оно так понравилось автору вредоносного кода, что в дальнейшем он стал его ис-
пользовать. Изначально в первых версиях руткита можно было встретить такую
строку: «Z:\NewProjects\spambot\last\driver\objfre\i386\dr iver.pdb». В последую-
щих кроме строки с использованием «spambot» появилась строка «Rustock rootkit
v 1.2».
Принято считать и делить поколения данного руткита на три «возрастные группы»
(A, B, C). Это не совсем верно, так как автор постоянно экспериментировал и из-
менял код, методы перехвата функций и улучшал стабильность, но в целом карди-
нальных изменений за одну версию не вносил. На самом деле ситуацию с «верси-
онностью» руткита достаточно просто отследить.
В конце 2005 – начале 2006 года появились первые бета-версии Rustock.A на кото-
рых обкатывались технологии. Отличить их можно по названиям драйверов: i386.
sys, sysbus32. Для скрытия себя в системе использовался перехват системной та-
блицы вызовов (SSDT) и перехват IRP-пакетов.
Далее появилась полноценная версия Rustock.A – pe386.sys (версия 1.0), которая
отличалась от первых версий техниками скрытия себя в системе. Прежде всего,
автор отказался от SSDT и перехватил прерывание 0x2E (Windows 2000) и MSR_
SYSENTER(Windows XP+). Для скрытия файла на диске были использованы ADS
(Alternate Data Stream). Данная технология поддерживается на файловой системе
NTFS. Тело руткита находилось в %SystemRoot%\system32:[случайный_набор_
цифр].
В том же 2006 году появилась бета-версия Rustock.B (huy32.sys), а сразу за ней
полноценная версия Rustock.B - lzx32.sys (версия 1.2), в которой использовались
перехваты INT2E/MSR_SYSENTER, ADS (%Windir%\System32:lzx32.sys). Кроме все-
го прочего, автор добавил перехват функций сетевых драйверов: tcpip.sys, wanarp.
sys и ndis.sys, который позволял ему обходить фаерволы и прятать спам-трафик.
Также были выпущены варианты с урезанным функционалом, варианты, которые
восстанавливали перехваты в случае их обнаружения и снятия антируткитами или
антивирусами, а также различные варианты со случайными именами драйверов.
Некоторые антивирусные вендоры, например TrendMicro, выложили в своих ви-
русных библиотеках описание Rustock.C, но после проверки этот экземпляр оказал-
ся очередной экспериментальной версией Rustock.B
Rustock.C
Первые слухи о Rustock.C появились летом 2006 года. Тогда же его начали искать
как антивирусные лаборатории, так и вирусописатели. Антивирусные лаборатории
искали для того, чтобы проанализировать и улучшить свои методы обнаружения
руткитов, а вирусописатели просто для того, чтобы наворовать чужих идей и встро-
ить в свои вредоносные программы защиту и методы сокрытия «попрактичнее».
Шло время, а образец то ли не находился, то ли времени на его анализ у антиви-
русных лабораторий не хватало, ведь ежедневно приходится иметь дело с тысяча-
ми файлов. Официальных подтверждений или опровержений так и не появилось,
были лишь какие-то разговоры на различных форумах. Многие вендоры предпочли
«откреститься» от C-варианта и заняли позицию: «Ну, раз мы его не видим/не наш-
ли, значит он не существует. Это миф!», или: «Давайте еще вспомним “Rustock.С”,
который где-то живет, а его никто не видит и видеть не может».
Но оказалось, что Rustock.C не миф. Не все антивирусные лаборатории бросили его
поиск, и он дал результаты.
Как видно на изображении автор окончательно принял предложенное название
Rustock. Прошло всего полтора года, и Rustock.C был найден в начале 2008 года.
Все это время он работал, рассылал спам.
Службой вирусного мониторинга компании «Доктор Веб» было обнаружено поряд-
ка 600 экземпляров данного руткита, сколько их существует на самом деле неиз-
вестно. Дата сборки большинства – сентябрь или октябрь 2007 года. На распаков-
ку, детальный анализ и улучшение методов детектирования подобных экземпляров
вирусные аналитики «Доктор Веб» потратили несколько недель.
Даже если предположить, что руткит работает с октября 2007 года совершенно не-
видимо для антивирусов, можно сделать выводы о громадном количестве паразит-
ного трафика который он разослал. Спам превратился в серьезную общемировую
проблему, с которой приходится бороться каждый день. Пользователи жалуются на
утечку трафика, их личные почтовые ящики переполнены совершенно ненужной и
раздражающей информацией. Теряется время, тратятся деньги, расходуются не-
рвы. То, что у Rustock.C было столько времени действовать безнаказанно, не рискуя
быть пойманным антивирусом, означает, что никто не даст гарантии, что и ваша
машина не является частью одной из бот-сетей и не рассылает спам прямо сейчас.
Некоторые технические характеристики руткита
• имеет мощный полиморфный протектор, затрудняющий анализ и распаков-
ку руткита;
• реализован в виде драйвера уровня ядра, работает на самом низком уров-
не;
• имеет функцию самозащиты, противодействует модификации времени ис-
полнения;
• активно противодействует отладке: контролирует установку аппаратных то-
чек останова (DR-регистры); нарушает работу отладчиков уровня ядра: Syser,
SoftIce. Отладчик WinDbg при активном рутките не работает вообще;
• перехватывает системные функции неклассическим методом. Такие функ-
ции как:
. • NtCreateThread
. • NtDelayExecution
. • NtDuplicateObject
. • NtOpenThread
. • NtProtectVirtualMemory
. • NtQuerySystemInformation
. • NtReadVirtualMemory
. • NtResumeThread
. • NtTerminateProcess
. • NtTerminateThread
. • NtWriteVirtualMemory
• работает как файловый вирус, заражая системные драйверы;
• конкретный экземпляр руткита привязывается к оборудованию зараженного
компьютера. Таким образом, на другом компьютере руткит с большой веро-
ятностью работать не будет;
• имеет функцию «перезаражения», срабатывающую по времени. Старый за-
раженный файл при «перезаражении» излечивается. Таким образом, рут-
кит «путешествует» по системным драйверам, оставляя зараженным какой-
нибудь один.
• фильтрует обращения к зараженному файлу, перехватывая FSD-процедуры
драйвера файловой системы и подставляет оригинальный файл вместо за-
раженного;
• имеет защиту от антируткитов;
• имеет в составе библиотеку, внедряемую в один из системных процессов ОС
Windows. Данная библиотека занимается рассылкой спама. Для связи драй-
вера с DLL используется специальный механизм передачи команд.
Выводы
Сразу после обнаружения этого руткита вирусописателями следует ожидать всплеск
подобных технологий и внедрение их во вредоносные программы.
На текущий момент, кроме антивируса Dr.Web, ни один современный антивирус
не детектирует Rustock.C. Также ни один антивирус, кроме антивируса Dr.Web, не
лечит зараженные им системные файлы. Тем, кто не является пользователем Анти-
вирус Dr.Web, рекомендуется скачать бесплатную лечащую утилиту Dr.Web CureIt! и
произвести проверку компьютера.
Закончить статью хотелось бы фразой, которая стала популярной в 90-х годах. Се-
годня она посвящается автору Rustock: «Все что может быть запущено, может быть
сломано».
Вирусный аналитик
Русаков Вячеслав Евгеньевич
Компания «Доктор Веб»