Ноль детектов на VirusTotal, три недели в дикой среде. Разбор нового Linux-бэкдора для маршрутизаторов

leer en español

7915
Ноль детектов на VirusTotal, три недели в дикой среде. Разбор нового Linux-бэкдора для маршрутизаторов

Защитные механизмы целый месяц в упор не замечали чужака.

image

Вредоносная библиотека может годами прятаться среди обычных системных файлов, и новый Linux-бэкдор использует именно такой приём для атак на маршрутизаторы iKuai. Образец с нулевым уровнем обнаружения нашли на VirusTotal 1 июля этого года, хотя впервые файл загрузили из Японии ещё 8 июня.

Бэкдор получил имя libjson_script.so.0 и маскируется под легитимный компонент проекта OpenWrt. На маршрутизаторы iKuai указывают обращения к параметрам GWID и VERSTRING в системных файлах. Оба значения встречаются в прошивках производителя, однако подтверждённых заражений автор анализа не обнаружил.

После запуска вредоносная программа предотвращает появление второй копии, расшифровывает настройки и связывается с управляющим сервером. Соединение проходит по HTTPS без проверки сертификата, а передаваемые сведения защищает встроенное шифрование AES. По умолчанию бэкдор выходит на связь раз в час.

На сервер отправляются идентификатор шлюза, архитектура устройства, имя хоста, локальный IP-адрес, версия прошивки, номер процесса и рабочая директория. В ответ бэкдор получает зашифрованный список задач и интервал до следующего обращения.

Операторы могут выполнять команды оболочки, менять каталоги, загружать и запускать дополнительные ELF-файлы, создавать задания по расписанию и отменять их. Отдельная команда позволяет читать файлы размером до 512 КБ, кодировать содержимое в Base64 и отправлять его на управляющий сервер. Результаты всех операций возвращаются в виде зашифрованных JSON-сообщений.

Поиск по признакам вредоносной программы не выявил других образцов, поэтому бэкдор пока выглядит редким. Для проверки маршрутизаторов стоит искать файл libjson_script.so.0 с хешем 4e6276cc400b3b9e9616d04474b64a8fa0c35375b9673ab41a92a6d5bce72d8d, обращения к адресу 47.80.111[.]129:7380 и неизвестный файл /usr/share/misc/.runlevel.cache.