Компрометация AsyncAPI в NPM: вредоносные пакеты атаковали CI/CD
В июле 2026 года злоумышленники получили доступ к официальной организации AsyncAPI в реестре NPM и опубликовали вредоносные версии пакетов в доверенном пространстве имён. Атака была нацелена на среды разработки и CI/CD-конвейеры. Для распространения ВПО использовались пакеты, имитирующие легитимные, а также вредоносные хуки жизненного цикла.
Как развивалась атака
Компрометация включала выполнение задачи сборки схемы xc. Она вызывала пакет @asyncapi/html-template@3.5.5. Инструментальные цепочки, в которых применялся npx, могли автоматически получить затронутую цепочку зависимостей во время штатных сборок.
После запуска скомпрометированного пакета обфусцированный JavaScript-скрипт выполнял функции дроппера. Он скачивал полезную нагрузку второго этапа с именем sync.js с IPFS-шлюза, сохранял файл в локальном каталоге данных приложения Node.js пользователя и запускал его как отсоединённый фоновый процесс.
ВПО обеспечивала закрепление в системе с помощью локальных механизмов автозагрузки. Среди них были профили инициализации оболочки и другие элементы автозапуска. В результате вредоносная программа функционировала как многоэтапная троянская программа удалённого доступа.
Инфраструктура и масштабы воздействия
Полезная нагрузка взаимодействовала с внешней инфраструктурой управления, включая IP-адрес 85.137.53.71. Для получения дополнительных компонентов использовалось содержимое, размещённое на IPFS.
Телеметрия хоста зафиксировала 291 уникальную попытку воздействия, инициированную ВПО. Использование доверенных имён пакетов и зависимостей разработчика в сочетании с автоматизацией сборки, децентрализованным размещением полезной нагрузки и механизмами закрепления позволило злоумышленникам перемещаться в средах разработки и CI/CD. При этом им не требовалось опираться на традиционные методы распространения ВПО.
Рекомендации по реагированию
Организациям рекомендуется изолировать затронутые конечные точки и заблокировать выявленный адрес C2, а также вредоносные ресурсы IPFS. Дополнительно необходимо:
- удалить файл
sync.jsи связанные временные артефакты; - проверить файлы
.zshrcи.bashrc; - проверить элементы автозагрузки и другие места, которые могли использоваться для закрепления;
- провести аудит репозиториев, систем сборки и версий пакетов на предмет затронутых зависимостей;
- обеспечить использование lockfiles и криптографическую проверку целостности пакетов;
- избегать динамического получения незафиксированных версий пакетов через
npxв автоматизированных конвейерах; - выполнить ротацию учётных данных, токенов, API-ключей и секретов, доступных из скомпрометированных систем.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



