# Атака s1ngularity на Nx: вредоносный пакет использовал AI-утилиты разработчика

> Злоумышленники через уязвимость в GitHub Actions украли npm-токен проекта Nx и опубликовали заражённые версии пакетов. Вредоносный скрипт впервые использовал установленные у разработчиков AI-утилиты командной строки (Claude, Gemini, Q) для поиска секретов. Утекли тысячи учётных данных, включая ключи к облакам и AI-сервисам.

- Канонический HTML: [/incidents/nx-s1ngularity-ai-cli-abuse](https://ai-first.tech/incidents/nx-s1ngularity-ai-cli-abuse)
- Язык: русский
- Редакционный принцип: защитный контекст без вредоносных полезных нагрузок и инструкций обхода.

- Дата: 2025-08-26
- Категория: Цепочка поставки
- Затронуто: Пользователи сборочной системы Nx в npm (около 6 млн установок в неделю), разработчики с установленными AI-утилитами командной строки
- Критичность: Критический

## Что произошло

26 августа 2025 года в npm были опубликованы вредоносные версии nx и связанных пакетов, которые оставались доступными около четырёх часов. Скрипт, запускавшийся при установке, искал на машинах Linux и macOS токены GitHub и npm, SSH-ключи, ключи API и криптокошельки. При наличии локальных AI-утилит командной строки скрипт пытался задействовать их для поиска чувствительных файлов. Найденное выгружалось в публичные репозитории GitHub, созданные от имени жертвы. По данным GitGuardian, приведённым The Hacker News, утекло 2349 уникальных секретов, примерно у трети заражённых систем был установлен хотя бы один AI-клиент. Во второй волне с помощью украденных токенов были раскрыты более 3000 репозиториев более чем 190 пользователей и организаций.

## Где нарушилась защита

Первая граница доверия нарушилась в CI/CD: рабочий процесс GitHub Actions обрабатывал непроверенные данные из pull request и имел права на запись, что позволило извлечь токен публикации. Вторая — на рабочих станциях: AI-утилиты разработчика с правами на чтение файлов и выполнение команд были запущены вредоносным кодом в режиме, где они не спрашивали подтверждения. Агент, созданный помогать разработчику, превратился в инструмент разведки для атакующего.

## Последствия

- Утечка 2349 уникальных секретов: токенов GitHub, ключей Google AI, OpenAI, AWS, Anthropic и других сервисов
- Публикация приватных данных и репозиториев жертв в открытый доступ на GitHub
- Вторая волна с использованием украденных токенов затронула более 3000 репозиториев

## Реакция

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

## Уроки для бизнеса

- AI-агенты на рабочих станциях разработчиков расширяют возможности не только сотрудника, но и вредоносного кода на той же машине
- Режимы работы AI-утилит без подтверждения действий опасны в средах с доступом к секретам
- Ошибки конфигурации GitHub Actions остаются одним из главных путей компрометации пакетов
- Секреты на машинах разработчиков нужно считать скомпрометированными при любом подозрении на заражённую зависимость

## Меры защиты

- Запрет или контроль автоматического выполнения скриптов установки пакетов в корпоративной среде
- Политика использования AI-утилит командной строки: запрет режимов без подтверждения, изоляция в контейнере
- Хранение секретов в менеджере секретов вместо файлов и переменных окружения на рабочих станциях
- Аудит рабочих процессов CI/CD на небезопасную обработку данных из pull request и избыточные права
- Мониторинг создания новых публичных репозиториев от имени сотрудников

Связанные карточки угроз: A34, A41, A57, A47

## Первоисточники

- [S1ngularity - What Happened, How We Responded, What We Learned](https://nx.dev/blog/s1ngularity-postmortem) — Nx
- [Malicious Nx Packages in s1ngularity Attack Leaked 2,349 GitHub, Cloud, and AI Credentials](https://thehackernews.com/2025/08/malicious-nx-packages-in-s1ngularity.html) — The Hacker News
