Подготовка теста
Как известно, существует два вида руткитов:
- User Mode (руткиты режима пользователя)
- Kernel Mode (руткиты режима ядра).
Наибольшую сложность для обнаружения, а значит и интерес для тестирования, представляют руткиты режима ядра, поскольку их возможности ничем не ограничены, тогда как руткиты режима пользователя ограничены в привилегиях в системе и их возможности сильно ограничены.
В отборе вредоносных программ для теста, так же как в тесте антивирусов на лечение активного заражения, учитывались следующие критерии:
- используемые вредоносные программы были собраны во время распространения в Интернет, т.е. являются ITW-образцами (In The Wild);
- каждый образец должен использовать различные способы маскировки;
- в сумме все образцы должны максимально полно отражать существующие технологии маскировки;
- используемые руткиты не должны иметь функционал целенаправленной борьбы с антируткитами, таких как удаление файлов, завершение процессов и т.п.
Приоритет отдавался наиболее сложным видам, которые больше удовлетворяют приведенным выше критериям.
Таким образом, для проведения тестирования антируткитов экспертной группой Anti-Malware.ru были отобраны 12 известных вредоносных программ с руткит-маскировкой:
- TDL (TDSS, Alureon, Tidserv)
Троянская программа. Является KernelMode руткитом. При инсталляции создает драйвер в \WINDOWS\system32\drivers с именем aliserv3.sys и библиотеку alil.dll в системном каталоге. Драйвер руткита является фильтром драйвера файловой системы, чем и достигается маскировка на диске. Блокирует открытие тома. Маскируется в реестре перехватами в ядре и в памяти DKOM-методом. Использует функцию LockFile с целью блокировки чтения своих файлов. - Sinowal (Mebroot)
Троянская программа-шпион. При запуске модифицирует главную загрузочную запись (MBR) жесткого диска с целью загрузки своего драйвера еще до старта операционной системы. Драйвер хранится в неразмеченной области диска. Перехватывает IRP обработчики драйвера, располагающегося в стеке вслед за устройством \Device\Harddiskx\DRx с целью блокировки чтения/изменения антивирусными продуктами главной загрузочной записи. - Rootkit.Protector (Cutwail, Pandex)
Троянская программа-спамбот. Является KernelMode руткитом. При инсталляции создает драйвер в \Windows\system32\drivers\Ati*.sys. Драйвер руткита блокирует к себе доступ перехватом IRP обработчиков драйвера файловой системы и защищает свой ключ от удаления установкой колбеков на работу с реестром. Спамбот переустанавливает свои IRP-перехваты в случае их снятия. - Rootkit.Podnuha (Boaxxe)
Троянская программа. Является KernelMode руткитом. При инсталляции создает драйвер в \WINDOWS\system32\drivers и библиотеку в \Windows\system32\ с произвольным именем. Dll зарегистрирована как расширение Winlogon (Winlogon\Notify), как BHO (Explorer\Browser Helper Objects) и как сервис (Name_service\Parameters\ServiceDll). Доступ к драйверу заблокирован, так же как и возможность удалять ключи автозагрузки в реестре. Библиотека защищена от переименования/удаления. - Rustock (NewRest)
Троянская программа-спамбот. Является KernelMode руткитом. При инсталляции создает драйвер в каталоге \WINDOWS\system32\drivers с произвольным именем. Блокирует доступ к своему файлу перехватом IRP обработчиков драйвера файловой системы, постоянно пересоздает свой файл. Блокирует свой ключ реестра от чтения и удаления перехватами в ядре. - Srizbi
Троянская программа. Является KernelMode руткитом. При инсталляции создает драйвер в \WINDOWS\system32\drivers с произвольным именем. Маскирует свой ключ автозагрузки перехватом функций с помощью модификации машинного кода ядра, а так же маскирует себя на диске перехватом IRP-обработчиков драйвера файловой системы. - Synsenddrv (Rootkit.Pakes, BlackEnergy)
Троянская программа. Является KernelMode руткитом. Инсталлирует драйвер в \WINDOWS\system32\drivers с произвольным именем. Маскирует себя на диске перехватом IofCompleteRequest модификацией машинного кода ядра, в реестре и в памяти. - TDL2 (TDSS, Alureon, Tidserv)
Троянская программа. Является KernelMode руткитом. При инсталляции создает драйвер в \WINDOWS\system32\drivers\gasfky*.sys и две dll в системном каталоге. Вредоносная программа маскируется на диске, в реестре и памяти. Блокирует открытие диска, чтение тома, пересоздает свои ключи автозагрузки и файлы в случае удаления. Снимает права доступа к своим ключам. Переустанавливает свои перехваты в случае их снятия. - Max++ (ZeroAcess)
Троянская программа. Является KernelMode руткитом. При инсталляции заражает произвольный загрузочный драйвер таким образом, что его размер не изменяется и затем работает со своим созданным при инсталляции виртуальным диском, где располагает свои компоненты. При чтении зараженного файла руткит подсовывает оригинальное содержимое файла до заражения. - Virus.Protector (Kobcka, Neprodoor)
Троянская программа-спамбот. Является KernelMode руткитом. При инсталляции заражает системный драйвер ndis.sys и хуком на IofCallDriver маскируется от обнаружения, подсовывая при чтении зараженного файла оригинальное его содержимое. Инфектор создает свою копию в системном каталоге с именем reader_s.exe, прописывается в ключе Run, инжектится в создаваемый процесс svchost с целью рассылки спама. Руткит компонента также инжектится в svchost и рассылает спам. - TDL3 (TDSS, Alureon, Tidserv)
Троянская программа. Является KernelMode руткитом. При инсталляции заражает системный порт или мини-порт драйвер (например, atapi.sys) таким образом, что его размер не изменяется и позволяет загрузить в память драйвер, расположенный в последних секторах жесткого диска на виртуальной шифрованной файловой системе. При чтении зараженного файла руткит подсовывает оригинальное содержимое файла до заражения. - z00clicker
Троянская программа. Является KernelMode руткитом. При инсталляции заражает системный порт или мини-порт драйвер (например, atapi.sys) таким образом, что его размер не изменяется и позволяет загрузить в память драйвер, расположенный в последних секторах жесткого диска на виртуальной шифрованной файловой системе. При чтении зараженного файла руткит подсовывает оригинальное содержимое файла до заражения.
Проведение теста
Тест проводился на специально подготовленной реальной системе под управлением Microsoft Windows XP Professional с интегрированным Service Pack 3 с полным набором обновлений на момент тестирования.
Стек устройства:
lkd> !devstack \Device\Harddisk0\DR0
!DevObj !DrvObj !DevExt ObjectName
89c06e08 \Driver\PartMgr 89c06ec0
> 89b9aab8 \Driver\Disk 89b9ab70 DR0
89bb2f18 \Driver\ACPI 89c14008 00000061
89ba2030 \Driver\atapi 89ba20e8 IdeDeviceP2T0L0-7
!DevNode 89bb2008 :
DeviceInst
is"IDE\DiskST3320620AS_____________________________3.AAD___\5&c7a4952&0&0.0.0
ServiceName is "disk"
Для тестирования в ходе открытого обсуждения были отобраны актуальные на момент начала теста версии следующих антируткитов:
1. GMER 1.0.15.15281
2. KernelDetective 1.3.1
3. Online Solutions Autorun Manager 5.0.11922.0
4. Panda Anti-Rootkit 1.0.8.0
5. Rootkit Unhooker 3.8.386.589
6. RootRepeal 1.3.5
7. Sophos Anti-Rootkit 1.5.0
8. Eset SysInspector 1.2.012.0
9. SysReveal 1.0.0.27
10. Trend Micro RootkitBuster 2.80
11. VBA32 Antirootkit 3.12 (beta)
12. XueTr 1.0.2.0
Важно! При отборе продуктов для тестирования учитывалось не только наличие функционала для обнаружения присутствия руткита в системе, но и его обезвреживания (удаление/переименование файлов, удаление/переименование ключей/разделов реестра). Кроме этого учитывалось текущее положение с развитием утилит, предпочтение отдавалось тем, чья разработка и совершенствование идет активнее.
Шаги проведения тестирования:
- Установка на жесткий диск операционной системы и создание полного образа жесткого диска при помощи Acronis True Image.
- Заражение машины с чистой операционной системой (активация вредоносной программы).
- Проверка работоспособности вредоносной программы и ее успешной установки в системе.
- Перезагрузка зараженной системы.
- Проверка активности вредоносной программы в системе.
- Запуск антируткита, попытка обнаружения и удаления вредоносной программы всеми доступными в арсенале продукта методами.
- Проверка активности вредоносной программы или ее компонентов.
- Восстановление образа незараженной операционной системой на диске при помощи Acronis True Image (загрузка с CD).
- Повторение пунктов 2-8 для всех вредоносных программ и всех антируткитов.