3min Security

Maintainer geïnfiltreerd Axios-project deelt post-mortem

Maintainer geïnfiltreerd Axios-project deelt post-mortem

Deze week kwam er weer een supply chain-aanval, deze keer bij Axios. Het gaat om een populaire JavaScript HTTP-library, maar gedurende drie uur werd deze gebruikt om een Remote Access Trojans (RAT’s) te verspreiden. Hoofd-maintainer Jason Saayman heeft nu een gedetailleerde post-mortem op GitHub geplaatst. Daarin onthult hij een uitgebreide social engineering-campagne die werd uitgevoerd door de Noord-Koreaanse groep UNC1069.

De gecompromitteerde versies, axios@1.14.1 en axios@0.30.4, waren ongeveer drie uur live voordat ze werden verwijderd. Axios heeft meer dan 300 miljoen wekelijkse downloads en wordt gebruikt in vrijwel elk Node.js- en browserproject dat HTTP-verzoeken doet. Deze populariteit maakte het duidelijk tot een doelwit.

De aanval werd toegeschreven aan de Noord-Koreaanse groep UNC1069, zoals al vermeld op 1 april. De groep is financieel gemotiveerd en heeft zich eerder gericht op cryptocurrency-bedrijven. Het compromitteren van open source-projecten lijkt nu echter ook een belangrijke aanvalsvector te zijn. Het npm-ecosysteem heeft de afgelopen maanden bijvoorbeeld een reeks gerelateerde incidenten meegemaakt. In december stal de Shai-Hulud 2.0-worm developer secrets uit honderden pakketten met behulp van dezelfde post-installatiescripttechniek.

Nep-Teams-gesprek zette de RAT in

De social engineering-campagne was uitgebreid. Aanvallers kloonden de identiteit van een echte oprichter van een bedrijf, zetten een overtuigende Slack-werkruimte op, compleet met valse teamprofielen, en planden een Microsoft Teams-vergadering. Tijdens het gesprek werd Saayman gevraagd om een zogenaamd ontbrekend softwareonderdeel te installeren. Die installatie was echter de RAT. “Alles was uiterst goed gecoördineerd, zag er legitiem uit en werd op een professionele manier uitgevoerd”, schreef Saayman. Ondanks dat 2FA actief was, hadden de aanvallers, zodra de RAT op zijn machine stond, volledige controle over alles erop, waarbij ze alle op software gebaseerde authenticatiemaatregelen volledig omzeilden.

Beide kwaadaardige versies injecteerden een valse dependency, namelijk plain-crypto-js@4.2.1, die een script na de installatie uitvoerde dat platformspecifieke RAT-payloads afleverde. Op macOS, Windows en Linux maakte de malware verbinding met een command-and-control-server op sfrclak.com:8000. De dropper verwijderde vervolgens zijn eigen sporen uit node_modules, waardoor de map er schoon uitzag.

Herstelmaatregelen en geplande wijzigingen

Iedereen die op 31 maart tussen 00:21 en 03:15 UTC een nieuwe npm-installatie heeft uitgevoerd, moet de getroffen machines als gecompromitteerd beschouwen. Aanbevolen stappen: downgrade naar axios@1.14.0 (of 0.30.3 voor 0.x-gebruikers), verwijder node_modules/plain-crypto-js, vernieuw alle inloggegevens en controleer de netwerk logs op verbindingen met sfrclak[.]com of 142.11.206.73 op poort 8000. Geheimen die tijdens CI/CD-builds in dat tijdsbestek zijn ingevoerd, moeten ook worden gewijzigd.

Het Axios-project maakt nu gebruik van OIDC-gebaseerde publicatie om langdurige npm-inloggegevens uit de vergelijking te verwijderen, implementeert een onveranderlijke release-opzet en werkt zijn GitHub Actions-workflows bij. Alle apparaten die door Saayman werden gebruikt, zijn gewist en de inloggegevens zijn op elk platform gereset. Een medewerker merkte in de thread op dat npm momenteel geen optie biedt om OIDC-only publicatie op registry-niveau af te dwingen. Dit in tegenstelling tot registries zoals crates.io. Microsoft publiceerde op 1 april richtlijnen voor risicobeperking. Datadog Security Labs publiceerde ook een volledige analyse van de aanvalsstroom. Het onderzoek loopt nog.