Укоренившееся в сознании некоторых пользователей мнение о том, что для операционных систем, построенных на базе ядра Linux, на сегодняшний день не существует серьезных угроз, все чаще подвергается испытаниям на прочность. В мае 2014 года специалисты антивирусной компании «Доктор Веб» обнаружили рекордное по сравнению с предыдущими месяцами число вредоносных программ для Linux, и уже в июне этот список пополнился новыми представителями Linux-троянцев, получивших общее название Linux.BackDoor.Gates.

Вредоносные программы семейства Linux.BackDoor.Gates сочетают в себе функциональные возможности классического бэкдора и троянца для организации DDoS-атак. Угроза ориентирована на 32-разрядные дистрибутивы Linux, и по ряду признаков можно сделать вывод о том, что ее авторами являются те же вирусописатели, которые разработали троянцев семейств Linux.DnsAmp и Linux.DDoS. Троянец состоит из двух функциональных модулей: основной представляет собой бэкдор, способный выполнять поступающие от злоумышленников команды, второй, сохраняемый на диск основным модулем в процессе установки троянца, предназначен для осуществления DDoS-атак. В ходе своей работы Linux.BackDoor.Gates.5 собирает и передает злоумышленникам следующую информацию об инфицированном компьютере: количество ядер CPU (читает из /proc/cpuinfo); скорость CPU (читает из /proc/cpuinfo); использование CPU (читает из /proc/stat); IP Gate’a (читает из /proc/net/route); MAC-адрес Gate’a (читает из /proc/net/arp); информацию о сетевых интерфейсах (читает из /proc/net/dev); MAC-адрес сетевого устройства; объем памяти (используется параметр MemTotal из /proc/meminfo); объем переданных и полученных данных (читает из /proc/net/dev); название и версию ОС (с помощью вызова команды 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-атак, осуществляемых с помощью этого бэкдора, являются китайские серверы, однако среди избранных злоумышленниками целей встречаются и другие страны.

Данная вредоносная программа внесена в вирусные базы Dr.Web и потому не представляет опасности для пользователей антивирусных продуктов компании.