Ssylka

Атака s1ngularity: как ИИ-помощники стали оружием хакеров

В результате масштабной атаки на цепочку поставок, нацеленной на популярную систему сборки Nx, были скомпрометированы тысячи разработчиков. Злоумышленники опубликовали в реестре npm вредоносные версии пакета nx и нескольких его плагинов. Вредоносное ПО, получившее название «s1ngularity», сканировало системы разработчиков, похищало учетные данные GitHub, облачных сервисов и ИИ-ассистентов, а затем выгружало их в публичные репозитории GitHub. В общей сложности утекло 2349 учетных данных.
Атака s1ngularity: как ИИ-помощники стали оружием хакеров
Изображение носит иллюстративный характер

Целью атаки стала Nx — платформа с открытым исходным кодом для управления кодовыми базами, которая позиционирует себя как «ИИ-ориентированная платформа сборки, соединяющая все от вашего редактора до CI». Популярность инструмента огромна: npm-пакет nx имеет более 3.5 миллионов еженедельных загрузок, что обеспечило широкий охват вредоносной кампании, начавшейся 26 августа 2025 года.

Первопричиной взлома стала уязвимость в рабочем процессе GitHub в репозитории nrwl/nx. Атакующие злоупотребили особенностями триггера pull_request_target в GitHub Actions. В отличие от стандартного pull_request, этот триггер запускает процессы с повышенными привилегиями, предоставляя доступ к GITHUB_TOKEN с правами на чтение и запись в репозитории. Злоумышленник создал pull-запрос со специально сформированным заголовком, содержащим bash-инъекцию, что позволило выполнить произвольный код. Это, в свою очередь, запустило рабочий процесс publish.yml, который извлек секретный npm-токен проекта и отправил его на контролируемый злоумышленниками эндпоинт webhook[.]site.

После получения токена злоумышленники опубликовали зараженные версии пакетов Nx. При установке такого пакета автоматически запускался скрипт postinstall на системах под управлением Linux и macOS. Этот скрипт сканировал файловую систему в поисках конфиденциальных файлов, таких как .gitconfig, текстовые файлы и SSH-ключи. Собранные данные кодировались в Base64 и загружались в новый публичный репозиторий GitHub, созданный от имени самого пострадавшего пользователя. Имена репозиториев были s1ngularity-repository, s1ngularity-repository-0 и s1ngularity-repository-1.

В качестве вторичного действия вредоносное ПО вносило изменения в конфигурационные файлы оболочки .zshrc и .bashrc. Туда добавлялась команда sudo shutdown -h 0, которая при следующем запуске терминала запрашивала у пользователя системный пароль и, в случае его ввода, немедленно выключала компьютер. Распространению вредоносной программы часто способствовало расширение nx для Visual Studio Code, через которое и происходило заражение систем разработчиков.

Ключевым нововведением атаки стало использование установленных на машине разработчика ИИ-инструментов командной строки. Вредоносная программа задействовала ассистентов Claude, Google Gemini и Amazon Q, отправляя им запросы с опасными флагами, такими как --dangerously-skip-permissions, --yolo и --trust-all-tools. Это позволило обойти защитные механизмы и извлечь содержимое файловой системы. Данный инцидент является первым задокументированным случаем, когда ИИ-помощники для разработчиков были превращены в инструмент для атак на цепочку поставок.

Анализ, проведенный компанией Socket, выявил вариации в полезной нагрузке. Вредоносный код в пакетах с префиксом, таких как @nx/devkit, использовал «более простой» ИИ-запрос, нацеленный на ключи криптокошельков и определенные каталоги. В то же время основной пакет nx содержал «гораздо менее широкий» запрос, который собирал «любой интересный текстовый файл».

Исследователи безопасности из компании Wiz, Мерав Бар и Рами Маккарти, обнаружили, что 90% из более чем 1000 проанализированных ими утёкших токенов GitHub все еще были действительны. Также были найдены десятки активных облачных учетных данных и npm-токенов. Чарли Эриксен из компании Aikido отметил, что использование клиентов LLM для перечисления секретов — это «новаторский подход», указывающий на будущие тенденции в действиях злоумышленников. Ашиш Курми из StepSecurity подчеркнул «растущую изощренность атак на цепочки поставок», продемонстрированную этим случаем.

Команда Nx оперативно отозвала свои npm- и GitHub-токены, провела аудит всех активностей в своих организациях и обновила правила доступа к публикации, требуя теперь двухфакторную аутентификацию. GitHub со своей стороны начал архивировать вредоносные репозитории, созданные полезной нагрузкой.

Пользователям рекомендуется немедленно прекратить использование затронутых версий пакетов, сменить все учетные данные и токены GitHub и npm, а также проверить файлы .zshrc и .bashrc на наличие команды sudo shutdown -h 0 или других подозрительных инструкций. Если в учетной записи GitHub обнаружен один из репозиториев s1ngularity-repository, следует исходить из предположения о полной компрометации системы.

Список пакетов и их вредоносных версий, которые были удалены из реестра npm:

 nx: 21.5.0, 20.9.0, 20.10.0, 21.6.0, 20.11.0, 21.7.0, 21.8.0, 20.12.0

 @nx/devkit: 21.5.0, 20.9.0

 @nx/enterprise-cloud: 3.2.0

 @nx/eslint: 21.5.0

 @nx/js: 21.5.0, 20.9.0

 @nx/key: 3.2.0

 @nx/node: 21.5.0, 20.9.0

 @nx/workspace: 21.5.0, 20.9.0


Новое на сайте