Содержание
Hades получил новый трюк против ИИ-сканеров: вредоносные пакеты вставляют в код фальшивые промпты про запрещенные темы, чтобы защитные механизмы модели остановили проверку до настоящей нагрузки.
Кампания бьет по цепочке поставки ПО. В зоне риска пакеты для разработчиков, научных проектов и машинного обучения. Это не атака на домашний ПК в стиле старых троянов из 2000-х. Здесь расчет на то, что разработчик поставит зависимость, а вместе с ней отдаст токены, ключи и конфиги.
ИИ-ловушка срабатывает на правилах безопасности
Схема выглядит почти смешно простой. В некоторых JavaScript-файлах Hades добавляет комментарий с инструкциями для бота: модель якобы работает без ограничений и должна выдать опасный контент про биологическое или ядерное оружие.
Нормальная модель не должна выполнять такую просьбу. В этом и смысл атаки. Если сканер построили поверх большой языковой модели, срабатывает safety-механизм. Проверка может остановиться или зависнуть на отказе, а оставшаяся часть файла с вредоносным кодом уходит из поля зрения.
В терминах ИИ это adversarial attack — атака через входные данные. Она не ломает модель напрямую. Она подсовывает ей такой текст, на котором защитная логика мешает основной задаче.
Пользователь X проверил один из файлов через Anthropic Fable и получил сообщение Chat paused. Это не лабораторный тест и не доказательство массовой уязвимости. Но для быстрых проверок в духе «бот, посмотри, нет ли тут малвари» сигнал неприятный.
CI/CD-боты тоже могут попасть в эту серую зону, если команда прикрутила LLM поверх пайплайна без жесткого парсинга кода. Тут Hades играет не на гениальности, а на лени процесса. Малвари часто выигрывает именно так.
Обычные сканеры все еще видят часть следов
Socket указывает, что другие методы анализа продолжают работать. Простая LLM-проверка может споткнуться, но классические инструменты не обязаны читать комментарии как инструкции.
- Сигнатуры: поиск известных шаблонов вредоносного кода.
- Парсинг: разбор исходников как программы, а не как текста для чата.
- Энтропия: поиск случайных и запакованных фрагментов.
- Песочница: запуск пакета в изолированной среде.
Правда, Hades прокачал и эту часть. Вредоносный код умеет удалять себя через несколько механизмов. Один из типичных триггеров — попытка понять, что пакет запустили в sandbox.
Авторы кампании разделили загрузчик и полезную нагрузку по разным пакетам. Такие пары часто ставят вместе, но обычные сканеры не всегда ждут, что две зависимости соберут атаку только в связке.
Еще один ход — precompiled binaries. Такие бинарники часто лежат в Python-пакетах, где важна скорость. Для научного софта и ML-библиотек это нормальная практика, поэтому сам факт бинарника не выглядит подозрительно.
Часть нагрузок срабатывает не при установке, а при запуске кода через Python import. Поверхностная проверка после установки может ничего не увидеть. А реальный удар происходит, когда пакет попадает в рабочий проект.
Hades расширил кражу токенов и ключей
Ранние варианты кампании сильнее фокусировались на CI/CD-секретах. Свежая версия собирает куда более широкий набор данных разработчика и инфраструктуры.
- Репозитории пакетов: npm, PyPI, RubyGems и JFrog.
- Инфраструктура: Kubernetes service account tokens и временные AWS credentials.
- Доступ к серверам: SSH-ключи и Docker-конфигурации.
- Локальные следы: shell history и .env-файлы.
- AI-инструменты: конфигурации developer tools для работы с ИИ.
Для атак на supply chain такой набор опасен сильнее обычного пароля. Один токен от PyPI или npm может открыть путь к следующему пакету. Один ключ Kubernetes — к окружению, где живут сборки и секреты.
В кампании есть и typo-squatting. Злоумышленники используют имена, похожие на популярные пакеты. В примере фигурирует rsquests вместо requests — одна пропущенная буква, и зависимость уже не та.
Целевая аудитория тут не новички. Hades нацелен на разработчиков, исследователей и ML-команды. Но опыт в моделях не гарантирует аккуратность с пакетами. Любой, кто собирал окружение перед дедлайном, понимает этот риск без морализаторства.
К моменту публикации Socket насчитал в расширенной кампании 37 Python-пакетов и 106 JavaScript-пакетов, связанных с Hades.