Аналитики обнаружили новую сложную вредоносную программу для Linux, получившую название VoidLink. Её особенность заключается не только в продвинутых возможностях, таких как мультиоблачное таргетирование и руткит-функционал, но и в явных признаках генерации кода с помощью больших языковых моделей (LLM). Это указывает на снижение требуемого уровня навыков для создания опасного и труднообнаружимого вредоносного ПО.
Описание
VoidLink представляет собой C2-имплант (имплант для управления командным сервером), скомпилированный в виде 64-битного исполняемого файла ELF на языке Zig. Его архитектура модульна: после запуска инициализируется реестр модулей, который загружает четыре ключевых компонента. К ним относятся маршрутизатор задач, менеджер скрытности, менеджер внедрения кода и детектор отладчиков. Такая структура позволяет программе адаптироваться под окружение.
Перед активацией основных функций имплант проводит детальное профилирование системы. Он зондирует метаданные облачных провайдеров, включая AWS, Google Cloud, Microsoft Azure, Alibaba Cloud и Tencent Cloud. Кроме того, программа определяет, работает ли она внутри контейнера (Docker, Podman, Kubernetes) и анализирует версию ядра Linux. Эта информация определяет дальнейшее поведение зловреда.
Сбор данных и кража учетных данных - одна из ключевых задач VoidLink. Программа ищет переменные окружения, связанные с облачными сервисами, например, AWS_ACCESS_KEY. Она также сканирует локальные хранилища: SSH-ключи, историю команд оболочки, файлы с учетными данными Git и браузеров. В средах Kubernetes имплант целенаправленно извлекает токены сервисных аккаунтов, что открывает возможности для горизонтального перемещения по кластеру.
Особую опасность представляют возможности для побега из контейнера и эскалации привилегий в Kubernetes. При обнаружении контейнерного окружения VoidLink загружает специализированные плагины, такие как docker_escape_v3 и k8s_privesc_v3. Эти модули предназначены для нарушения границ контейнера и получения доступа к хост-системе или повышения прав внутри кластера.
Наиболее технически сложной частью является адаптивный руткит, работающий на уровне ядра. В зависимости от обнаруженной версии ядра, VoidLink применяет разные механизмы скрытности. Для современных ядер (≥ 5.5) используется режим eBPF для перехвата системных вызовов. Для ядер версии 4.x - 5.x загружаются модули ядра (LKM), а для более старых систем применяется метод перехвата в пользовательском пространстве через LD_PRELOAD. Этот руткит позволяет операторам динамически скрывать порты, процессы и файлы от средств криминалистики.
Коммуникация с C2-сервером осуществляется по зашифрованным HTTPS-каналам с использованием алгоритма AES-256-GCM. Трафик маскируется под легитимные веб-запросы, например, под обращения к API или загрузку JavaScript. В ходе анализа был обнаружен один из зашифрованных IP-адресов командного сервера: 8.149.128[.]10.
Главной отличительной чертой VoidLink являются артефакты, указывающие на автоматическую генерацию кода. В производственном бинарном файле остались многословные отладочные логи, структурированные метки вроде "Phase X:" и подробные комментарии. Например, в последовательности инициализации отсутствует "Phase 7", а "Phase 5" назначена двум разным функциям. Профессиональные разработчики вредоносного ПО, как правило, удаляют подобную отладочную информацию для повышения скрытности. Её наличие, наоборот, характерно для кода, сгенерированного ИИ-агентом без тщательной последующей проверки.
Таким образом, VoidLink - это не концепт, а полнофункциональный и развертываемый имплант. Он демонстрирует тревожный тренд: комбинация возможностей больших языковых моделей и специализированных знаний позволяет создавать сложные угрозы с меньшими усилиями. В результате защитникам, вероятно, придется столкнуться с увеличением количества функционального, модульного и быстро создаваемого вредоносного ПО подобного типа.
Индикаторы компрометации
IPv4
- 8.149.128.10
IPv4 Port Combinations
- 8.149.128.10:443
SHA1
- 9cdbc16912dcf188a0f0765ac21777b23b4b2bea
SHA256
- 05eac3663d47a29da0d32f67e10d161f831138e10958dcd88b9dc97038948f69