Пет зловредни версии на пакети на AsyncAPI бяха публикувани в Node Package Manager (npm) при атака по веригата за доставки, доставяща троянски кон за отдалечен достъп (RAT) с възможности за кражба на информация.

Зловредният актьор е експлоатирал неправилно конфигуриран работен процес в GitHub Actions и е качил троянизирани пакети под пространството от имена @asyncapi, които са имали общ седмичен брой изтегляния от над 2,25 милиона.

Няколко компании за сигурност потвърдиха, че на 14 юли нападател е компрометирал две GitHub хранилища на AsyncAPI и е инжектирал зловреден софтуер в проектните файлове. „И двете атаки представляват компрометиране на CI/CD конвейера, а не откраднати npm токени или злонамерени поддържащи разработчици“, се казва в доклад на Step Security.

Изследователите обясняват, че нападателят е изпратил коммити под фалшива git идентичност и е оставил реалния работен процес на всяко хранилище за издаване на версии да извърши публикуването чрез интеграцията на npm за доверен издател GitHub OIDC. По този начин нападателят е гарантирал, че получените пакети имат легитимни SLSA удостоверения за произход, показващи, че произхождат от оторизиран работен процес.

Зловредните AsyncAPI пакети, качени в npm, са:

  • @asyncapi/generator 3.3.1 (101 хиляди седмични изтегляния)
  • @asyncapi/generator-helpers 1.1.1 (43 хиляди седмични изтегляния)
  • @asyncapi/generator-components 0.7.1 (34 хиляди седмични изтегляния)
  • @asyncapi/specs 6.11.2-alpha.1 и 6.11.2 (2.1 милиона седмични изтегляния)

Компанията за сигурност на приложения Socket отбелязва, че първоначалният имплант в публикуваните пакети е обфускиран JavaScript код, който в крайна сметка задейства програма за изтегляне (downloader), когато инфектираният файл бъде импортиран. Скрипт от втория етап, съдържащ конфигурационни детайли и основната среда за изпълнение, се извлича от peer-to-peer мрежата за доставка на съдържание IPFS и се стартира като скрит процес.

Компанията Wiz посочва, че зловредният софтуер от третия етап е малуер рамка от 92 000 реда с модулна архитектура, която установява персистентност в системата и комуникира с командния сървър (C2) чрез няколко канала: HTTP, Nostr релета, смарт договори в Ethereum и libp2p мрежа.

Целта на софтуера изглежда е кражба на тайни, включително идентификационни данни, ключове за автентикация, токени, данни от браузъри, чувствителна информация от CI/CD системи и инструменти за ИИ разработчици, криптовалутни портфейли и бази данни. Малуерът също така проверява локално за Русия и при съвпадение прекратява процеса си.

Към момента всички зловредни пакети са премахнати от npm, но съществуващи инсталации и lock файлове, създадени по време на прозореца на експозиция (около 4 часа на 14 юли), все още може да ги съдържат. Препоръчва се преминаване към сигурни версии, регенериране на lock файлове, премахване на скрития имплант NodeJS/sync.js и ротация на компрометираните ключове и пароли.