TDL-4
Разработчики TDL продолжают идти в ногу со временем. На этот раз их взор устремился на неохваченные ранее 64 битные системы. Во-первых — появилось разделение рабочих файлов на 32 и 64 разрядные версии. Во-вторых — в очередной раз изменился алгоритм запуска после перезагрузки. Ранее подобный алгоритм применялся в ВПО Sinowal, достаточно известном своими новациями сотрудникам антивирусных компаний. Теперь TDL версии 4 заражал главную загрузочную запись (MBR). Данный способ позволяет ему загружаться раньше операционной системы, сразу после старта компьютера. Таким образом, TDL-4 из буткита «мутировал» в буткит. Как и ранее, компоненты TDL-4, хранились в специальной области жесткого диска, зашифрованные алгоритмом RC4. Код в MBR передавал управление компоненту ldr16 (из хранилища). После передачи управления ldr16 производил перехват функций работы с жестким диском (ОС еще не загружена). Для загрузки TDL-4 использовалась подмена файла kdcom.dll (путем установки перехватчика на Int 13h и поиска определенной сигнатуры kdcom.dll), который необходим для инициализации ядра операционной системы на стадии загрузки. Вместо kdcom.dll в итоге загружался вредоносный компонент ldr32 или ldr64 (из хранилища) в зависимости от разрядности целевой ОС. Бинарный код ldr32 и ldr64 практически идентичен, так как они скомпилированы из одного исходного кода. Но, кроме разницы в коде, в 64 битных системах, начиная с Windows 2003 x64 (XP x64 и далее Vista, Seven), появилось несколько технологий, направленных на защиту от вредоносного воздействия. Одна из них — Patch Guard, которая отслеживает изменение критических объектов ядра ОС, таких как:
- таблица глобальных дескрипторов — GDT;
- таблица дескрипторов прерываний — IDT;
- таблица дескрипторов системных сервисов — SSDT;
- некоторые системные файлы, например, NTOSKRNL.EXE, NDIS.SYS, HAL.DLL;
- служебные MSR регистры STAR/LSTAR/CSTAR/SFMASK.