Милые панды, злой код. JPEG‑картинка оказалась входным билетом для rootkit на Linux

12344
Милые панды, злой код. JPEG‑картинка оказалась входным билетом для rootkit на Linux

Ни одного файла, ни одного намёка — однако процесс уже запущен и идёт полным ходом.

image

Необычная атака на Linux-серверы раскрыла новый уровень маскировки вредоносных программ — и, возможно, её искусственное происхождение. Исследователи из AquaSec задокументировали зловред под названием Koske, скрывающийся в, казалось бы, безобидных изображениях панд и использующий адаптивную логику, которая, по мнению специалистов, могла быть сгенерирована с помощью больших языковых моделей или автоматизированных систем.

Koske отличается тем, что запускается напрямую в оперативной памяти без записи на диск, используя файлы в формате polyglot — структуру, позволяющую одному и тому же объекту быть как изображением, так и исполняемым скриптом. В частности, вредоносный код размещён в конце JPEG-файлов, содержащих фотографии панд. Визуально они ничем не отличаются от обычных картинок, однако, если их обработает интерпретатор командной строки, система исполняет встроенный скрипт.

Проникновение начинается с эксплуатации неправильно настроенных экземпляров JupyterLab, доступных через интернет. Получив доступ, злоумышленник загружает две таких картинки с популярных хостингов — OVH images, freeimage и postimage. В каждой из них спрятан отдельный компонент: первый — это фрагмент на C, который компилируется прямо в памяти и действует как rootkit; второй — shell-скрипт, обеспечивающий незаметную работу и сохранение доступа.

Shell-компонент использует встроенные утилиты Linux для запуска и закрепления в системе. Он настраивает системные службы и задачи cron с интервалом в 30 минут, что обеспечивает стабильное повторное выполнение. Для уклонения от сетевых фильтров и прокси-ограничений переписывается файл /etc/resolv.conf, блокируется его изменение через chattr +i, обнуляются правила iptables, сбрасываются переменные прокси, а также запускается собственный модуль подбора рабочих прокси-серверов с помощью curl, wget и TCP-запросов.

Rootkit-компонент действует как расширение, подгружаемое через LD_PRELOAD. Он перехватывает вызовы readdir() и скрывает определённые процессы и файлы, содержащие ключевые строки вроде «koske» или «hideproc», а также использует дополнительный список идентификаторов, хранящийся в /dev/shm/.hiddenpid. Такой подход исключает обнаружение большинства пользовательских утилит мониторинга.

После установления стабильного присутствия вредонос загружает криптомайнеры с GitHub. Перед этим Koske проверяет аппаратные характеристики устройства: тип и мощность процессора и видеокарты. Выбор производится из набора под 18 различных криптовалют — среди них такие как Monero, Ravencoin, Zano, Nexa и Tari, известные своей анонимностью.

Каждой валюте сопоставлены резервные пулы — в случае недоступности основного Koske автоматически переключается, что подчёркивает высокий уровень автономности и гибкости.

Исследователи отметили сербские IP-адреса, используемые в атаках, сербские фразы в скриптах и словацкие элементы в репозиториях на GitHub. Однако прямой связи с какой-то конкретной группировкой установить не удалось. Специалисты подчёркивают, что уровень адаптации и скрытности Koske указывает на использование ИИ либо в процессе написания кода, либо в автоматизации разработки. Это может свидетельствовать о новом этапе эволюции вредоносного ПО — с повышенной автономией, возможностью самооптимизации и минимальной потребностью в ручном управлении.