Главная » Статьи » Аналитика, тесты |
Прошло не так уж много времени с последнего обзора о
рутките TDSS. Как предполагали эксперты из ЛК, TDSS продолжает
совершенствоваться. В июле-августе появилась совершенно новая
модификация данного руткита — TDL-4, — которая способна заражать не
только 32-х битные операционные системы, но и 64-х битные. В данной
статье мы расскажем о новом способе загрузки руткита, а также о его
возможности обхода защиты системы, встроенной в 64-х битные операционные
системы Windows, — PatchGuard и механизма проверки целостности ядра.
Как и в предыдущей модификации, руткит использует собственную файловую
систему, зашифрованнуюс использованием метода RC4, и все свои файлы
хранит в последних секторах физического диска.
Расшифрованные структуры файловой системы руткита
Как и раньше, руткит использует конфигурационный файл. Пример содержимого файла конфигурации TDL-4
Конфигурационный файл TDL-4 немного изменился по сравнению с конфигурационным файлом TDL-3. Основное отличие — номер версии руткита (version=0.02). Как можно заметить из списка компонент, в файлах присутствуют цифры 32 и 64. Это говорит о том, что руткит должен работать как на 32-х битных ОС, так и на 64-х битных ОС. Как происходит заражение и загрузкаВ этот раз TDSS избрал иной, уже проверенный способ заражения. TDL-4, как и другой известный руткит — бруткит, заражает главную загрузочную запись (MBR). Данный способ позволяет ему загружаться раньше операционной системы, сразу после старта компьютера. Код в MBR использует нехитрую схему шифрования, однако даже ее небольшие изменения позволят обходить методы сигнатурного детектирования большинства антивирусных продуктов. Зараженный и зашифрованный MBR
Расшифрованный MBR со строчкой ldr16
Основной задачей небольшого загрузчика в MBR является поиск компонента ldr16 на зашифрованном разделе руткита, расшифровка ldr16, загрузка его в память и передача на него управления. Поиск ldr16, загрузка в память и передача управления
LDR16Первое, что делает ldr16 при своей загрузке, — перехватывает прерывание BIOS 13h, которое отвечает за дисковый ввод-вывод. Далее он находит на своем зашифрованном разделе оригинальный (незараженный) MBR, сохраненный туда во время заражения, и копирует его в памяти поверх зараженного. После этого управление передается данной оригинальной загрузочной записи. Оригинальный MBR считывает загрузчик операционной системы с диска и передает ему управление. Тот, в свою очередь, считывает ядро и необходимые зависимости. Для чтения с диска будет использоваться перехваченное руткитом прерывание 13h. Перехваченное прерывание BIOS 13h
При каждом вызове прерывания BIOS 13h вызывается перехват руткита, который ожидает чтения определенных файлов в память. Необходимым компонентом для дальнейшей загрузки руткита является системный драйвер kdcom.dll, который используется при инициализации ядра операционной системы на ранней стадии. Компонент отладчика ОС Windows
Для поиска в памяти считанного kdcom.dll функция перехвата прерывания проверяет каждый считанный сектор и пытается найти сигнатуру, которая соответствует данному файлу. Поиск kdcom.dll по сигнатуре
В случае успешного совпадения сигнатуры, ldr16 в зависимости от разрядности операционной системы ищет на зашифрованном разделе руткита компоненты ldr32 или ldr64, считывает их с диска и заменяет считанный в память оригинальный kdcom.dll содержимым одного из них. Таким образом, вместо системного компонента в память будет загружен вредоносный компонент TDL-4. В ldr16 присутствует еще один функционал — это процедура изменения BCD в памяти. BCD — это куст реестра, который используется менеджером загрузки Windows и поддерживается, начиная с Windows Vista. Этот механизм заменил собой устаревший boot.ini. Поиск значений и изменение их в BCD
TDL-4 находит в BCD ключ BcdLibraryBoolean_EmsEnabled по сигнатуре «16000020» и подменяет его ключом «26000022» ‑ BcdOsLoader Boolean_WinPEMode, таким образом включая системный режим WinPE. В данном режиме не производится проверка целостности, и система не проверяет подпись вредоносного компонента kdcom.dll. Включения на некоторое время этого режима достаточно, чтобы обойти проверку. После успешной загрузки вредоносного компонента, данный режим выключается подменой параметра «/MININT» на невалидное значение. LDR32/64Для успешной инициализации системы вредоносным компонентам ldr32/64 необходимо поддержать функционал системной библиотеки kdcom.dll. Экспортируемые функции ldr64 Такие же экспортируемые функции содержатся в оригинальной kdcom.dll. Однако в руткит-компоненте лишь одна из этих функций содержит полезную нагрузку ‑ KdDebuggerInitialize1. Остальные функции — это «заглушки», возвращающие успешный результат операции. Таким нехитрым образом руткит решает сразу две задачи: продолжает свою инициализацию и противодействует системному отладчику. На ранней стадии инициализации ядра в функции Phase1Initialization произойдет вызов функции KdDebuggerInitialize1, в которой продолжится инициализация руткита. Инициализация ядра и вызов KdDebuggerInitialize1 Код ldr32 и ldr64 практически идентичен, т.е. эти два компонента собраны из одного исходного кода. Схематичное описание дальнейшей инициализации руткита при вызове KdDebuggerInitialize1:
DRV32/64После успешной инициализации LDR32/64, в память загружается основной компонент руткита, который отвечает за сокрытие самого факта инфицирования операционной системы. То есть при обращении к секторам диска, в которых расположены критически важные компоненты руткита, будет выдаваться подложное содержимое. TDL-4 использует ту же самую технику установки перехватов, что и предыдущая модификация — TDL-3. Использование подобной техники позволяет концептуально обойти защиту ОС Windows x64 — PatchGuard. Следующие скриншоты получены на операционной системе Windows 7 x64. Стек дискового устройства Последний объект-устройство в стеке и обслуживающий его драйвер Драйвер руткита и функции-перехватчики Кроме всего вышеперечисленного данный компонент руткита использует следящий поток, который проверяет наличие перехватов у системных объектов, а также проверяет тот факт, что в MBR находится именно зараженная копия сектора. В случае нахождения отличий MBR перезаражается. Заключениепредсказывали, что вредоносные программы станут еще сложнее и опаснее. «Уже сейчас существуют угрозы, использующие современные вирусные технологии заражения файлов и руткит-функционал. Многие антивирусные программы неспособны вылечить инфицированные этими вредоносными программами системы. В дальнейшем ситуация будет ухудшаться. С одной стороны, антивирусные технологии будут развиваться так, чтобы максимально усложнить процесс проникновения угроз в систему, с другой — те угрозы, которым все-таки удастся обойти такие системы защиты, станут практически неуязвимыми», ‑ писал Александ Гостев.Вирусописатели стараются отвечать современным запросам киберкриминального рынка. В своих прогнозах не 2010, эксперты ЛК В 2011 году, согласно нашим прогнозам, увеличится число угроз, работающих на 64-битных платформах. 64-х битные операционные системы набирают популярность у пользователей, и в большей степени этому способствуют предустановленные в покупаемом оборудовании ОС. А увеличение числа пользователей, приводит к росту потребности киберкриминала в поддержке новых операционных систем вредоносными программами. Создатели TDSS развивают свою программу в соответствии с современными тенденциями вирусописательства. Семейство TDSS идет именно по пути усложнения руткит-функционала, а TDL-4 уже способен заражать 64-х битные операционные системы. Однако на x64 платформах руткиты режима ядра чувствуют себя не так вольготно, как на x86 системах. Это является одним из факторов выбора метода инфицирования компьютера — заражение MBR. Другим фактором является то, что большинство современных антивирусных технологий, прежде всего анти-руткит технологии, не готовы бороться с угрозами на x64 платформе, и это сильно облегчает жизнь вирусописателям. «Вооруженный до зубов» TDL-4 представляет очень серьезную опасность для пользователей — и продолжает развиваться. Антивирусным компаниям необходимо в срочном порядке дописывать собственные анти-руткит компоненты, ведь в случае заражения данным руткитом у обычных пользователей просто не остается никаких шансов. Для обнаружения и излечения TDL-4 как на x86, так и на x64 платформах, «Лаборатория Касперского» предлагает воспользоваться персональными продуктами KAV/KIS или специальной утилитой TDSSKoller, которая способна обнаруживать не только данную модификацию, но и предыдущие ее версии.
| |
Просмотров: 658 | | |
Всего комментариев: 0 | |