CanisterWormi pahavara
Keerukas tarneahela rünnak, mis algselt oli suunatud laialdaselt kasutatava Trivy skänneri vastu, on eskaleerunud laiemaks ohuks, mis mõjutab arvukalt npm-pakette. Kampaania taga olevaid ohurühmi kahtlustatakse varem dokumenteerimata isepaljuneva ussi CanisterWorm kasutamises, mis suurendab oluliselt sissetungi ulatust ja mõju.
Pahavara sai oma nime internetiprotokolli (ICP) konteineri – detsentraliseeritud plokiahelas majutatud võltsimiskindlate nutilepingute – kasutamisest osana oma juhtimisinfrastruktuurist. See on esimene avalikult dokumenteeritud juhtum, kus ICP konteinereid on relvastatud käsu- ja kontrollisüsteemi (C2) lõpp-punktide hankimiseks, mis toob sisse uudse ja vastupidava taktika, mis muudab traditsioonilised leevendusmeetmed keerulisemaks.
Sisukord
Ohustatud paketid ja esmase juurdepääsu vektor
Rünnak on mõjutanud mitmeid npm-pakette erinevates ulatustes, näidates laiaulatuslikku levikut tarkvara tarneahelas:
- 28 paketti @EmilGroupi ulatuses
- 16 paketti @opengovi ulatuse all
- Lisapaketid, sh @teale.io/eslint-config, @airtm/uuid-base32 ja @pypestream/floating-ui-dom
See kampaania järgneb vahetult volituste rikkumisele, mis võimaldas ründajatel avaldada Trivyga seotud tööriistade, täpsemalt trivy, trivy-action ja setup-trivy pahatahtlikke versioone, mis sisaldasid mandaatide varastamise funktsiooni. Arvatakse, et operatsioon on seotud pilvepõhise küberkurjategijate rühmitusega, mida identifitseeritakse kui TeamPCP.
Nakkustõrje töövoog ja detsentraliseeritud juhtimisinfrastruktuur
Nakatumise ahel algab npm-paketi installiprotsessi ajal, kus installijärgne skript käivitab laaduri. See laadur avab Pythoni-põhise tagaukse, mis on loodud suhtlema ICP-santeriga. Kanister toimib surnud kohtade lahendajana, tagastades URL-i, mis suunab nakatunud süsteemi järgmise etapi kasuliku koormuse alla laadima ja käivitama.
ICP infrastruktuuri detsentraliseeritud olemus annab ründajatele olulise eelise. Kuna kanister saab dünaamiliselt uuendada kasuliku sisu URL-i, saavad ründajad levitada uusi pahatahtlikke binaarfaile kõigis nakatunud süsteemides ilma juurutatud pahavara ennast muutmata. See arhitektuur muudab ka eemaldamispüüdlused märkimisväärselt keerulisemaks.
Püsivuse mehhanism ja varjatud tehnikad
Püsivus saavutatakse systemd kasutajateenuse loomise abil, mis on konfigureeritud pahatahtliku protsessi automaatseks taaskäivitamiseks. Peamised omadused on järgmised:
- Automaatne taaskäivitamine jõustatakse Restart=always direktiivi kaudu
- 5-sekundiline viivitus enne tagaukse taaskäivitamist, kui see on lõpetatud
- Teenuse maskeerimine legitiimseks PostgreSQL-i jälgimistarkvaraks nime 'pgmon' all
See lähenemisviis tagab pideva töö, minimeerides samal ajal avastamise tõenäosust, sulandudes legitiimsete süsteemiteenustega.
Adaptiivne kasuliku koormuse kohaletoimetamine ja tapmislüliti käitumine
Tagauks suhtleb ICP-kanistriga perioodiliselt iga 50 minuti järel, kasutades kahtluste vältimiseks võltsitud brauseri kasutajaagenti. Tagastatud URL määrab järgmise toimingu:
- Kui URL viitab kehtivale kasulikule koormusele, laadib pahavara selle alla ja käivitab selle.
- Kui URL sisaldab aadressi „youtube.com”, läheb pahavara passiivsesse olekusse.
See mehhanism toimib sisuliselt kaugjuhtimisega pealülitina. Vahetades kassetti URL-i healoomulise YouTube'i lingi ja pahatahtliku paketi vahel, saab ründaja pahavara kõigis nakatunud süsteemides aktiveerida või deaktiveerida. Tähelepanuväärne on see, et varem käivitatud paketi töötab taustal edasi, kuna pahavara ei lõpeta varasemaid protsesse.
Sarnast YouTube'i-põhist tapmislülitit on täheldatud ka troojaga nakatunud Trivy binaarfailis (versioon 0.69.4), mis suhtleb sama ICP infrastruktuuriga eraldi Pythoni dropperi kaudu.
Usside võimekus ja automatiseeritud paljundamine
Algselt tugines levitamine käsitsi käivitatavale skriptile nimega deploy.js, mis kasutas varastatud npm autentimismärke pahatahtliku koodi süstimiseks ligipääsetavatesse pakettidesse. Seda skripti ei käivitatud installimise ajal, vaid see toimis iseseisva tööriistana rünnaku ulatuse laiendamiseks.
CanisterWormi hilisemad variandid on märkimisväärselt arenenud. Uuemates versioonides, näiteks @teale.io/eslint-config kaustas (versioonid 1.8.11 ja 1.8.12), on ussi isepaljunemine otse paketi installiprotsessi kaasatud. Uuendatud mehhanism hõlmab järgmist:
- Npm autentimismärkide ekstraheerimine nakatunud keskkonnast
- Levitamise rutiini kohene käivitamine eraldiseisva taustaprotsessina
- Ohustatud pakettide automaatne avaldamine kogutud volituste abil
See nihe muudab rünnaku käsitsi juhitavast kampaaniast täielikult autonoomseks levikusüsteemiks.
Eskaleerumine isemajandavaks tarneahela ohuks
Automatiseeritud tokenite kogumise ja iselevitamise kasutuselevõtt tähistab kriitilist eskaleerumist. Iga arendaja tööjaam või CI/CD torujuhe, mis installib ohustatud paketi ja sisaldab ligipääsetavaid npm-volitusi, muutub aktiivseks levitussõlmeks. See loob kaskaadefekti, kus nakatunud paketid viivad edasiste nakkusteni allavoolu sõltuvustes.
Selles etapis areneb oht üksiku konto ohustamisest edasi iseseisvaks pahavara leviku ökosüsteemiks. Iga äsja nakatunud keskkond aitab levikule kaasa, võimaldades eksponentsiaalset kasvu ja muutes ohjeldamise oluliselt raskemaks.
Mure süvendab asjaolu, et testitud esemed, näiteks kohatäite kasulik koormus („hello123”), näitavad, et ründajad täiustavad ja valideerivad aktiivselt rünnakuahelat enne täielikult töötavate pahatahtlike binaarfailide juurutamist.