«Федеральный» троянец обзавелся Большим Братом

Около двух недель назад немецкое общество хакеров Chaos Computer Club (CCC) опубликовало аналитический отчет о троянце-бэкдоре, который, как они утверждают, использовался немецкой полицией в ходе расследований для перехвата голосового трафика и сообщений с компьютеров подозреваемых. Наши коллеги из F-Secure на прошлой неделе опубликовали блогпост, в котором описали другой файл, который, по их словам, является дроппер-компонентом троянца. Они любезно поделились с нами MD5-хэшем файла, так что мы смогли найти его в нашей коллекции. Мы со Стефаном (Stefan Ortloff) исследовали этот вредоносный компонент.

Дроппер несет в своей ресурсной таблице пять других файлов, так что всего компонентов шесть, и каждый решает свои задачи, каждую из которых мы внимательно изучили. Помимо прочего, мы обнаружили две интересные вещи. Во-первых, эта версия зловреда способна выполняться не только на 32-битных системах – она поддерживает и 64-битные версии Windows. Во-вторых, список процессов-мишеней, которые подвергаются мониторингу, оказался длиннее списка, указанного в отчете ССС. Всего различными компонентами заражается 15 приложений.

Приложения-мишени

В предыдущих обсуждениях R2D2 говорится, что приложением-мишенью, которое подвергается мониторингу со стороны троянца, является Skype. Рассмотренная нами версия нацелена не только на Skype, но и на все распространенные браузеры, различные приложения для мгновенного обмена сообщениями и программы IP-телефонии (VoIP): ICQ, MSN Messenger, Low-Rate Voip, paltalk, SimpPro, sipgate X-Lite, VoipBuster и Yahoo! Messenger. Вот список процессов-мишеней:

  • explorer.exe
  • firefox.exe
  • icqlite.exe
  • lowratevoip.exe
  • msnmsgr.exe
  • opera.exe
  • paltalk.exe
  • simplite-icq-aim.exe
  • simppro.exe
  • sipgatexlite.exe
  • skype.exe
  • skypepm.exe
  • voipbuster.exe
  • x-lite.exe
  • yahoomessenger.exe

Инъекция кода в процессы-мишени выполняется дроппером, двумя компонентами, выполняемыми в режиме пользователя, а также 32-битным драйвером режима ядра; у последнего расширен набор функциональных возможностей по сравнению с предыдущей версией, которая предоставляла лишь интерфейс для внесения изменений в реестр и файловую систему. Новый же драйвер запускает дополнительный поток, который в бесконечном цикле просматривает текущий список выполняемых процессов и внедряет вредоносный DLL в каждый процесс, имя образа которого совпадает с какой-либо записью в следующем списке:

40802Рис. 1. Список процессов-мишеней в 32-битном драйвере режима ядра

Все процессы-мишени, которые мы обнаружили в компонентах, выполняемых в пользовательском режиме, также охвачены драйвером.
Используются два разных метода инъекции вредоносного DLL. Один метод регистрирует библиотеку режима пользователя в реестре Windows под именем AppInit DLL, в результате чего библиотека загружается во время создания процесса. Второй метод создает удаленный поток в уже запущенных процессах и внедряет блок позиционно-независимого кода, который вносит файл mfc42ul.dll – один из модулей режима пользователя – в память процесса-мишени. На скриншоте видна первая пара инструкций кода, который выполняет инъекцию:

40803Рис. 2. Позиционно-независимый код, внедряющий DLL в процесс-мишень

64-битный драйвер режима ядра

После того как дроппер устанавливает компонент режима ядра, он формирует имя ресурса в зависимости от архитектуры системы (32- или 64 бит) и устанавливает соответствующий драйвер:

40804Рис. 3. Код, определяющий и загружающий драйвер режима ядра в зависимости от архитектуры

В отличие от 32-битной версии, 64-битный драйвер не содержит никакого функционала, обеспечивающего заражение процессов, и предоставляет лишь примитивный интерфейс повышения привилегий через доступ к файловой системе и реестру. Как и 32-битная версия, он создает устройство и внедряет простой протокол для обмена данными с приложениями режима пользователя.

40804Рис. 4. Подпрограмма создания устройства в 64-битном драйвере

Широко известно, что 64-битные модули режима ядра должны иметь действительную цифровую подпись, которую операционная система может проверить; в противном случае в загрузке драйвера будет отказано. Драйвер, который идет в комплекте с руткитом, содержит 1024-битный RSA-ключ (контрольная сумма e5445e4a 9c7d24c8 43f0c669 e2a8d3a1 78cf7fa8), выданный Goose Cert 11 апреля 2010 г. Однако для загрузки драйвера ключ должен быть установлен, а его достоверность должна быть подтверждена.

40804Рис. 5. RSA-ключ из 64-битного драйвера

Все вредоносные компоненты детектируются продуктами «Лаборатории Касперского» как варианты троянца/руткита R2D2. Дроппер-компонент до этого детектировался и блокировался нашими продуктами при помощи эвристических методов.

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *