Утечка S1ngularity: затронуты GitHub и NPM 🚨
Недавнее расследование атаки на цепочку поставок Nx, получившей название «s1ngularity», выявило масштабную утечку учётных данных: были раскрыты тысячи токенов учётных записей и секретных данных репозиториев, что имело последствия на нескольких этапах инцидента. Отчёт Wiz после инцидента документирует масштабы и даёт представление о том, как происходила утечка и её последствия. 🚨📊
Согласно оценке, опубликованной исследователями Wiz, в результате взлома были раскрыты 2180 учетных записей и 7200 репозиториев в три отдельных этапа, при этом многие секреты все еще актуальны и риск дальнейшего ущербаВ документе подробно описываются хронология событий, методы злоумышленников и характер раскрытых секретов. 🔍📈
Атака на цепочку поставок Nx ⚠️🚀
Nx — это система сборки и управления с открытым исходным кодом и одним репозиторием, широко используемая в экосистемах JavaScript/TypeScript корпоративного уровня. Учитывая миллионы еженедельных загрузок в реестре NPM, скомпрометированный пакет может иметь далеко идущие последствия для многочисленных интеграций и процессов разработки. ⚙️
Вектор компрометации и дата инцидента 📅
26 августа 2025 года злоумышленник воспользовался уязвимостью рабочего процесса GitHub Actions в репозитории Nx, чтобы опубликовать вредоносную версию пакета в NPM. Пакет включал вредоносный скрипт после установки под названием «telemetry.js», который выполнял функцию вредоносного ПО для извлечения учётных данных в уязвимых системах. 🔥
Как работает вредоносное ПО telemetry.js 🕵️♂️
Вредоносное ПО telemetry.js действовало как похититель учётных данных в Linux и macOS, пытаясь похитить токены GitHub, токены npm, ключи SSH, файлы .env, криптовалютные кошельки и другие секретные данные, а затем загружало их в публичные репозитории GitHub под названием «s1ngularity-repository». Эта схема позволяла злоумышленнику централизовать и раскрыть украденную информацию. 🔐

Источник: Wiz
Злоумышленник также интегрировал инструменты командной строки для платформ ИИ (например, Claude, Q и Gemini) для автоматизации поиска и сбора данных с использованием целевых подсказок. Wiz документирует, как подсказки менялись во время атаки, оптимизируя извлечение и обходя отклонения модели для определённых инструкций, что отражает активное использование злоумышленником методов LLM. ✨💡
Дальность поражения: радиус поражения и фазы 📈🔥
Инцидент развивался в три этапа. В первый, с 26 по 27 августа, скомпрометированные версии Nx напрямую затронули 1700 пользователей и привели к утечке более 2000 уникальных секретов, а также к раскрытию около 20 000 файлов из зараженных систем. GitHub вмешался, но значительная часть данных уже была скопирована.
- 🔹 Этап 1 (26–27 августа): Пострадало 1700 пользователей, около 2000 секретов было раскрыто, 20 000 файлов были скомпрометированы.
- 🔸 Этап 2 (28–29 августа): Использование украденных токенов для преобразования закрытых репозиториев в публичные; скомпрометировано 480 дополнительных учетных записей и раскрыто 6700 репозиториев.
- 🔹 Этап 3 (с 31 августа): атака, направленная на организацию-жертву с использованием аккаунты скомпрометированы для публикации Еще 500 приватных репозиториев.
На втором этапе злоумышленники использовали украденные токены GitHub, чтобы сделать приватные репозитории публичными и переименовать их, добавив строку «s1ngularity», что ещё больше усилило уязвимость. На третьем этапе определённая цель была использована для публикации сотен дополнительных приватных репозиториев, что продемонстрировало настойчивость и стремление злоумышленников к эскалации. 🎯

Источник: Wiz
Реагирование и смягчение последствий проекта Nx 🔧✅
Команда Nx опубликовала анализ первопричин на GitHub, в котором объясняется, как инъекция в заголовок запроса на извлечение в сочетании с небезопасным использованием pull_request_target позволила выполнить произвольный код с повышенными правами доступа, что привело к запуску конвейера публикации и упростило кражу токена публикации npm. 🛠️
Реализованные меры включали удаление вредоносных пакетов, отзыв и ротацию скомпрометированных токенов, а также обязательную двухфакторную аутентификацию для всех учётных записей издателей. Кроме того, Nx внедрил модель доверенных издателей NPM и добавил ручное одобрение для рабочих процессов, инициированных PR. 🔐📌
Краткие советы и ключевые моменты ✏️
- ✅ Немедленно проверяйте и меняйте токены и секреты, если есть подозрения на компрометацию.
- 📌 Избегайте небезопасного использования pull_request_target и применяйте ручное утверждение для конфиденциальных потоков.
- 🔧 Внедрите многофакторную аутентификацию и модели доверенной публикации, такие как Trusted Publisher.
- ⚡ Мониторинг публичных репозиториев и выполнение автоматизированного секретного поиска для раннего обнаружения.
Определение фрагментов и часто задаваемых вопросов ✨
Что такое telemetry.js?
telemetry.js — это название вредоносного скрипта, выполняемого после установки и входящего в состав скомпрометированной версии пакета Nx. Он выполнял функцию кражи учетных данных в системах Linux и macOS, собирая и передавая секретные данные в общедоступные репозитории, контролируемые злоумышленником. 🔍
Сколько учетных записей и репозиториев пострадало?
Согласно отчету Wiz, в результате атаки были раскрыты 2180 учетных записей и 7200 репозиториев на протяжении трех задокументированных этапов инцидента, при этом многие секреты все еще актуальны, и существует риск дальнейшего воздействия. 📊
В 461 среде TP3T были скомпрометированы пароли, что почти вдвое больше, чем в предыдущем году (251 TP3T). Ознакомьтесь с отчётом Picus Blue Report 2025, чтобы получить полный анализ предотвращения, обнаружения и тенденций к утечке данных. 📈
В отчете представлены показатели, рекомендации и примеры из практики по укреплению защиты и совершенствованию реагирования на утечки секретной информации.