Hackere gør en betroet Rust-crate til et malwareleveringssystem

En populær Rust-pakke er blevet det seneste offer i en voksende tendens med angreb på softwareforsyningskæden. Ifølge rapportering fra The Register kompromitterede hackere vedligeholderkontoen bag arrayref, en udbredt Rust-crate, og skubbede ondsindede opdateringer designet til at stjæle udvikleres legitimationsoplysninger. Craten, der er downloadet cirka 245 millioner gange, er præcis den slags fundamentale, lette at overse afhængighed, der gør denne type angreb så effektiv.

I stedet for at målrette individuelle udviklere direkte, gik angriberne efter selve softwareforsyningskæden. Ved at få kontrol over vedligeholderkontoen kunne de smugle infostealer-malware ind i det, der lignede en rutineopdatering. Enhver, der trak den kompromitterede version ind i deres build, forvandlede ubevidst deres eget udviklingsmiljø til et leveringspunkt for kode, der stjæler legitimationsoplysninger.

Hvorfor dette angreb virkede så godt

Rust-økosystemet, ligesom de fleste moderne programmeringsmiljøer, er stærkt afhængigt af delte kodebiblioteker kaldet crates. Udviklere reviderer sjældent hver afhængighed linje for linje. I stedet stoler de på, at en pakke med millioner af downloads og en etableret vedligeholder allerede er blevet gennemgået af fællesskabet. Den tillid er præcis, hvad angribere udnytter.

Denne hændelse passer til mønsteret for det, der er kendt som et angreb på forsyningskæden, hvor angribere målretter et svagere led, i dette tilfælde en enkelt vedligeholderkonto, for at nå en meget større pulje af ofre længere nede i kæden. Fordi arrayref er indlejret i så mange andre projekter, havde en enkelt kompromitteret opdatering potentiale til at bølge ud over utallige kodebaser, før nogen lagde mærke til, at noget var galt.

Det, der gør denne sag bemærkelsesværdig, er den specifikke nyttelast. I stedet for blot at indsætte en bagdør eller et kryptomining-script, var den ondsindede opdatering bygget til at høste udvikleres legitimationsoplysninger direkte fra inficerede systemer. Det er en betydelig eskalering. Stjålne udviklerlegitimationsoplysninger kan bruges til at få adgang til kildekode-repositorier, cloud-infrastruktur, pakkeregistre og andre højværdisystemer, hvilket potentielt muliggør yderligere angreb langt ud over det oprindelige offer.

Privatlivsindsatsen for udviklere

De fleste diskussioner om angreb på softwareforsyningskæden fokuserer på de tekniske konsekvenser: ødelagte builds, kompromitterede produktionssystemer, nødopdateringer. Men der er en privatlivsdimension her, der fortjener mere opmærksomhed.

Udviklere opbevarer en enorm mængde følsomme oplysninger på deres maskiner: API-nøgler, SSH-nøgler, cloud-service-tokens og login-legitimationsoplysninger til interne værktøjer. En infostealer designet til at køre under en rutinemæssig build-proces har direkte adgang til præcis denne type data. I modsætning til en phishing-e-mail, som en forsigtig udvikler måske ville opdage, udfører en ondsindet afhængighed sig stille og roligt som en del af normal, forventet adfærd. Der er intet mistænkeligt link at klikke på og intet åbenlyst advarselstegn, bare en pakkeopdatering, der ligner enhver anden.

Det er det, der gør crate- og pakkeforgiftningsangreb særligt bekymrende fra et privatlivssynspunkt. Ofre har ofte ingen idé om, at deres legitimationsoplysninger blev eksponeret, før de stjålne data bruges andre steder, hvad enten det er uautoriseret adgang til en virksomheds cloud-miljø eller yderligere kompromittering af andre open source-projekter, som udvikleren vedligeholder.

Hvad dette betyder for dig

Hvis du er Rust-udvikler, eller du arbejder med et hvilket som helst sprog, der er afhængigt af open source-pakkeøkosystemer, er denne hændelse en påmindelse om, at tillid til en pakkes popularitet ikke er det samme som tillid til dens aktuelle sikkerhed. En crate downloadet 245 millioner gange kan stadig blive kompromitteret, hvis en enkelt vedligeholderkonto bliver overtaget.

Praktiske skridt, der er værd at overveje, inkluderer at fastlåse afhængighedsversioner i stedet for automatisk at trække den nyeste udgivelse, gennemgå ændringslogfiler før opgradering af kritiske pakker og bruge værktøjer, der scanner afhængigheder for kendt ondsindet adfærd. Aktivering af multi-faktor-godkendelse på alle konti knyttet til pakkeudgivelse og regelmæssig rotation af legitimationsoplysninger reducerer også skadesomfanget, hvis en konto nogensinde bliver kompromitteret.

Organisationer, der er stærkt afhængige af open source-afhængigheder, bør også overveje at vedligeholde en intern oversigt over, hvilke pakker der er i brug, og overvåge for usædvanlig opdateringsaktivitet, især for pakker med uforholdsmæssig stor indflydelse på tværs af mange projekter.

Hold dig foran trusler mod forsyningskæden

Dette angreb på arrayref er usandsynligt at være sidste gang, hackere målretter open source-økosystemet for at stjæle udvikleres legitimationsoplysninger. Efterhånden som softwareforsyningskæder bliver mere sammenkoblede, kan en enkelt kompromitteret vedligeholderkonto have konsekvenser langt ud over ét projekt.

For udviklere er pointen ikke at opgive open source-værktøjer, men at behandle afhængighedsstyring med samme granskning, som anvendes på ethvert andet sikkerhedsfølsomt system. Gennemgå opdateringer, før du fletter dem, begræns de tilladelser, der gives til build-miljøer, og antag, at selv betroede pakker med mange downloads kan blive angrebsvektorer. At holde sig informeret om hændelser som denne er en af de enkleste måder at genkende advarselstegn tidligt og beskytte både dine legitimationsoplysninger og de systemer, du hjælper med at bygge.