Teknologi

Skadelig kode skjult i Red Hats npm-pakker spredte sig selv og stjal nøgler

Susan Hill

I en periode arbejdede nogle af de softwarebyggesten, der sendes ud under Red Hats navn, i stilhed mod dem, der installerede dem. Inde i mere end 30 pakker i virksomhedens offentlige samling @redhat-cloud-services lå et lille script, klar til at gå i gang i det øjeblik, en udvikler installerede en af dem. Det var sat op som et såkaldt preinstall-trin, en af de automatiske opgaver, som værktøjet npm kører af sig selv, før en eneste linje af den rigtige software indlæses. Dets opgave var at finde adgangskoder og derefter sprede sig.

Red Hat laver ikke apps, som de fleste åbner ved navn, men virksomhedens kode ligger under en enorm del af det, folk bruger hver dag: skypanelerne, som en bank logger ind på, systemerne, som hospitaler og myndigheder kører på, værktøjerne, som andre firmaer bygger deres egne produkter med. Når kode med det mærkat bliver fjendtlig, er skadesradiussen ikke én app. Det er alt, hvad der er samlet ovenpå.

Det skjulte script gik på jagt efter de nøgler, der låser moderne databehandling op. Ifølge sikkerhedsfirmaet StepSecurity, der først gjorde opmærksom på pakkerne, samlede det adgangstokens ind til Amazon Web Services, Google Cloud, Microsoft Azure, Kubernetes, HashiCorp Vault, npm selv og automatiseringstjenesten CircleCI, plus de hemmeligheder, der gemmes inde i GitHubs byggekæder. For at nå dem læste det den rå hukommelse i den kørende byggeproces, et trick, der smutter forbi de beskyttelser, der skal holde hemmeligheder ude af logfilerne.

Det, der forvandler et almindeligt datatyveri til noget tættere på et udbrud, er det, koden gjorde derefter. Med stjålne npm-udgivelsestokens forsøgte den at uploade nyligt bagdørsforsynede versioner af alle andre pakker, som den kaprede konto kunne nå, ved hjælp af en indstilling, der skubber det tofaktor-tjek til side, der ellers ville stå i vejen. Et tyveri, der kopierer sig selv, bliver ikke hos sine første ofre. Det rejser langs den samme tillid, som hele systemet hviler på.

På udviklernes egne maskiner nåede lasten længere: den lagde instruktioner ind i Visual Studio Codes opgaveindstillinger og i konfigurationen til Claude Code, AI-programmeringsassistenten, så den kunne blive ved med at køre længe efter, at installationen var slut. Netop dem, der oftest henter disse pakker, ingeniørerne, der vedligeholder alle andres software, var også dem, hvis bærbare blev en indgang.

Den mest ubehagelige detalje er, hvor de dårlige versioner kom fra. Red Hats udviklere, der erkendte problemet i projektets offentlige fejlsporing, og forskerne, der skilte koden ad, er enige: de forgiftede versioner kom ud via Red Hats egen automatiske udgivelseskæde, maskineriet, der tager kode fra kodelagrene og sender den ud i verden. Angriberne udgav sig ikke for at være Red Hat. I en periode kunne de udgive som Red Hat. Tillidens segl og det, man stolede på, gled fra hinanden.

Det er ikke første gang, forsyningskæden for fri software laves om til en leveringsrute. Forgiftede browserudvidelser og kaprede udviklerkonti er dukket op igen og igen hen over foråret, alle med den samme vane som løftestang: moderne software limes sammen af tusindvis af gratis komponenter, som ingen skriver fra bunden. Det, der gør denne sag tungere, er navnet på kassen. Hele pointen med at hente kode hos en leverandør som Red Hat, frem for en anonym bidragyder, er, at navnet skal være garantien.

Det er værd at sige klart, hvad hændelsen ikke betyder. Indtil videre er der intet tegn på, at almindelige brugeres enheder er blevet inficeret, eller at Red Hats betalte virksomhedsprodukter og kundernes produktionssystemer er blevet brudt ind i. De skadelige versioner sigtede mod udviklingens rodede midte, de automatiske byggeservere og ingeniørernes maskiner, og mange af de ramte pakker er grænseflade- og udviklerværktøjer, ikke kernen i nogen tjeneste i drift. Billedet er desuden stadig i bevægelse, og det præcise antal smittede pakker har flyttet sig, mens Red Hat og eksterne forskere går listen igennem. Skaden, der betyder mest, de stjålne adgangsoplysninger, forbliver usynlig, indtil nogen bruger dem.

Red Hat har efterhånden fjernet de skadelige versioner, og de kompromitterede udgivelser trækkes ud af npm. Den, der installerede dem i det ramte vindue, opfordres til at betragte hvert token, som bygget kunne se, som brændt og udskifte det. Offentliggørelsen kom i begyndelsen af juni, og oprydningen vil overleve overskrifterne. Det strukturelle problem vil overleve oprydningen: internettet samles, i høj fart, af millioner af små dele, der vedligeholdes af mennesker, vi aldrig møder, og i stigende grad af automatiske systemer, der kan kapres til at signere de dele på deres vegne.

Tags: , ,

Debat

Der er 0 kommentarer.