Четири компрометирани npm пакета в пространството от имена @asyncapi са били забелязани да разпространяват ботнет лоудър (зареждаща програма) в няколко етапа, според разкрития на OX Security, SafeDep, Socket и StepSecurity.
Засегнатите пакети са изброени по-долу:
- @asyncapi/generator-helpers@1.1.1
- @asyncapi/generator-components@0.7.1
- @asyncapi/specs(v6.11.2, v6.11.2-alpha.1)
„Компрометираните пакети внедряват обфускиран зловреден код от първи етап, който изтегля криптиран зловреден код от втори етап, идентифициран като Miasma, от IPFS“, споделят от Socket. Зловредният код се задейства, когато заразеният модул бъде зареден от Node.js, след което стартира отделен фонов процес, който изтегля и изпълнява зловредния софтуер.
Полезният товар от следващия етап е криптиран JavaScript лоудър с име sync.js. Той съдържа два компонента: криптирания краен JavaScript зловреден код (който се декодира до рамката за задачи Miasma) и голям криптиран блок, използван от spawn-chain структурата на средата за изпълнение. Рамката поддържа шест независими канала за комуникация за командване и управление (C2): HTTP, Nostr relay, IPFS, BitTorrent DHT, libp2p GossipSub P2P mesh и смарт договор в Ethereum.
Освен че улеснява кражбата на идентификационни данни, компрометирането на AI инструменти и разпространението тип „червей“ в npm, PyPI и Cargo регистрите, Miasma разполага и със собствен механизъм за устойчивост чрез systemd, crontab, macOS launchd и Windows Registry autostart ключове. Тя включва и функция за самоунищожение („dead man's switch“), която изтрива директорията, ако откраднат токен бъде отменен. Зловредният софтуер избягва среди за симулация (пясъчници), системи с руски език или такива с инсталирани защитни продукти на CrowdStrike, SentinelOne, Microsoft Defender и др.
Според StepSecurity, атакуващият е получил достъп за качване (push) в хранилищата и е използвал легитимния GitHub Actions пайплайн за пускане на проекти, за да публикува пакетите с валидни OIDC удостоверения за произход. Атаката не е включвала кражба на npm токен, а е компрометиране на CI/CD пайплайна чрез изпращане на кодове под фиктивна идентичност.
Всички злонамерени версии вече са премахнати от npm регистъра. Препоръчва се всяка машина, която е импортирала или изпълнила засегнатите версии, да се третира като потенциално компрометирана.