Укоренившееся в сознании некоторых пользователей мнение о том, что для операционных систем, построенных на базе ядра Linux, на сегодняшний день не существует серьезных угроз, все чаще подвергается испытаниям на прочность, говорится в сообщении антивирусной компании «Доктор Веб». В мае ее специалисты
обнаружили рекордное по сравнению с предыдущими месяцами число вредоносных программ для Linux, и уже в июне этот список пополнился новыми представителями Linux-троянцев, получивших общее название Linux.BackDoor.Gates.
Вредоносные программы семейства Linux.BackDoor.Gates сочетают в себе функциональные возможности классического бэкдора и троянца для организации DDoS-атак. Угроза ориентирована на 32-разрядные дистрибутивы Linux, и по ряду признаков можно сделать вывод о том, что ее авторами являются те же вирусописатели, которые разработали троянцев семейств Linux.DnsAmp и Linux.DDoS. Троянец состоит из двух функциональных модулей: основной представляет собой бэкдор, способный выполнять поступающие от злоумышленников команды, второй, сохраняемый на диск основным модулем в процессе установки троянца, предназначен для осуществления DDoS-атак.
Один из представителей семейства вредоносных программ Linux.BackDoor.Gates, получивший название
Linux.BackDoor.Gates.5, в ходе своей работы собирает и передает злоумышленникам следующую информацию об инфицированном компьютере:
1. Количество ядер CPU (читает из /proc/cpuinfo).
2. Скорость CPU (читает из /proc/cpuinfo).
3. Использование CPU (читает из /proc/stat).
4. IP Gate'a (читает из /proc/net/route).
5. MAC-адрес Gate'a (читает из /proc/net/arp).
6. Информацию о сетевых интерфейсах (читает из /proc/net/dev).
7. MAC-адрес сетевого устройства.
8. Объем памяти (используется параметр MemTotal из /proc/meminfo).
9. Объем переданных и полученных данных (читает из /proc/net/dev).
10. Название и версию ОС (с помощью вызова команды uname).
После своего запуска Linux.BackDoor.Gates.5 проверяет путь к папке, из которой он был запущен, и в зависимости от полученного результата может реализовать четыре возможные модели поведения.
Если путь расположения исполняемого файла бэкдора отличен от путей утилит netstat, lsof, ps, то троянец запускает себя в системе как демон, после чего начинает процедуру инициализации, в процессе которой расшифровывает из своего тела конфигурационный файл. Этот файл содержит различные данные, необходимые для работы троянца, такие как, например, IP-адрес и порт управляющего сервера, параметры установки бэкдора и некоторые другие.
В зависимости от значения параметра g_iGatsIsFx в конфигурационном файле троянец либо самостоятельно соединяется с управляющим сервером, либо ожидает входящего соединения — после успешной установки такового бэкдор проверяет IP-адрес обращающегося к нему узла и работает с ним, как с командным сервером.
В процессе своей установки троянец проверяет файл /tmp/moni.lock, и, если он не пустой, читает записанное в него значение (PID процесса) и «убивает» процесс с таким ID. Затем Linux.BackDoor.Gates.5 проверяет, запущен ли в системе DDoS-модуль и собственный процесс бэкдора (если они запущены, эти процессы также «убиваются»). Если в файле конфигурации установлен специальный флаг g_iIsService, то троянец прописывает себя в автозагрузку, записывая строку #!/bin/bash\n в файл /etc/init.d/, после чего Linux.BackDoor.Gates.5 создает следующие символические ссылки:
ln -s /etc/init.d/DbSecuritySpt /etc/rc1.d/S97DbSecuritySpt
ln -s /etc/init.d/DbSecuritySpt /etc/rc2.d/S97DbSecuritySpt
ln -s /etc/init.d/DbSecuritySpt /etc/rc3.d/S97DbSecuritySpt
ln -s /etc/init.d/DbSecuritySpt /etc/rc4.d/S97DbSecuritySpt
Если в конфигурационном файле установлен флаг g_bDoBackdoor, троянец проверяет также наличие у своего процесса прав root, для чего пытается открыть файл /root/.profile. Затем бэкдор копирует себя в /usr/bin/bsd-port/getty и запускает. На финальном этапе установки Linux.BackDoor.Gates.5 создает еще одну собственную копию в папке /usr/bin/ с именем, записанным в конфигурационном файле, а также замещает собой следующие утилиты:
/bin/netstat
/bin/lsof
/bin/ps
/usr/bin/netstat
/usr/bin/lsof
/usr/bin/ps
/usr/sbin/netstat
/usr/sbin/lsof
/usr/sbin/ps
На этом процесс установки троянца завершается и вызывается функция для выполнения его основных задач.
В случае использования двух других алгоритмов поведения троянец также стартует на инфицированном компьютере как демон, проверяет, запущены ли его компоненты путем чтения соответствующего .lock-файла (и, если нет, запускает их), однако использует разные имена для сохранения файлов и регистрации себя в автозагрузке.
Установив связь с командным сервером, Linux.BackDoor.Gates.5 получает от него конфигурационные данные с заданием, которое должен выполнить бот. По команде злоумышленников троянец способен осуществить автообновление, начать или прервать DDoS-атаку на удаленный узел с заданным IP-адресом и портом, выполнить команду из блока конфигурационных данных или установить соединение для выполнения других команд с удаленным узлом, имеющим заданный IP-адрес.
Основной целью DDoS-атак, осуществляемых с помощью этого бэкдора, являются китайские серверы, однако среди избранных злоумышленниками целей встречаются и другие страны.