Новый руткит для 64-разрядной системы Linux: внедрение iframe

Несколько дней назад в списке рассылки Full Disclosure появилось сообщение об интересной вредоносной программе для Linux. Это очень любопытный образец – не только потому, что он предназначен для 64-разрядных платформ Linux и скрывает свое присутствие в системе с помощью хитроумных методов, но прежде всего из-за необычного функционала, связанного с заражением сайтов, размещенных на подвергшемся атаке HTTP-сервере. Таким образом, мы имеем дело с вредоносной программой, используемой для организации drive-by загрузок вредоносного ПО.

Вредоносный модуль создан специально для версии ядра 2.6.32-5-amd64. Это новейший вариант ядра, используемый в 64-разрядной системе Debian версии Squeeze. Исполняемый файл имеет размер более 500 кБ, но это связано с тем, что он был скомпилирован с отладочной информацией. Возможно, модуль находится на стадии разработки: создается впечатление, что некоторые функции не до конца отлажены или, может быть, еще не полностью реализованы.

Вредоносная программа обеспечивает свой автозапуск, добавляя строку в скрипт /etc/rc.local:

После своей загрузки в память руткит использует один из двух методов для получения kernel symbols и их записи в файл /.kallsyms_tmp:

Затем он извлекает адреса памяти нескольких функций и переменных ядра и сохраняет их в памяти для дальнейшего использования.

Временный файл немедленно удаляется:

Чтобы скрыть файлы и строку стартового скрипта, запускающую вредоносную программу, руткит перехватывает следующие функции ядра путем сплайсинга или замены адреса в памяти на указатели собственных вредоносных функций руткита:

В дополнение к сокрытию собственного модуля вредоносная программа пытается скрыть следующие файлы и потоки:

Интересен механизм внедрения плавающего фрейма (iFrame): вредоносная программа подменяет системную функцию tcp_sendmsg, отвечающую за построение TCP-пакетов, собственной функцией. Таким образом, вредоносные фреймы внедряются в HTTP-трафик путем непосредственной модификации исходящих TCP-пакетов.

Для получения актуального внедряемого блока данных вредоносная программа соединяется с сервером управления (C&C), используя для аутентификации зашифрованный пароль.

Нам не удалось соединиться с сервером управления через порт, используемый вредоносной программой, однако вредоносный сервер все еще активен; на нем размещен и другой инструментарий для UNIX-подобных операционных систем, в частности, инструменты для очистки журналов (большое спасибо моему коллеге Давиду Якоби за предоставление этой информации).

До сих пор в большинстве сценариев drive-by атак механизм автоматического внедрения вредоносного кода был реализован с помощью простого PHP-скрипта. Но в данном случае мы имеем дело с гораздо более сложным механизмом – применением руткит-компонента режима ядра, использующего сложные технологии перехвата, что позволяет сделать процесс внедрения более прозрачным (незаметным) и низкоуровневым, чем когда-либо ранее. Этот руткит, который в данный момент находится на стадии разработки, демонстрирует новый подход к организации drive-by атак. Несомненно, можно ожидать появления других подобных вредоносных программ в будущем.

Превосходный подробный анализ этого руткита был недавно опубликован в блоге CrowdStrike.

Продукты «Лаборатории Касперского» детектируют данный руткит как

.

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

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

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