Атака по веригата за доставки внедри зловреден софтуер Miasma в доверени npm пакети на AsyncAPI, застрашавайки системите на разработчиците и автоматизираните среди за компилация.
Атакуващите са използвали компрометиран процес на публикуване, за да разпространят злонамерен код чрез легитимното npm пространство от имена на проекта. Засегнатите пакети имат общ обхват от около 2,9 милиона изтегляния седмично, въпреки че броят на изтеглянията не потвърждава инфекциите.
Кампанията е тревожна, тъй като тези инструменти могат да се изпълняват в работни станции за разработка, задачи за документиране и среди за непрекъсната интеграция и доставка (CI/CD), които често съхраняват чувствителни идентификационни данни.
Cato Networks съобщи, че е идентифицирала активността чрез мониторинг на заплахите по веригата за доставки. Изследователите установиха, че атакуващите са използвали доверен път за публикуване на софтуер, за да разпространят злонамерен код на Node.js, свързан с Miasma.
Атаката е започнала с уязвима конфигурация на GitHub Actions, позволяваща на непотвърдено съдържание от заявки за изтегляне (pull requests) да взаимодейства с контекст на работни процеси с повишени привилегии. Това е дало възможност на атакуващия да компрометира идентичността на автоматизацията на AsyncAPI и да направи неоторизирани промени в хранилището. Злонамерените промени са въведени в клон, свързан с процеса по издаване на версии на проекта, маскирани като стандартна дейност по разработка.
Внедреният JavaScript код не зависи от стандартните скриптове от жизнения цикъл на npm (като postinstall). Вместо това той се изпълнява при импортиране на засегнатия модул, което позволява на зловредния софтуер да остане неактивен веднага след инсталирането и да се задейства по-късно по време на компилация, изпълнение на приложението или CI/CD задача.
Кодът от първия етап стартира отделен процес на Node.js и изтегля криптиран злонамерен код от втори етап чрез IPFS. Този код осигурява постоянен достъп, изпълнява отдалечени команди, управлява файлове и се обновява. Miasma използва също и договор в Ethereum мрежата като резервен източник за конфигурация на сървърите за управление и контрол.
Засегнатите версии са: @asyncapi/generator версия 3.3.1, @asyncapi/generator-helpers версия 1.1.1, @asyncapi/generator-components версия 0.7.1 и @asyncapi/specs версии 6.11.2-alpha.1 и 6.11.2.