Выявлен новый rootkit для Linux, подменяющий функции libc
Компания Trend Micro выявила новое семейство руткитов, получивших название Umbreon в честь одноименного покемона, который прячется в темноте. Единичные следы внедрения Umbreon прослеживаются с начала 2015 года, но сейчас руткит появился в свободной продаже на черном рынке. Umbreon поражает Linux-системы на базе архитектур x86, x86_64 и ARM, и относится к руткитам третьего кольца защиты, функционирующим только в пространстве пользователя. Для скрытия своего присутствия, вместо перехвата системных вызовов на уровне ядра, Umbreon осуществляет подмену функций стандартной библиотеки libc.
Подмена функций осуществляется на этапе связывания, путем подстановки библиотеки /usr/share/libc.so.*.[i686|x86_64|v6l].ld-2.22.so, переопределяющей функции libc. Библиотека прописывается в конфигурационный файл "/etc/ld.so.*" (где "*" случайный набор букв, например, /etc/ld.so.thVkfEQ), который, в свою очередь, подменяет в загрузчике /lib/x86_64-linux-g строку "/etc/ld.so.preload", что приводит к автоматической загрузке вредоносной библиотеки при запуске любого исполняемого файла.
Umbreon предоставляет обработчики для функций работы с файлами (open, opendir, read, write, chdir и т. п.), записи в лог (syslog, audit*), запуска исполняемых файлов (execve, execvp), аутентификации через PAM (pam_authenticate, pam_open_session), работы с базой пользователей (getpwnam, getpgid, getpwuid), работы с процессами (get_procname, kill), обработки сетевых соединений (socket, netstat) и т. д., всего перехватывается более 100 функций.
Контролируя выполнение данных функций Umbreon тщательно вырезает из потока данных информацию о своих компонентах (например, не показывает свои файлы и скрывает процессы), а также обеспечивает скрытый вход (работает в том числе через SSH), путем перехвата функций PAM и добавления скрытого пользователя, присутствие которого в /etc/passwd вырезается из вывода при выполнении операций чтения.
В комплект также входит бэкдор Espereon, названный в честь другого покемона, который обеспечивает обратное сетевое соединение к хосту атакующего при обнаружении в TCP-пакетах определенного ключа активации. Espereon постоянно слушает сетевой трафик на сетевом интерфейсе при помощи libpcap.
Для обнаружения и удаления руткита можно использовать инструменты анализа содержимого ФС, напрямую обращающиеся через системные вызовы, минуя функции libc. Также можно загрузиться c LiveCD, примонтировать дисковые разделы и оценить наличие подозрительных файлов /etc/ld.so.*, /usr/lib/libc.so.* и /usr/share/libc.so.*.