Массовая компрометация npm: бэкдор крадёт секреты через Bun и GitHub
4 августа 2026 года ландшафт безопасности цепочек поставок пошатнулся от масштабной атаки. Неизвестный злоумышленник успешно скомпрометировал экосистему npm, внедрив вредоносный код в популярные пакеты, суммарное количество загрузок которых превышает 150 миллионов в неделю. Особую тревогу вызывает способность обнаруженной полезной нагрузки к самораспространению, что воскрешает в памяти призраки предыдущих угроз, таких как червь Shai-Hulud, и выводит риски для разработчиков на принципиально новый уровень.
Отправная точка: Пакет keyv и скрытая угроза
Расследование инцидента началось с обнаружения вредоносного коммита в репозитории GitHub некогда легитимного пакета keyv. Этот коммит стал триггером цепной реакции, раскрыв сложный механизм эксплуатации, выходящий далеко за рамки рядового вирусного заражения. Анализ показал, что атака тщательно спланирована для скрытного внедрения в доверенную среду разработки.
Уклонение от обнаружения и закрепление
Злоумышленники сделали ставку на многоуровневую систему обхода классических средств защиты. Вредоносный загрузчик начинает работу с проверки совместимости со средой: он целенаправленно ищет musl libc в дистрибутивах Alpine Linux. В случае обнаружения целевой системы загрузчик формирует URL-адреса для скачивания официального рантайма JavaScript Bun, однако делает это без какой-либо проверки подлинности загружаемых файлов.
Такой подход позволяет атакующим действовать в обход стандартных решений мониторинга, которые сфокусированы исключительно на поведении рантайма Node.js. Для извлечения и скрытного выполнения полезной нагрузки используются штатные системные инструменты, задействующие техники фоновой работы. Это гарантирует, что операции вредоносного ПО остаются невидимыми для многих инструментов контроля целостности.
Механика атаки: От сборщика учетных данных до полного контроля
После активации бэкдор разворачивает агрессивную кампанию по сбору учетных данных. Атака нацелена на широкий спектр конфиденциальных файлов, включая конфигурации облачных сред, GitHub, npm и иные локальные хранилища секретов. В зоне особого риска оказались сервисы, перечисленные в маркированном списке ниже:
- Конфигурации облачных провайдеров (AWS);
- Ключи доступа к контейнерным средам (Kubernetes, Docker);
- Переменные окружения и параметры среды разработки;
- Токены доступа к репозиториям исходного кода.
Главная цель процедур сбора — конвертация любых полученных привилегий в секреты, хранящиеся в открытом виде. Это открывает злоумышленникам путь к масштабному горизонтальному перемещению и значительной утечке данных.
Командные центры и каналы эксфильтрации
Связь с серверами управления (C2) реализована через изощренный механизм закодированных ответов. Он позволяет атакующим динамически переключать выполнение произвольного JavaScript прямо в процессе Bun, создавая тем самым скрытый канал удаленного выполнения кода. Особую изобретательность демонстрирует подход к похищению информации: в качестве резервного варианта эксфильтрации вредоносное ПО (ВПО) напрямую взаимодействует с GitHub, создавая публичные репозитории со случайными именами.
Эффект домино: Как устроено самораспространение
Ключевая особенность данной кампании — червеобразный механизм распространения, основанный на краже токенов npm. Заполучив учетные данные разработчика, вредонос способен автономно изменять поведение легитимных пакетов при их публикации, заражая downstream-зависимости.
Кампания также нацелена на компрометацию рабочих процессов (workflows) GitHub. ВПО обеспечивает рекурсивную загрузку и выполнение вредоносных скриптов, формируя персистентную угрозу. Атака может вновь проявиться при любом неосторожном взаимодействии с кодом в зараженных репозиториях, используя сложность уязвимостей цепочки поставок и механизмы происхождения (provenance) для создания артефактов, выглядящих абсолютно доверенными.
Инцидент 4 августа в очередной раз подчеркивает критическую необходимость тотальной проверки компонентов и бдительности в средах разработки. Специалистам по безопасности рекомендуется сверяться с постоянно обновляемым списком скомпрометированных пакетов npm, выявленных в ходе расследования, для оперативного снижения рисков.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



