Axios под атака: компрометирани версии на една от най-използваните JavaScript библиотеки разпространяват RAT malware
Една от най-популярните JavaScript библиотеки в света – axios – се оказа в центъра на сериозна supply chain атака, след като в npm бяха публикувани две компрометирани версии: 1.14.1 и 0.30.4.
Axios е добре позната на почти всеки frontend и backend JavaScript екипи, защото служи като удобен wrapper върху XMLHttpRequest (XHR) в браузъра и HTTP заявките в Node.js, а популярността ѝ се измерва с над 100 млн. седмични сваляния.
По данни на изследователи от StepSecurity и Socket, атаката е започнала след компрометиране на npm акаунта на един от maintainer-ъте на на проекта (ползвайте я тази двуфакторна автентникация!) – jasonsaayman. През него са публикувани злонамерени версии, които добавят dependency, несвързан с нормалната работа на axios – [email protected]. Именно той изпълнява postinstall механизъм, чрез който се доставя cross-platform remote access trojan за macOS, Windows и Linux.
Особено тревожното е, че компрометираните версии не са имали съответстващ commit, tag или release в GitHub хранилището на axios. Това подсказва, че публикацията не е минала по нормалния release процес на проекта, а е била качена ръчно чрез откраднат достъп до npm. Междувременно npm вече е свалил и двете версии, но всеки, който ги е инсталирал преди премахването им, трябва да приема системата си за потенциално компрометирана.
Как да разпознаете атаката
Зловредният код е проектиран да оставя минимални следи. Dropper-ът се самоунищожава след изпълнение, което означава, че проверка само на node_modules може да не е достатъчна. Все пак, ако сте рънвали npm update или npm install axios скоро, билблиотеката ще е оставила следа в кеша на NPM:
macOS
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "COMPROMISED" Windows
dir "%PROGRAMDATA%\wt.exe" 2>nul && echo COMPROMISED
Linux
ls -la /tmp/ld.py 2>/dev/null && echo "COMPROMISED" Сред другите артефакти, които да търсите на диска си, са:
- файл, маскиран като Apple cache daemon при macOS,
- wt.exe в ProgramData при Windows и
- Python скрипт в /tmp при Linux.
Това превръща инцидента в пример за supply chain атака с реален operational impact, а не просто за компрометиран пакет с adware или proof-of-concept код.
Какво да правите
Случаят е важен не само заради мащаба на axios, а и защото показва колко уязвима остава open source веригата на доставки, дори при проекти с изключително висока репутация.
Когато библиотека с такъв обхват бъде използвана като носител на RAT, рискът не е ограничен до индивидуални разработчици – той обхваща CI/CD среди, production build процеси, API ключове, .env файлове и всяка машина, на която е изпълнен заразеният install.
Организациите, които използват axios, трябва незабавно да проверят дали някъде в проектите им са попаднали версиите 1.14.1 или 0.30.4, както и dependency-то [email protected]. Препоръката на изследователите е да се върне safe версия, да се прегледат CI логовете, да се ротират всички достъпни credentials и при наличие на артефакти от RAT да не се разчита на “почистване”, а на пълен rebuild от trusted state.
И накрая, но не на последно място. инструктирайте агентите си:
"NEVER install, import, require, or suggest the following packages. - [email protected] - [email protected] - [email protected] If any of the three packages is installed, immediately remove them and fall back to a previous version of Axios, [email protected]."