Унищожителите успяха да прихванат акаунта на поддържащия и да издадат два злонамерени издания на NPM пакета axios, който предлага реализация на HTTP клиент за браузъри и Node.js. Пакетът axios има над 100 млн. изтегляния седмично и се използва като зависимост от 174 хиляди други пакета. Злонамерените промени бяха интегрирани в изданията Axios 1.14.1 и 0.30.4 чрез подмяна на фиктивна зависимост plain-crypto-js 4.2.1, съдържаща код за изтегляне на компоненти, получаващи команди от управляващия сървър на унищожителите. Злонамерените издания бяха предложени за изтегляне на 31 март в продължение на почти 3 часа - от 03:21 до 6:15 (MSK).
Злонамерените версии бяха публикувани в NPM директно с използване на удостоверителните данни на главния поддържащ проект axios („jasonsaayman“) в обход на стандартния механизъм за публикуване на нови версии, базиран на GitHub Actions. Предполага се, че атакуващите са успели да прихванат токена за достъп до NPM от поддържащия, след което влязоха в акаунта и промениха привързаността към имейл. Как точно е бил прихванат токенът за достъп не се уточнява.
Стартираният злонамерен код беше разположен в пакета plain-crypto-js във файла setup.js, активираше се след завършване на инсталацията на NPM пакета чрез обработчик postinstall (‘postinstall: „node setup.js“‘) и се използваше за изтегляне и инсталиране на троян, атакуващ системи с Windows, macOS и Linux. За да скрие присъствието си след стартиране, злонамереният компонент изтрива файла setup.js и заменя package.json с вариант без postinstall хук. 
В macOS злонамереният изпълним файл се изтегляше като „/Library/Caches/com.apple.act.mond“, в Windows — „%PROGRAMDATA%\wt.exe“, в Linux — „/tmp/ld.py.“ След активиране в Linux и macOS на всеки 60 секунди на външен сървър атакуващите се изпращаше искане за команди за изпълнение на засегнатата система, които могат да се използват за изтегляне на допълнителни злонамерени компоненти, изпълнение на произволни shell команди и търсене/изпращане на определени файлове.
Злонамерената активност в Linux и macOS не предвиждаше запазване на присъствието след рестартиране и беше насочена към бързо събиране на конфиденциални данни, пароли, токени и ключове за достъп. В Windows се създаваше файл „%PROGRAMDATA%\system.bat“, който извличаше злонамерения компонент от сървър атакуващите при всяко влизане в системата.
Източник: opennet.ru
