Het Rust Project heeft op 20 augustus kwaadaardige versies verwijderd van drie veelgebruikte Rust-crates op crates.io, nadat een gekaapt maintainer-account releases had gepubliceerd met een verborgen kwaadaardige dependency. Het gaat om arrayref 0.3.10, internment 0.8.7 en append-only-vec 0.1.9 - alle drie gepubliceerd vanaf hetzelfde beheerdersaccount. Alleen al arrayref telt in totaal 245 miljoen downloads.
De aanval draaide om een typosquatting-pakket genaamd proc-macro1, dat qua naam sterk lijkt op het populaire en legitieme proc-macro2. De besmette versies van de drie crates namen dit nepproc-macro1 op als afhankelijkheid. Het bijzondere: het build-script van die dependency werd al uitgevoerd tijdens het compileren van een project, dus nog voordat er ook maar een regel van de eigenlijke code werd aangeroepen. Dat script haalde een payload op van een externe server en voerde die direct uit op de machine van de ontwikkelaar.
Eenmaal actief zorgde de malware voor persistentie: op Windows via Registry Run-sleutels, op macOS via een LaunchAgent en op Linux via een systemd-service. Vervolgens probeerde de malware inloggegevens uit browsers te stelen.
Het Rust Project reageerde snel zodra de compromittering aan het licht kwam: arrayref werd binnen 86 minuten offline gehaald, internment na 90 minuten en append-only-vec na 107 minuten. Om te voorkomen dat ontwikkelaars alsnog op een oudere, wel veilige versie zouden vastzitten, werden ook de voorgaande releases 0.3.5 tot en met 0.3.9 van arrayref “yanked” - een ingreep die eerder averechts had kunnen werken, omdat gebruikers daardoor juist richting de kwaadaardige release werden geduwd voordat de aard van het probleem duidelijk was.
Ontwikkelaars die deze crates gebruiken, wordt aangeraden hun lokale cache te controleren op sporen van de aanval, in de map ~/.cargo/registry/cache, en arrayref voorlopig vast te pinnen op versie 0.3.9 of ouder totdat een schone release beschikbaar is.
Voor Nederlandse softwareteams die Rust gebruiken - een taal die juist wordt gekozen vanwege geheugenveiligheid - is dit een pijnlijke herinnering dat de veiligheid van een taal niets zegt over de veiligheid van de supply chain eromheen. Build-scripts die tijdens compilatie willekeurige code uitvoeren, zijn een structureel risico bij vrijwel elke pakketmanager; controleer daarom niet alleen dependencies, maar ook of build-scripts kunnen worden uitgeschakeld of gesandboxed in de eigen CI/CD-pijplijn.
Bron: The Hacker News
Blijf op de hoogte
Volg CybersecurityNieuws.nl via RSS en mis geen enkel beveiligingsnieuws. Zelf iets gezien dat wij moeten weten? Tip de redactie.