Обнаружен скрытый Linux-бэкдор с нулевым детектированием и динамическим C2-сервером

information security

В сфере информационной безопасности редкие находки, остающиеся незамеченными антивирусными движками в течение длительного времени, всегда привлекают пристальное внимание исследователей. Такой случай произошёл в начале марта, когда группа MalwareHunterTeam обнаружила в VirusTotal образец вредоносного ПО для Linux, не определяемый ни одним из сканирующих движков. Хотя общеизвестно, что движки в VirusTotal не реализуют полный функционал коммерческих решений, отсутствие детектирования для явно вредоносного и необфусцированного кода сделало эту находку особо интересной для глубокого анализа. Обнаруженный бэкдор, судя по данным загрузки, циркулирует с конца января 2026 года, что указывает на потенциально успешную скрытую операцию.

Описание

Архив с именем "out_linux.tar", содержащий бэкдор, был загружен в VirusTotal 27 января с двух независимых источников - из США и Вьетнама. Внутри архива находятся два файла: основной исполняемый модуль "netd" и файл конфигурации "netd.lck". Анализ показал, что "netd" представляет собой 64-битный ELF-файл (исполняемый формат для Linux), статически слинкованный и не лишённый символов отладки, что несколько облегчило исследование. В свою очередь, файл "netd.lck" является зашифрованным конфигурационным файлом, который бэкдор может удалённо обновлять по команде оператора.

Инициализация вредоносной программы начинается с двух ключевых функций. Первая, "lock_process", использует именованный семафор для создания мьютекса, предотвращающего повторный запуск копии бэкдора в системе. Этот механизм, однако, можно обойти, запустив программу с аргументом "skip". Вторая функция, "load_config", отвечает за чтение и расшифровку конфигурации. Алгоритм расшифровки использует операцию XOR с двумя ключами. После её применения становятся видны два домена второго уровня: "chopaw.camdvr[.]org" и "drawpin.accesscam[.]org". Кроме того, в код жёстко вшит третий домен командного сервера: "mefng.giize[.]com:443". Все эти домены зарегистрированы через сервис динамического DNS Dynu Systems, что позволяет злоумышленникам гибко менять IP-адреса своих серверов, уходя от блокировок.

После загрузки конфигурации бэкдор демонизируется, создавая новый сеанс. Внутри демона он создаёт псевдотерминал (PTY), затем порождает новый процесс, в котором запускает интерактивную оболочку ("/bin/sh -i"). Параллельно в родительском процессе запускается поток "recv_thread", отвечающий за всё взаимодействие с C2-сервером по зашифрованному каналу. Этот поток реализует сложную процедуру установления соединения. Сначала функция "resolve_name" отправляет DNS-запрос к "www.google.com", вероятно, в качестве отвлекающего манёвра, а затем запрашивает IP-адрес настоящего C2. Полученный адрес дополнительно расшифровывается с помощью XOR с ключом "0xC7852752". На момент анализа домен "mefng.giize[.]com" указывал на IP-адрес "138.89.104[.]8", принадлежащий провайдеру Verizon. После расшифровки с указанным ключом получается адрес "77.220.79[.]90". Исследователи сообщили, что данный адрес мог принадлежать скомпрометированному маршрутизатору Mikrotik с открытым портом 8291, historically использовавшимся для эксплуатации уязвимостей.

Установив TCP-соединение, бэкдор проходит кастомный протокол аутентификации с запросом-ответом (challenge-response) на основе шифрования RC4. Только после успешной проверки, в ходе которой сервер должен вернуть определённый байт, начинается основное взаимодействие. Первым делом бэкдор отправляет на сервер детальную информацию о системе жертвы, включая сгенерированный уникальный идентификатор (на основе MAC-адреса или случайного значения), имя хоста, данные о ядре и домене. Далее программа переходит в состояние ожидания команд от оператора.

Функционал бэкдора является классическим для подобных угроз и предоставляет злоумышленнику полный контроль над системой. Реализованные команды включают загрузку и выгрузку файлов, выполнение произвольных shell-команд, получение списка файлов в директории и списка процессов, удаление файлов и "убийство" процессов. Отдельные команды позволяют запрашивать текущую конфигурацию у жертвы и обновлять её удалённо. Также реализованы команды для перевода бэкдора в "спящий" режим и его полного самоуничтожения вместе с конфигурационным файлом, что помогает скрыть следы компрометации.

Данный инцидент наглядно демонстрирует несколько важных тенденций в развитии угроз для Linux-систем. Во-первых, использование статической линковки и отсутствие обфускации может быть сознательным выбором для избегания эвристического анализа, полагаясь на низкую распространённость и, как следствие, отсутствие сигнатур. Во-вторых, применение динамического DNS и возможность удалённого обновления C2-адресов через зашифрованную конфигурацию значительно усложняет блокировку вредоносной инфраструктуры. В-третьих, механизм самоуничтожения указывает на стремление операторов к сохранению скрытности и затруднению постфактум-анализа.

Для специалистов по безопасности этот случай служит напоминанием о необходимости многоуровневой защиты. Помимо сигнатурного анализа, критически важны механизмы контроля целостности файлов и поведения приложений (EDR), способные обнаруживать аномальную активность, такую как создание псевдотерминалов, неавторизованные сетевые соединения на нестандартные порты или выполнение подозрительных последовательностей команд. Мониторинг DNS-запросов к доменам динамических DNS-провайдеров, особенно в корпоративных сегментах, где такая необходимость маловероятна, также может помочь в выявлении подобных скрытых угроз. Обнаружение бэкдора с нулевым детектированием - это всегда сигнал к пересмотру и усилению проактивных мер защиты.

Индикаторы компрометации

Domains

  • chopaw.camdvr.org
  • drawpin.accesscam.org

Domain Port Combinations

  • mefng.giize.com:443

SHA256

  • 78e145fcc9f099a1dec49f9001bfbb06366fcf30f66a7cc9e6605b36019dfac4
  • 8e4f33722c16a5e922a81a4be61db804bbf2e899d89902085e854b7f0a0d587f
  • bcffe674c4425634d4750bb21a505be9ce35e31413d2e6cce75ad0c609563cc5
  • be0f36ee071a9c0c200dcdaed98fce7fadc31305d0a5f24a244a3af7833d21dd
Комментарии: 0