- Нападач је компромитовао npm налог главног одржаваоца Axios-а и објавио верзије 1.14.1 и 0.30.4 са фантомском зависношћу, plain-crypto-js, која је током инсталације распоредила RAT за више платформи.
- Злонамерни софтвер је контактирао C2 сервер (sfrclak[.]com) и преузимао специфичне корисне садржаје за Windows, macOS и Linux, вршећи извиђање система, одржавајући периодичне сигнале и, у неким случајевима, успостављајући перзистентност.
- Напад, који Гугл и други истраживачи приписују севернокорејском актеру UNC1069, комбиновао је временски оквир изложености од око три сата са софистицираном кампањом социјалног инжењеринга против одржаваоца како би се украли њихови акредитиви.
- Организације које су биле у могућности да инсталирају погођене верзије морају се обавезати да предузму мере, траже RAT артефакте, ротирају акредитиве, закаче безбедне верзије Axios-а и ојачају свој ланац снабдевања, CI/CD и контроле управљања зависностима.
Заједница програмера Јаваскрипта је управо доживела један од оних страхова који вас терају да преиспитате колико верујете својим зависностима, што показују проблеми са рањивошћу библиотека . Axios, једна од најшире коришћених HTTP библиотека у екосистему, била је манипулисана на npm-у да дистрибуира тројанца за удаљени приступ (RAT) путем наизглед легитимних верзија. Инцидент је трајао само неколико сати, али је јасно показао да ланац снабдевања софтвером виси на много тањој нити него што су многи мислили.
Озбиљан проблем није само то што су нападачи успели да прокријумчаре злонамерни софтвер у пакет који се преузима десетине или стотине милиона пута недељно. Прави проблем је што су то урадили отимањем npm налога главног одржаваоца, објављивањем „званичних“ верзија које су изгледале нормално и нису дотакле ниједну линију изворног кода Axios-а . Сво злонамерно понашање налазило се у фантомској зависности посебно дизајнираној за напад.
Како је дошло до Аксиосове посвећености новом систему управљања производима (npm)
Да бисмо разумели обим инцидента, морамо почети са улазном тачком. Нападач је успео да преузме контролу над npm налогом „jasonsaayman“, главног одржаваоца Axios-а, и променио је повезану имејл адресу у ону под својом контролом , хостовану на Proton Mail-у. Од тог тренутка, имали су слободу да објављују нове верзије пакета као да су они одржаваоци.
Користећи те акредитиве, отпремио је две злонамерне верзије Axios-а: 1.14.1 и 0.30.4 , покривајући обе главне гране пројекта. Отпремања су извршена у размаку од само 39 минута и, према анализи StepSecurity-ја, направљена су директно из npm-а коришћењем класичног дуготрајног токена, потпуно заобилазећи уобичајени CI/CD цевовод заснован на GitHub Actions.
Осамнаест сати пре последњег напада, актер је већ објавио „чисту“ верзију везану за злонамерну зависност у npm регистру . Овај прелиминарни корак је послужио за генерисање историје и спречавање покретања неких аутоматизованих провера када се у време напада појави потпуно нови пакет.
Оно што је запањујуће јесте да нападачи нису изменили изворни код Аксиоса нити направили било какве видљиве измене у GitHub репозиторијуму . Заправо, верзије 1.14.1 и 0.30.4 нису имале одговарајуће commit-ове или ознаке на GitHub-у; постојале су само на npm-у. Кључна разлика је била у датотеци зависности пакета, која је објављена у регистру.
Аксиос, под нормалним околностима, декларише само три зависности: follow-redirects, form-data и proxy-from-env . Међутим, у компромитованим верзијама појавила се четврта зависност, она која раније није постојала у пројекту: plain-crypto-js, верзија 4.2.1. Ова фантомска библиотека није коришћена нигде у Аксиос кодној бази, али је укључивала скрипту након инсталације која се аутоматски покреће приликом инсталирања пакета помоћу npm, pnpm или сличних алата.
plain-crypto-js: фантомска зависност коју је применио RAT
Кључ напада је лежао у тој додатној зависности. plain-crypto-js је објављен на npm-у од стране корисника под именом „nrwise“, такође са Proton Mail имејл адресом, а његова једина сврха је била да изврши замаскирани пост-инсталациони скрипт у Node.js (setup.js) . Тај скрипт је деловао као дропер, односно као почетни инсталатер за другу фазу малвера.
Приликом инсталирања Axios-а у једној од његових заражених верзија, животни циклус npm-а након инсталације аутоматски је покренуо plain-crypto-js код без икакве посебне акције потребне од програмера . Дропер се повезао са командним и контролним (C2) сервером активним у sfrclakcom домену, слушајући на порту 8000, и преузео корисни терет специфичан за оперативни систем погођене машине; ово понашање се може идентификовати анализом мрежног саобраћаја.
Истраживачи у StepSecurity-ју и другим аналитичким тимовима описују веома пажљиво понашање. Након извршавања злонамерног корисног оптерећења, дропер је уклонио сопствене трагове: обрисао је постинсталациони скрипт, заменио датотеку package.json „чистом“ верзијом и оставио датотеку node_modules која је, на први поглед, деловала безопасно . На овај начин, накнадна ручна инспекција није пронашла злонамерни код директно унутар Axios-а.
Да би се идентификовала манипулација, једини поуздан траг био је у закључаним датотекама (package-lock.json, pnpm-lock.yaml, yarn.lock) и присуству специфичних верзија: axios 1.14.1 или 0.30.4 и plain-crypto-js 4.2.1, поред две верзије тог пакета са међубројевима (4.2.0, 4.2.2) повезаним у неким анализама. Socket је, са своје стране, касније открио да је исти злонамерни софтвер дистрибуиран и кроз пакете @shadanai/openclaw (разне верзије 2026.3.xx) и @qqbrowser/openclaw-qbot (0.0.130), а безбедносне технике попут honeypot-ова такође могу помоћи у идентификацији сличних кампања.
Вишеплатформски RAT: Windows, macOS и Linux у центру пажње
Једном извршен, скрипта setup.js је деловала као оркестратор способан да детектује оперативни систем и прати путању напада специфичну за платформу . Кампања је очигледно била унапред припремљена: према StepSecurity-ју, нападачи су имали три одвојена корисна оптерећења унапред компајлирана, по један за сваки систем.
На macOS системима, процес након инсталације покренуо је AppleScript који је преузео тројанизовани бинарни фајл са сервера sfrclakcom:8000 . Овај бинарни фајл је сачуван на путањи /Library/Caches/com.apple.act.mond, његове дозволе су подешене да би био извршан и на крају је покренут у позадини користећи /bin/zsh. Када је RAT покренут, сам AppleScript је обрисан како би се додатно закомпликовала форензичка анализа.
На Windows машинама, злонамерни софтвер је лоцирао PowerShell бинарну датотеку система, копирао је у %PROGRAMDATA%\wt.exe да би је прикрио као Windows терминал и генерисао привремену VBScript датотеку . Ова VBScript датотека је затим контактирала C2 сервер да би преузела додатну PowerShell RAT скрипту, извршила је, а затим обрисала преузету датотеку. Штавише, Windows варијанта је креирала датотеку %PROGRAMDATA%\system.bat са рутином преузимања која је омогућавала злонамерном софтверу да се преузме при сваком пријављивању и додавала је кључ за извршење у Windows регистар како би се осигурала постојаност.
На Линуксу и другим Јуникс-сличним системима, поред macOS-а, дропер је користио Node.js-ов execSync за покретање команде шелла која је преузимала Пајтон скрипту са sfrclakcom, чувала је као /tmp/ld.py и извршавала је са nohup да би је одржавала у покрету у позадини . За разлику од Windows-а, ова варијанта није показивала робустан механизам перзистенције, што сугерише бржи приступ оријентисан на извлачење података или повремено распоређивање перзистенције путем накнадних команди.
SafeDep и Elastic Security Labs су анализирали корисне податке другог нивоа и закључили да RAT-ови за macOS (C++ Mach-O бинарни фајл) и Linux (Python скрипта) деле исти скуп команди, C2 протокол, формат поруке и оперативно понашање . Ова врста анализе се обично ослања на сервисе за скенирање попут VirusTotal-а , који олакшавају корелацију узорака и IOC-ова.
У свим случајевима, сваки угрожени хост је извршио тренутно извиђање система: корисничке директоријуме, коренске директоријуме дискова, активне процесе и друге метаподатке . Ове информације су послате командном и контролном серверу, а агент је одржавао петљу сигнала од око 60 секунди, чекајући нове инструкције, укључујући извршавање додатних скрипти или убризгавање бинарних датотека у меморију.
Период изложености, циљеви и приписивање Северној Кореји
Злонамерне верзије Аксиоса биле су доступне на npm-у приближно три сата, током пажљиво одабраног временског периода. Компромитовани пакети су објављени непосредно пре поноћи у недељу (време које је максимизирало време реакције бранилаца), а инцидент је обуздан до раног понедељка ујутру , након што су безбедносне фирме упозориле власти на аномално понашање.
Током тог релативно кратког периода, Хантрес је открио најмање 135 система који се повезују са сервером нападача . С обзиром на то да Аксиос бележи више од 80-100 милиона преузимања недељно (према различитим изворима, чак и више од 300 милиона у неким периодима), тај број вероватно представља само врх леденог брега, ограничен на системе који доспевају до пажње аналитичких фирми које су објавиле своје податке.
Гугл је, преко свог тима за обавештајне претње, приписао напад осумњиченом севернокорејском актеру означеном са UNC1069 . Еластик Секјурити Лабс је потврдио ову хипотезу проналажењем велике сличности између RAT-а испоручених на macOS-у и WAVESHAPER-а, C++ задњег врата којег је открио Мандиант и који је такође повезан са истом групом претњи.
Аналитичари компаније Google су нагласили да се групе повезане са Северном Корејом годинама специјализују за нападе на ланац снабдевања и крађу криптовалута . Образац је доследан: угрожавање развојне инфраструктуре, широко коришћених библиотека или поузданог софтвера, а затим латерално кретање ка циљевима који управљају вредном имовином, приватним кључевима или акредитивима.
Неколико извештаја је такође истакло да модерирање и дизајн напада указују на добро координисан тим : три паралелне имплементације истог RAT-а (PowerShell, C++ и Python), конзистентан C2 протокол, готово идентично понашање у свим варијантама и јасна стратегија самочишћења како би се избегло остављање трагова. Elastic је нагласио да ова конзистентност указује на једног програмера или групу која ради на заједничком дизајнерском документу, далеко од импровизације.
Поред чисто техничких аспеката, једна од најнеизвеснијих тачака случаја је како је дошло до отимања npm налога главног одржаваоца. Сам менаџер Axios-а је касније објаснио да је имао омогућену двофакторску аутентификацију на скоро свим својим сервисима , а ипак је на крају одобрио приступ, а да тога није ни био свестан.
Према анализи након смрти коју је тим поделио, нападачи су спровели веома сложену операцију социјалног инжењеринга, уз помоћ алата заснованих на вештачкој интелигенцији, како би стекли њихово поверење . Представљали су се као оснивач компаније, копирајући њен визуелни идентитет, фотографију, па чак и корпоративни бренд. Направили су прави Slack простор са логотипом компаније, каналима са објавама наводно синхронизованим са LinkedIn-ом, па чак и лажним профилима запослених и других одржавалаца софтвера отвореног кода.
У том окружењу, заказали су састанак путем Microsoft Teams-а на којем је, изгледа, учествовала цела група стручњака . Током састанка, симулирали су технички проблем и назначили да је компонента њиховог система застарела. Техничар за одржавање, претпостављајући да је то легитиман захтев везан за сам алат за видео конференције, преузео је и инсталирао предложену датотеку.
Та датотека је, заправо, била тројански кон за удаљени приступ који је омогућио нападачима да се прикључе на акредитиве жртве и на крају преузму контролу над npm налогом који се користи за објављивање Axios-а . Читав процес је био тако добро оркестриран, са толико веродостојних детаља, да га је жртва описала као „савршено координисан, професионалан и потпуно убедљив“.
Овај људски елемент инцидента јасно показује да чак ни техничке мере попут двоструке фалсификоване аутоматизације нису довољне када се друштвени инжењеринг високог нивоа комбинује са визуелном имитацијом, дипфејковима или детаљним клонирањем организација . Најслабија карика је, још једном, људска интеракција.
Утицај на организације и програмере који користе Axios
Са практичне тачке гледишта, главни проблем је утврђивање ко је заправо био погођен. Свака организација која је инсталирала [email protected] или [email protected] током периода у којем су били доступни требало би да претпостави да машина или цевовод који је извршио инсталацију могу бити угрожени.
Препоруке фирми попут StepSecurity, Aikido, Huntress и Elastic су недвосмислене. У случају сумње, неопходан је проактиван приступ, а не само „брисање и поновна инсталација node_modules “. Разумно деловање је да се поново изграде погођене машине или окружења из поузданих слика и пажљиво прегледају CI/CD логови како би се идентификовали који послови или цевоводи су можда извршили угрожене верзије.
Штавише, кључно је ротирати све акредитиве и тајне којима је RAT могао приступити са тих чворова : npm токене, кључеве добављача облака, тајне цевовода, акредитиве базе података, SSH кључеве итд. Остављање ових акредитива у оптицају након таквог напада оставља врата отворена за тихо латерално кретање.
На техничком нивоу, тимови би требало да прегледају своје датотеке закључавања (package-lock.json, pnpm-lock.yaml, yarn.lock) за референце на компромитоване верзије Axios-а и plain-crypto-js-а . Ако се пронађу ови елементи, следећи корак је преглед погођених система за потенцијалне RAT артефакте: /Library/Caches/com.apple.act.mond на macOS-у, %PROGRAMDATA%\wt.exe и %PROGRAMDATA%\system.bat на Windows-у или /tmp/ld.py на Linux-у.
Паралелно, препоручује се експлицитно подешавање безбедних верзија Axios-а, као што су 1.14.0 и 0.30.3, и коришћење превазилажења или решења како би се спречило да се транзитивне зависности резолуцијују на нежељене верзије . Блокирање одлазног саобраћаја ка домену sfrclakcom је такође разумна мера обуздавања, барем док се анализира пуни обим напада.
Лекције о безбедности за ланац снабдевања софтвером
Инцидент са Axios-ом није изолован догађај, већ још једна карика у ланцу напада на ланац снабдевања који укључује случајеве попут SolarWinds-а, Kaseya-е, 3CX-а, Polyfill.io-а и рањивости искоришћене у Log4j-у. Основна идеја је увек иста: компромитовати широко коришћену, поуздану компоненту како би се максимизирао досег , уместо покушаја напада машину по машину.
Једна од најчешће понављаних лекција стручњака је да поверење не може да се ослања искључиво на популарност библиотеке или репутацију одржаваоца . Ако је канал објављивања (npm налог, CI/CD цевовод, инфраструктура за изградњу) угрожен, све што је објављено кроз њега наслеђује тај ризик. Ручни преглед кода такође није довољан ако се злонамерни софтвер крије у транзитивним зависностима и брише се након извршавања.
Такође је истакнуто да „подразумевана брзина“ за ажурирања зависности долази са ценом у смислу површине напада . Увек аутоматско усвајање најновије верзије је невероватно згодно, али отвара врата за ширење злонамерног ажурирања за неколико минута. Неке организације већ разматрају политике као што је захтевање да нова верзија буде у екосистему одређени период пре усвајања или захтевање да се промене критичних пакета подвргну додатном ручном прегледу.
Што се тиче развојне инфраструктуре, CI/CD окружења морају се третирати као веома осетљива средства . Сваки RAT извршен током инсталације зависности ће готово сигурно тражити тајне цевовода и приступ другим окружењима. Сегментирање ових чворова, њихово пажљивије праћење и периодична ротација њихових тајни више није „идеална“ препорука већ нужност.
Коначно, откривање ових врста напада захтева комбиновање информација из више извора: инсталираних верзија, закључаних датотека, индикатора компромитовања оперативног система и мрежне телеметрије . Алати који генеришу и управљају софтверским билбордом материјала (SBOM) помажу у брзом праћењу који пројекти користе које пакете, што је од виталног значаја када се покрену масовна упозорења попут овог.
Читава ова епизода са Аксиосом илуструје у којој мери екосистем зависности, колико год зрео и консолидован изгледао, и даље у великој мери зависи од поверења и сталне будности. Наизглед безопасна библиотека, коју одржава једна особа која постане жртва добро изведеног напада социјалним инжењерингом, може за неколико сати постати глобални вектор за примену међуплатформских RAT-ова против компанија, фриленсера и организација свих величина . Јачање контрола око објављивања налога, цевовода и критичних зависности више није опционална најбоља пракса, већ предуслов за континуирани развој у окружењу где су нападачи све стрпљивији, домишљатији и опремљени бољим алатима.

