Pull to refresh
0
Rating

TDL4 – первый полноценный руткит для x64 систем (Win7, Vista …)

ESET NOD32 corporate blog
В конце прошлой недели была обнаружена принципиально новая версия нашумевшего руткита TDL3 (есть некоторые факты позволяющие утверждать, что этот зверь появился даже несколько раньше), основной особенностью этой версии стала полноценная поддержка x64 систем.

TDL4 удаётся успешно обходить защитный механизм проверки цифровой подписи в х64 версиях windows-систем. Авторы TDL4 применили довольно изящный способ обхода, который заключается в использовании техник заражения MBR и старта вредоносного кода раньше самой операционной системы. Подобные методологии уже активно применялись такими вредоносными программами, как Mebroot, StonedBoot и др.

Последней распространенной версией TDL3, о которой мы проводили летом подробное исследование, была 3.273. Сейчас отcчет версий ведется с начала, и рассматриваемая в статье версия идет под номером 0.02 (версию можно увидеть в конфигурационном файле бота). Столь странный номер версии наводит на мысли, что авторы пока только отлаживают новые технологии, появившиеся в этой версии, и в дальнейшем нас ожидает что-то более интересное. С точки зрения функционала принципиальных изменений, кроме нового способа инсталляции драйвера через заражение MBR и небольших изменений в скрываемой файловой системе, мы не заметили. Драйвер очень похож на то, что мы уже видели в TDL3 и, вероятнее всего, был просто пересобран с учетом особенностей х64 систем. Предыдущая версия руткита использовала для загрузки вредоносного функционала механизм инфицирования системных драйверов без изменения их размера, но так как в х64 системах при загрузке драйвером проверяется цифровая подпись, злоумышленники от этого механизма отказались.

Итак, теперь заражение осуществляется следующим образом:

— Открывается описатель физического устройства (в нашем случае это \\??\PhysicalDrive0), на котором располагается раздел с именем C:
— Подготавливается и записывается образ своей файловой системы в конец жесткого диска
— Перезаписывается MBR — кодом, который осуществляет загрузку модулей в ранее подготовленной файловой системе
— После успешного заражения на x64 системах происходит перезагрузка, при помощи вызова функции ExitWindowsEx().

Вот так выглядит расшифрованный код MBR, и мы видим имя вредоносного модуля, который должен будет выполниться для дальнейшего запуска руткита:

image

Алгоритм шифрования достаточно прост и сводится к вызову в цикле процессорной команды ROR:

image

Процедура запуска TDL4 с учетом обхода механизма проверки цифровой подписи:

— Bios считывает первый сектор загрузочного диска и передает управление на код главной загрузочной записи MBR и таким образом начинается выполнение кода TDL4
— Далее происходит расшифрование кода для дальнейшего выполнения, который предназначен для загрузки модуля с именем ldr16 из файловой системы руткита
— Загруженный модуль ldr16 осуществляет перехват прерывания 13h, которое отвечает за работу с жестким диском. Основная задача данного модуля определить разрядность операционной системы (x32 или x64), и в зависимости от нее осуществляется загрузка ldr32 или ldr64.
— Оба модуля ldr32 и ldr64 предназначены для загрузки основного драйвера TDL4, которая осуществляется без использования стандартного API, чтобы обойти механизм проверки цифровой подписи.
— Сначала происходит размещение кода драйвера в памяти по адресам предлежащим ядру ОС. Далее проводится его регистрация, как драйвера ОС, при помощи вызова недокументированной функции IoCreateDriver(). После этого драйвер можно считать загруженным.

Затем продолжается загрузка операционной системы с драйвером TDL4 на борту, после старта происходит внедрение вредоносного кода в некоторые процессы, и в дальнейшем его поведение очень похоже на предыдущую версию TDL3. Вот так выглядит конфигурационный файл бота:

image

TDL4, как и его предыдущие собратья, попал в семейство вредоносных программ Win32/Olmarik и обнаруживается нами, как руткит Win32/Olmarik.ADA.
Tags:
Hubs:
Total votes 58: ↑53 and ↓5 +48
Views 17K
Comments Comments 56

Information

Founded
Location
Словакия
Website
www.esetnod32.ru
Employees
1,001–5,000 employees
Registered