Несколько дней назад в Список рассылки полного раскрытия информации Было сообщение об интересной вредоносной программе для Linux. Это очень интересный образец — не только потому, что он предназначен для 64-битных платформ Linux и скрывает свое присутствие в системе хитрыми методами, но прежде всего из-за необычного функционала, связанного с заражением сайтов, размещенных на атакованном HTTP-сервере.
Таким образом, мы имеем дело с вредоносной программой, используемой для организации попутной загрузки вредоносного ПО.
Вредоносный модуль создан специально для версии ядра 2.6.32-5-amd64. Это последний вариант ядра, используемый в 64-битной версии Squeeze для Debian. Размер исполняемого файла превышает 500 КБ, но это связано с тем, что он был скомпилирован с отладочной информацией.
Возможно, модуль находится в разработке: похоже, некоторые функции не до конца отлажены или, возможно, еще не до конца реализованы.
Вредоносная программа обеспечивает свой автозапуск, добавляя в скрипт /etc/rc.local следующую строку: insmod /lib/modules/2.6.32-5-amd64/kernel/sound/module_init.ko
После загрузки в память руткит использует один из двух методов для получения символов ядра и записи их в файл /.
kallsyms_tmp: /bin/bash -c cat /proc/kallsyms > /.
kallsyms_tmp /bin/bash -c cat /boot/System.map-`uname -r` > /.
kallsyms_tmp
Затем он извлекает адреса памяти нескольких функций и переменных ядра и сохраняет их в памяти для дальнейшего использования.
Временный файл немедленно удаляется: 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-пакетов.
Чтобы получить фактически внедренный блок данных, вредоносное ПО подключается к серверу управления и контроля (C&C), используя зашифрованный пароль для аутентификации.
Нам не удалось подключиться к серверу управления по порту, используемому вредоносной программой, но вредоносный сервер все еще активен; он также содержит другие инструменты для UNIX-подобных операционных систем, в частности инструменты для очистки журналов.
До сих пор в большинстве сценариев атак Drive-By механизм автоматического внедрения вредоносного кода реализовывался с помощью простого PHP-скрипта.
Но в данном случае мы имеем дело с гораздо более сложным механизмом — использованием руткит-компонента режима ядра, использующего сложные технологии перехвата, что делает процесс внедрения более прозрачным (невидимым) и низкоуровневым, чем когда-либо прежде.
Этот руткит, находящийся в настоящее время в стадии разработки, демонстрирует новый подход к организации Drive-By-атак.
Мы, безусловно, можем ожидать появления большего количества подобных вредоносных программ в будущем.
Отличный подробный анализ этого руткита был недавно опубликован в журнале Блог CrowdStrike .
Продукты «Лаборатории Касперского» детектируют этот руткит как Rootkit.Linux.Snakso.a
Теги: #linux #вирусы #Касперский #Лаборатория Касперского #руткиты #лаборатория Касперского #касперский
-
Слои В Мобильных Яндекс.картах
19 Oct, 24 -
Мне Нужно Это Погуглить
19 Oct, 24