Выявлен новый rootkit для Linux, подменяющий функции libc
Umbreon относится к руткитам третьего кольца защиты, функционирующим только в пространстве пользователя. Для скрытия своего присутствия, вместо перехвата системных вызовов на уровне ядра, 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", что приводит к автоматической загрузке вредоносной библиотеки при запуске любого исполняемого файла.
Руткит предоставляет обработчики для функций работы с файлами (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 вырезается из вывода при выполнении операций чтения. Следы вычищаются достаточно качественно, например, дополнительные настройки компоновщика вырезаются даже из вывода трассировки, т.е. не видны при использовании таких инструментов как strace. Так как Umbreon не в состоянии перехватить системный вызов ptrace(), чистка производится на этапе вывода результата, через перехват функций vprintf, __vfprintf_chk и fputs_unlocked.
В комплект также входит бэкдор Espereon, названный в честь покемона с большими ушами. Espereon обеспечивает обратное сетевое соединение к хосту атакующего при обнаружении в TCP-пакетах определённого ключа активации. Espereon постоянно слушает сетевой трафик на сетевом интерфейсе при помощи libpcap и скрывается под прикрытием Umbreon. Скрываются не только процессы и трафик, но и сетевая активность, благодаря перехвату функций got_packet и pcap_loop.
Для обнаружения и удаления руткита можно использовать инструменты анализа содержимого ФС, напрямую обращающиеся через системные вызовы, минуя функции libc. Также можно загрузиться c LiveCD, примонтировать дисковые разделы и оценить наличие подозрительных файлов /etc/ld.so.*, /usr/lib/libc.so.* и /usr/share/libc.so.*.
Источник: http://www.opennet.ru/opennews/art.shtml?num=45095
|
0 | Tweet | Нравится |
|