Hotdatabas Skadlig programvara CanisterWorm-skadlig programvara

CanisterWorm-skadlig programvara

En sofistikerad leveranskedjeattack som initialt riktade sig mot den allmänt använda Trivy-skannern har eskalerat till en bredare kompromiss som påverkar ett flertal npm-paket. Hotaktörerna bakom kampanjen misstänks ha distribuerat en tidigare odokumenterad självspridande mask som kallas CanisterWorm, vilket avsevärt ökar intrångets omfattning och inverkan.

Skadlig programvara har fått sitt namn från dess användning av en ICP-kapsel (Internet Computer Protocol), manipulationssäkra smarta kontrakt som lagras på en decentraliserad blockkedja, som en del av dess kommandoinfrastruktur. Detta markerar det första offentligt dokumenterade fallet där ICP-kapslar har utnyttjats som ett vapen för att hämta kommando-och-kontroll-slutpunkter (C2), vilket introducerar en ny och motståndskraftig taktik som komplicerar traditionella riskreducerande åtgärder.

Komprometterade paket och vektor för initial åtkomst

Attacken har påverkat flera npm-paket inom olika omfattningar, vilket visar på en bred explosionsradie inom mjukvaruleveranskedjan:

  • 28 paket inom @EmilGroup-området
  • 16 paket inom @opengov-området
  • Ytterligare paket inklusive @teale.io/eslint-config, @airtm/uuid-base32 och @pypestream/floating-ui-dom

Denna kampanj följer tätt i kölvattnet av en inloggningsuppgiftskompromettering som gjorde det möjligt för angripare att publicera skadliga versioner av Trivy-relaterade verktyg, närmare bestämt trivy, trivy-action och setup-trivy, vilka innehöll inbäddade funktioner för att stjäla inloggningsuppgifter. Operationen tros vara kopplad till en molnfokuserad cyberkriminell grupp identifierad som TeamPCP.

Infektionsarbetsflöde och decentraliserad kommandoinfrastruktur

Infektionskedjan börjar under installationsprocessen för npm-paketet, där ett postinstall-skript kör en laddare. Denna laddare distribuerar en Python-baserad bakdörr som är utformad för att kommunicera med ICP-kapseln. Kapseln fungerar som en dead drop-resolver och returnerar en URL som dirigerar det infekterade systemet att ladda ner och köra nästa stegs nyttolast.

ICP-infrastrukturens decentraliserade natur ger angriparna en betydande fördel. Eftersom behållaren dynamiskt kan uppdatera nyttolastens URL kan hotaktörer distribuera nya skadliga binärfiler över alla infekterade system utan att modifiera den distribuerade skadliga programvaran i sig. Denna arkitektur gör också borttagningsarbetet betydligt mer utmanande.

Persistensmekanism och smygtekniker

Persistens uppnås genom att skapa en systemd-användartjänst som är konfigurerad för att automatiskt starta om den skadliga processen. Viktiga egenskaper inkluderar:

  • Automatisk omstart framtvingas via direktivet Restart=always
  • En 5 sekunders fördröjning innan bakdörren återstartas om den avslutas
  • Förkläda tjänsten som legitim PostgreSQL-övervakningsprogramvara under namnet 'pgmon'

Denna metod säkerställer kontinuerlig drift samtidigt som sannolikheten för upptäckt minimeras genom att den blandas med legitima systemtjänster.

Adaptiv nyttolastleverans och kill switch-beteende

Bakdörren kommunicerar regelbundet med ICP-behållaren var 50:e minut med hjälp av en förfalskad webbläsar-användaragent för att undvika misstankar. Den returnerade URL:en avgör nästa åtgärd:

  • Om URL:en pekar på en giltig nyttolast laddas den skadliga programvaran ner och kör den.
  • Om URL:en innehåller "youtube.com" försätts skadlig kod i ett vilande tillstånd

Denna mekanism fungerar effektivt som en fjärrstyrd kill switch. Genom att växla mellan en godartad YouTube-länk och en skadlig nyttolast i behållaren kan angriparen aktivera eller inaktivera skadlig programvara på alla infekterade system. Det är värt att notera att tidigare körda nyttolaster fortsätter att köras i bakgrunden, eftersom skadlig programvara inte avslutar tidigare processer.

En liknande YouTube-baserad kill switch har också observerats i en trojaniserad Trivy-binärfil (version 0.69.4), som kommunicerar med samma ICP-infrastruktur via en separat Python-dropper.

Maskfunktioner och automatiserad förökning

Ursprungligen förlitade sig spridningen på ett manuellt exekverat skript med namnet deploy.js, som utnyttjade stulna npm-autentiseringstokens för att injicera skadlig kod i tillgängliga paket. Detta skript utlöstes inte under installationen utan fungerade som ett fristående verktyg för att utöka attackens räckvidd.

Senare varianter av CanisterWorm har utvecklats avsevärt. I nyare versioner, som de som finns i @teale.io/eslint-config (version 1.8.11 och 1.8.12), integrerar masken självförökning direkt i paketets installationsprocess. Den uppdaterade mekanismen inkluderar:

  • Extraktion av npm-autentiseringstokens från den infekterade miljön
  • Omedelbar körning av spridningsrutinen som en fristående bakgrundsprocess
  • Automatiserad publicering av komprometterade paket med hjälp av insamlade autentiseringsuppgifter

Denna förändring omvandlar attacken från en manuellt driven kampanj till ett helt autonomt spridningssystem.

Eskalering till ett självförsörjande hot mot leveranskedjan

Införandet av automatiserad token-insamling och självpropagering markerar en kritisk eskalering. Alla utvecklararbetsstationer eller CI/CD-pipelines som installerar ett komprometterat paket och innehåller tillgängliga npm-autentiseringsuppgifter blir en aktiv propageringsnod. Detta skapar en kaskadeffekt där infekterade paket leder till ytterligare infektioner över nedströmsberoenden.

I detta skede utvecklas hotet från att ha komprometterats med isolerade konton till ett självförsörjande ekosystem av distribution av skadlig kod. Varje nyligen infekterad miljö bidrar till spridningen, vilket möjliggör exponentiell tillväxt och gör inneslutningen betydligt svårare.

För att förvärra oron indikerar testning av artefakter som en platshållarnyttolast ("hello123") att angriparna aktivt förfinar och validerar attackkedjan innan de distribuerar fullt fungerande skadliga binärfiler.

Trendigt

Mest sedda

Läser in...