Nep-AUR-pakketten voor Arch Linux draaien malware als root
Een aanvaller heeft kwaadaardige pakketten geupload naar de Arch User Repository (AUR) die zich voordeden als yay en paru, twee veelgebruikte hulptools. Bij installatie voerden de pakketten een extern shellscript uit met rootrechten.
De pakketten werden op 13 oktober ontdekt. Ze waren gepubliceerd door een gebruiker met de naam "marchos1as", onder typosquatting-namen die sterk leken op die van de legitieme tools.
Wat de AUR is en waarom helpers ertoe doen
De AUR is een door de community beheerde pakketindex voor Arch Linux en de distributies die erop gebaseerd zijn. Er staan geen kant-en-klare binaries op. In plaats daarvan bevat de AUR buildscripts, zogeheten PKGBUILDs, waarmee gebruikers software zelf bouwen en installeren. Die scripts zijn er voor tools van derden en propriëtaire tools, betaversies en oudere versies die niet meer via de officiële distributiekanalen beschikbaar zijn.
Tools als yay en paru staan bekend als AUR-helpers. Ze maken het eenvoudiger om pakketten van gebruikers te vinden en te installeren. Veel Arch-gebruikers zetten ze daarom al vroeg op hun systeem, vaak als een van de eerste dingen op een nieuwe installatie. Dat maakte ze een aantrekkelijke vermomming voor aanvallers.
Echte code met een kwaadaardig installatiescript
Gebruikers werden gewaarschuwd via een draad op de mailinglijst van Arch Linux met de titel "hundreds of aur packages were mass uploaded with malware". Binnen enkele minuten hadden leden van de community de pakketten bekeken en bevestigd wat erin zat.
De pakketten bevatten de echte upstreamcode, maar daar was een kwaadaardig installatiescript aan toegevoegd. Dat script downloadde een extern shellscript en voerde het uit met rootrechten.
AUR-beheerder Andreas Reichel beschreef een van de pakketten uitgebreid.
"Het pakket doet zich voor als een eenvoudige herverpakking van de legitieme AUR-helper 'yay' (dezelfde upstream-URL, dezelfde bron-tarball), maar de pakketnaam 'yyay' en het kwaadaardige installatiescriptlet laten zien dat het om een getrojaniseerde imitatie gaat, bedoeld om op te gaan in het echte pakket", waarschuwde Reichel.
Omdat de bron-URL en de tarball overeenkwamen met het echte project, viel er bij een snelle blik op het buildscript niets bijzonders op. Het kwaadaardige deel zat in het installatiescriptlet, dat tijdens de installatie van het pakket wordt uitgevoerd.
Een andere beheerder, Emiliano Gandini Outeda, publiceerde een lijst met kwaadaardige pakketten die op zijn eigen systeem alarm hadden geslagen. De detecties kwamen van regels in TrustSight, een opensource-tool voor applicatiebeveiliging die hij zelf ontwikkelt.
Het AUR-team heeft het account marchos1as geblokkeerd en de kwaadaardige pakketten uit de repository verwijderd.
Een payload via de Wayback Machine
Volgens Reichel werd de payload niet rechtstreeks van een server van de aanvaller opgehaald. Het installatiescript haalde hem binnen via een URL van de Wayback Machine. Die URL verwees naar een persoonlijke repository met de naam hellscripter/install-scripts, gehost op GitFlic, een Russische dienst voor codehosting.
Door een archiefdienst als tussenstap te gebruiken, kunnen aanvallers hun verkeer via een vertrouwd domein laten lopen. Daardoor oogt de download mogelijk minder verdacht.
Mogelijk verband met een npm-worm
De naam van de repository is al eerder opgedoken. Applicatiebeveiligingsbedrijf SafeDep beschreef onlangs een npm-campagne die het "DirtyBlanket" noemde. Die campagne haalde code op uit een repository met dezelfde naam, hellscripter/install-scripts, maar dan gehost op Codeberg.
Onderzoekers van SafeDep troffen bij die activiteit een Linux-worm aan. Die installeerde de remote access trojan CHAOS, vermomd als lettertypedienst, en injecteerde daarnaast een loader in AUR-pakketten.
Een OSV-advisory over DirtyBlanket noemt ook hetzelfde Wayback Machine- en GitFlic-domein dat in de jongste AUR-uploads werd gezien.
Die overeenkomsten vallen op, maar er is op dit moment geen bevestiging dat de twee operaties met elkaar te maken hebben.
Onderdeel van een reeks AUR-aanvallen
Het is niet de eerste keer dit jaar dat de AUR doelwit is. In juni verspreidden 400 pakketten malware die inloggegevens stal en over rootkitfuncties beschikte. Een andere campagne in juli bracht het Arch-team ertoe om tijdelijk het adopteren van pakketten uit te schakelen, het proces waarmee gebruikers verweesde pakketten kunnen overnemen.
Arch-gebruikers die een van de verdachte pakketten hebben geïnstalleerd, moeten ervan uitgaan dat hun systeem gecompromitteerd is en direct maatregelen nemen. Omdat het kwaadaardige script als root draaide, kan de aanvaller alles op de getroffen machine hebben aangepast.
Onze analyse
Dit is de derde AUR-campagne in ongeveer vier maanden, wat erop wijst dat aanvallers de repository inmiddels zien als een betrouwbare toegangsweg tot Linux-systemen. Het model dat de AUR zo nuttig maakt, met open uploads en pakketten die gebruikers zelf bouwen, legt de controle ook grotendeels bij de community. In dit geval reageerde de community snel, maar de detectie hing nog altijd af van vrijwilligers die draden op mailinglijsten lezen en hun eigen tools draaien.
De keuze van de doelwitten zegt veel. AUR-helpers worden vroeg geïnstalleerd en breed vertrouwd, en de combinatie van echte upstreamcode met een verborgen installatiescriptlet is erop gemaakt om een vluchtige controle te doorstaan. Hetzelfde patroon, waarbij kwaadaardige stappen in installatiescripts worden verstopt, zie je terug in campagnes als de MALFEX-malware op npm en in kwaadaardige GitHub-repositories die legitiem moeten lijken.
Voor Arch-gebruikers is de praktische les: controleer pakketnamen zorgvuldig en lees de installatiescripts, niet alleen de bron-URL's. Het is de moeite waard om in de gaten te houden of het vermoede verband met DirtyBlanket wordt bevestigd, en of het Arch-team na deze nieuwste golf strengere controles op nieuwe uploads invoert.
