Teknologi

Skadelig kode skjult i Red Hats npm-pakker spredte seg selv og stjal skynøkler

Susan Hill

En periode arbeidet noen av programvarebyggeklossene som sendes ut under Red Hats navn i det stille mot dem som installerte dem. Inni mer enn 30 pakker i selskapets offentlige samling @redhat-cloud-services lå et lite skript, klart til å starte i det øyeblikket en utvikler installerte en av dem. Det var satt opp som et såkalt preinstall-trinn, en av de automatiske oppgavene som verktøyet npm kjører på egen hånd, før en eneste linje av den ekte programvaren lastes inn. Oppgaven var å finne passord og deretter spre seg.

Red Hat lager ikke apper folk flest åpner ved navn, men koden selskapet leverer ligger under en enorm del av det de bruker hver dag: skypanelene en bank logger inn på, systemene sykehus og offentlige etater kjører på, verktøyene andre selskaper bygger sine egne produkter med. Når kode med den merkelappen blir fiendtlig, er skaderadiusen ikke én app. Det er alt som er montert oppå.

Det skjulte skriptet dro på jakt etter nøklene som låser opp moderne databehandling. Ifølge sikkerhetsfirmaet StepSecurity, som først gjorde oppmerksom på pakkene, samlet det inn tilgangstokener til Amazon Web Services, Google Cloud, Microsoft Azure, Kubernetes, HashiCorp Vault, npm selv og automatiseringstjenesten CircleCI, pluss hemmelighetene som lagres inni GitHubs byggekjeder. For å nå dem leste det det rå minnet i den pågående byggeprosessen, et triks som glir forbi vernet som skal holde hemmeligheter unna loggene.

Det som gjør et vanlig datatyveri om til noe nærmere et utbrudd, er hva koden gjorde videre. Med stjålne npm-publiseringstokener forsøkte den å laste opp ferske, bakdørsutstyrte versjoner av alle andre pakker den kaprede kontoen nådde, ved hjelp av en innstilling som skyver til side tofaktorsjekken som ellers ville stått i veien. Et tyveri som kopierer seg selv, blir ikke hos sine første ofre. Det reiser langs den samme tilliten som hele systemet hviler på.

På utviklernes egne maskiner nådde lasten lenger: den la inn instruksjoner i oppgaveinnstillingene til Visual Studio Code og i konfigurasjonen for Claude Code, AI-programmeringsassistenten, for å fortsette å kjøre lenge etter at installasjonen var ferdig. Nettopp de som oftest henter slike pakker, ingeniørene som vedlikeholder alle andres programvare, var også de hvis bærbare ble en inngang.

Den mest ubehagelige detaljen er hvor de dårlige versjonene kom fra. Red Hats utviklere, som erkjente problemet i prosjektets offentlige sakssporing, og forskerne som tok koden fra hverandre, er enige: de forgiftede versjonene gikk ut gjennom Red Hats egen automatiske publiseringskjede, maskineriet som tar kode fra kodelagrene og sender den ut i verden. Angriperne utga seg ikke for å være Red Hat. En periode kunne de publisere som Red Hat. Tillitens segl og det man stolte på, gled fra hverandre.

Det er ikke første gang forsyningskjeden for fri programvare gjøres om til en leveringsrute. Forgiftede nettleserutvidelser og kaprede utviklerkontoer har dukket opp gang på gang gjennom våren, alle med den samme vanen som brekkstang: moderne programvare limes sammen av tusenvis av gratiskomponenter ingen skriver fra bunnen. Det som gjør denne saken tyngre, er navnet på esken. Hele poenget med å hente kode fra en leverandør som Red Hat, framfor en anonym bidragsyter, er at navnet skal være garantien.

Det er verdt å si tydelig hva hendelsen ikke betyr. Så langt er det ingen tegn til at vanlige brukeres enheter er infisert, eller at Red Hats betalte bedriftsprodukter og kundenes produksjonssystemer er brutt inn i. De skadelige versjonene siktet mot utviklingens rotete midte, de automatiske byggeserverne og ingeniørenes maskiner, og mange av de rammede pakkene er grensesnitt- og utviklerverktøy, ikke kjernen i noen tjeneste i drift. Bildet er dessuten fortsatt i bevegelse, og det nøyaktige antallet smittede pakker har flyttet seg mens Red Hat og eksterne forskere går gjennom listen. Skaden som betyr mest, de stjålne påloggingsdetaljene, forblir usynlig til noen tar dem i bruk.

Red Hat har etter hvert fjernet de skadelige versjonene, og de kompromitterte publiseringene trekkes ut av npm. Den som installerte dem i det rammede vinduet, oppfordres til å regne hvert token bygget kunne se som brent og bytte det ut. Avsløringen kom i begynnelsen av juni, og oppryddingen vil overleve overskriftene. Det strukturelle problemet vil overleve oppryddingen: internett settes sammen, i høy fart, av millioner små deler vedlikeholdt av mennesker vi aldri møter, og i økende grad av automatiske systemer som kan kapres til å signere de delene på deres vegne.

Tagger: , ,

Diskusjon

Det er 0 kommentarer.