Arrayref-craten for Rust ble kompromittert i et forsyningskjedeangrep som distribuerte infostealer-skadevare på utvikleres systemer under kompilering. Angriperne forgiftet også append-only-vec- og internment-cratene i løpet av det samme korte angrepsvinduet.

Arrayref er et mye brukt Rust-bibliotek med mer enn 53 millioner nedlastinger de siste 90 dagene. Det brukes i prosjekter innen kryptografi, grafikk og blokkjedeteknologi, noe som gjør hendelsen til en alvorlig bekymring for utviklere og organisasjoner som er avhengige av Rust-avhengigheter.

De skadelige versjonene har siden blitt fjernet. Alle som installerte de berørte pakkene i eksponeringsperioden, bør imidlertid undersøke systemene sine for tegn på kompromittering.

Angripere brukte en typosquattet avhengighet

Angriperen endret de berørte versjonene ved å legge til en avhengighet med navnet proc-macro1. Pakken etterlignet den legitime og mye brukte proc-macro2-craten gjennom en nesten identisk stavemåte.

Den opprinnelige kildekoden i de kompromitterte pakkene forble ellers uendret. Dette gjorde det skadelige tillegget vanskeligere å oppdage under en rask gjennomgang av kildekoden.

proc-macro1-pakken inneholdt et build.rs-skript som kjørte automatisk under kompilering. Skriptet rekonstruerte infrastrukturen sin fra kodede fragmenter og valgte en payload som samsvarte med utviklerens operativsystem.

Skadevaren støttet Linux x86-64, Windows x86-64, macOS x86-64 og macOS ARM64. Denne støtten på tvers av plattformer økte kampanjens potensielle rekkevidde betydelig.

Skadevare stjeler data og etablerer persistens under byggeprosessen

På Unix-systemer skrev skadevaren en fil med navnet rust-setup til den midlertidige katalogen. Deretter markerte den filen som kjørbar og startet den som en frakoblet prosess.

På Windows opprettet payloaden et PowerShell-skript i den midlertidige mappen. Den brukte skjulte Windows Script Host- og VBS-komponenter for å holde prosessen i gang.

Forskere fant at andretrinns-payloaden kunne samle inn informasjon om vertssystemet og stjele legitimasjon. Den rettet seg mot nettlesernes innloggingsdatabaser i Chrome, Brave og Edge.

Skadevaren forsøkte også å forbli på infiserte systemer. Den brukte Registry Run-nøkler på Windows, LaunchAgent-oppføringer på macOS og systemd-tjenester på Linux for å etablere persistens.

Arrayref-angrepet påvirket tre pakker

De skadelige pakkeversjonene omfattet arrayref versjon 0.3.10, append-only-vec versjon 0.1.9 og internment versjon 0.8.7. Alle tre pakkene ble vedlikeholdt gjennom den samme kontoen.

Angriperen publiserte også flere pakker under separate navn, inkludert aovine, arone, aronenao og tinymember. Registeret har fjernet disse tilleggspakkene.

Kampanjen startet tidlig 20. august. Angriperne opprettet kontoer som etterlignet legitime brukere før de publiserte en i utgangspunktet ufarlig proc-macro1-pakke. Deretter lanserte de en skadelig oppdatering og publiserte de forgiftede crate-versjonene gjennom den kompromitterte vedlikeholderkontoen.

Registeret fjernet den skadelige avhengigheten og fjernet senere også arrayref 0.3.10 fra indeksen. Den totale eksponeringsperioden varte i nesten 90 minutter.

Utviklere bør behandle berørte builds som kompromitterte

Utviklere bør gjennomgå Cargo.lock-filer og byggelogger for de berørte versjonene. De bør også søke etter filene som skadevaren opprettet, og undersøke nettverkstrafikk knyttet til kampanjens infrastruktur.

Alle som bygde et prosjekt i eksponeringsperioden, bør bytte tilgjengelig legitimasjon, CI-tokens, signeringsnøkler og andre hemmeligheter. Team bør gjenoppbygge berørte miljøer fra kjente, sikre sikkerhetskopier etter at undersøkelsen er fullført.

Prosjekter som fortsatt er rene, bør låse avhengighetene til kjente, sikre versjoner frem til situasjonen rundt vedlikeholderkontoen er fullstendig avklart. Forskere har registrert infrastrukturoverlapp med nylige Nord-Korea-tilknyttede forsyningskjedekampanjer, men dette bekrefter ikke hvem som står bak angrepet.

Konklusjon

Kompromitteringen av Arrayref-craten for Rust viser hvordan en liten endring i en avhengighet kan eksponere store deler av programvareforsyningskjeden. Utviklere som installerte de berørte versjonene, bør anta at det foreligger en risiko, undersøke miljøene sine og umiddelbart bytte sensitive tilgangsopplysninger.


0 responses to “Kompromittert Arrayref-crate for Rust sprer infostealer-skadevare”