- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

insmod /lib/modules/2.6.32-5-amd64/kernel/sound/module_init.ko

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

/bin/bash -c cat /proc/kallsyms > /.kallsyms_tmp
/bin/bash -c cat /boot/System.map-`uname -r` > /.kallsyms_tmp

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

image [3]

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

rm /.kallsyms_tmp -f

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

vfs_readdir
vfs_read
filldir64
filldir

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

zzzzzz_command_http_inject_for_module_init
zzzzzz_write_command_in_file
module_init.ko
sysctl.conf
/usr/local/hide/first_hide_file/*
/ah34df94987sdfgDR6JH51J9a9rh191jq97811/*

backconnect_command_thread_name
new_backconnect_command_thread_name
read_command_http_inject_thread_name
write_startup_command_thread_name
write_se_linux_command_thread_name
get_http_inj_from_server_thread_name

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

image [4]

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

image [5]

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

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

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

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

Rootkit.Linux.Snakso.a

Автор: Kaspersky_Lab

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/20873

Ссылки в тексте:

[1] списке рассылки Full Disclosure: http://seclists.org/fulldisclosure/2012/Nov/94

[2] Image: http://www.securelist.com/ru/images/pictures/klblog/207764327.png

[3] Image: http://www.securelist.com/ru/images/pictures/klblog/207764329.png

[4] Image: http://www.securelist.com/ru/images/pictures/klblog/207764331.png

[5] Image: http://www.securelist.com/ru/images/pictures/klblog/207764333.png

[6] блоге CrowdStrike: http://blog.crowdstrike.com/2012/11/http-iframe-injecting-linux-rootkit.html

[7] Источник: http://habrahabr.ru/post/159935/