Расследование атаки на цепочку поставок
NPM Nx - s1ngularity, привело к неожиданно масштабным последствиям: утечке подверглись тысячи токенов учетных записей и секретов репозиториев.
По
данным
Wiz, после инцидента, взлом
Nx привел к раскрытию 2180 учетных записей и 7200 репозиториев в рамках трех отдельных этапов.
Причем многие из раскрытых секретов остаются актуальными, и поэтому последствия продолжают ощущаться.
Nx - популярная система сборки с открытым исходным кодом и инструмент управления монорепозиториями, широко используемая в экосистемах
JavaScript/TypeScript корпоративного уровня.
Число ее еженедельных загрузок в индексе пакетов
NPM превышает 5,5 миллионов.
26 августа 2025 года злоумышленники воспользовались уязвимостью рабочего процесса
GitHub Actions в репозитории
Nx для публикации вредоносной версии пакета на
NPM, которая включала вредоносный скрипт после установки
(telemetry.js).
Вредоносное ПО
telemetry.js - это стилер, нацеленный на системы
Linux и macOS.
Он реализовывал кражу токенов
GitHub, npm, ключей
SSH, файлов .env, криптокошельков и пытался загрузить секреты в публичные репозитории
GitHub под названием
s1ngularity-repository.
Уникальной особенностью этой атаки было задействование стилером установленных инструментов командной строки для платформ
ИИ Claude, Q и Gemini, в целях поиска и сбора конфиденциальных учетных данных и секретов с помощью подсказок LLM.
При этом, как отмечает
Wiz, подсказка эволюционировала при каждой итерации атаки, что свидетельствует о том, что злоумышленник настраивал ее для достижения большего успеха.
На первом этапе атаки, с 26 по 27 августа, заражённые пакеты
Nx напрямую затронули 1700 пользователей, что привело к утечке более 2000 уникальных секретных данных. В результате атаки также были раскрыты 20 000 файлов из заражённых систем.
GitHub отреагировал, удалив репозитории, созданные злоумышленником через восемь часов, однако данные уже были собраны и скопированы.
Затем в период с 28 по 29 августа, второй фазы инцидента, злоумышленники воспользовались утечкой токенов
GitHub, чтобы превратить закрытые репозитории в публичные, переименовав их так, чтобы они включали строку
s1ngularity.
Это привело к дальнейшей компрометации еще 480 учетных записей, большинство из которых принадлежали компаниям, а также к раскрытию информации о 6700 частных репозиториях.
На третьем этапе, который стартовал 31 августа, злоумышленники нацелились еще на одну жертву с использованием двух взломанных учетных записей для публикации еще 500 закрытых репозиториев.
Команда
Nx опубликовала на
GitHub подробный
анализ первопричин, поясняя, что взлом произошел из-за внедрения заголовка запроса на извлечение в сочетании с небезопасным использованием pull_request_target.
Это позволило злоумышленникам запустить произвольный код с повышенными правами доступа, что, в свою очередь, активировало конвейер публикации
Nx и позволило перехватить токен публикации
npm.
Вредоносные пакеты были удалены, скомпрометированные токены были отозваны и ротированы, а для всех учетных записей издателей была внедрена двухфакторная аутентификация.
Для предотвращения повтора подобной атаки,
Nx теперь использует модель доверенного издателя
NPM, которая исключает публикацию на основе токенов, и добавляет ручное одобрение для рабочих процессов, инициируемых
PR.
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram