Teknik

Skadlig kod gömdes i Red Hats npm-paket och spreds av sig själv

Susan Hill

Under en tid arbetade några av de programvarubitar som skickas ut under Red Hats namn i tysthet mot dem som installerade dem. Inuti fler än 30 paket i företagets offentliga samling @redhat-cloud-services låg ett litet skript, redo att starta i samma stund som en utvecklare installerade något av dem. Det var inställt som ett så kallat preinstall-steg, en av de automatiska uppgifter som verktyget npm kör på egen hand, innan en enda rad av den riktiga programvaran läses in. Dess uppgift var att hitta lösenord och sedan sprida sig.

Red Hat bygger inte appar som de flesta öppnar vid namn, men dess kod ligger under en enorm del av det de använder varje dag: molnpanelerna som en bank loggar in i, systemen som sjukhus och myndigheter körs på, verktygen som andra företag bygger sina egna produkter med. När kod med den etiketten blir fientlig är spridningsradien inte en app. Det är allt som monterats ovanpå.

Det gömda skriptet gav sig ut på jakt efter nycklarna som låser upp modern databehandling. Enligt säkerhetsföretaget StepSecurity, som först uppmärksammade paketen, samlade det in åtkomsttokens för Amazon Web Services, Google Cloud, Microsoft Azure, Kubernetes, HashiCorp Vault, npm självt och automationstjänsten CircleCI, plus hemligheterna som lagras inuti GitHubs byggkedjor. För att nå dem läste det det råa minnet i den pågående byggprocessen, ett knep som slinker förbi skydden som ska hålla hemligheter borta från loggarna.

Det som förvandlar en vanlig datastöld till något närmare ett utbrott är vad koden gjorde härnäst. Med stulna npm-publiceringstokens försökte den ladda upp nyss bakdörrsförsedda versioner av alla andra paket som det kapade kontot kom åt, med hjälp av en inställning som viftar bort tvåstegskontrollen som annars står i vägen. En stöld som kopierar sig själv stannar inte hos sina första offer. Den färdas längs samma förtroende som hela systemet vilar på.

På utvecklarnas egna datorer nådde lasten längre: den lade instruktioner i Visual Studio Codes uppgiftsinställningar och i konfigurationen för Claude Code, AI-programmeringsassistenten, för att fortsätta köra långt efter att installationen var klar. De som mest sannolikt hämtar dessa paket, ingenjörerna som underhåller allas andras programvara, var också de vars bärbara datorer blev en ingång.

Den mest obekväma detaljen är var de dåliga versionerna kom ifrån. Red Hats utvecklare, som erkände problemet i projektets offentliga ärendespårare, och forskarna som tog isär koden är överens: de förgiftade versionerna gick ut genom Red Hats egen automatiska publiceringskedja, maskineriet som tar kod ur företagets kodförråd och skickar ut den i världen. Angriparna utgav sig inte för att vara Red Hat. Under en tid kunde de publicera som Red Hat. Förtroendets sigill och det man litade på gled isär.

Det är inte första gången leveranskedjan för öppen källkod görs om till en leveransväg. Förgiftade webbläsartillägg och kapade utvecklarkonton har dykt upp gång på gång under våren, alla med samma vana som hävstång: modern programvara limmas ihop av tusentals gratiskomponenter som ingen skriver från grunden. Det som gör det här fallet tyngre är namnet på lådan. Hela poängen med att hämta kod från en leverantör som Red Hat, snarare än en anonym bidragsgivare, är att namnet ska vara garantin.

Det är värt att tydligt säga vad incidenten inte betyder. Hittills finns inga tecken på att vanliga användares enheter har infekterats, eller att Red Hats betalda företagsprodukter och kundernas produktionssystem har brutits in i. De skadliga versionerna siktade på utvecklingens röriga mitt, de automatiska byggservrarna och ingenjörernas maskiner, och många av de drabbade paketen är gränssnitts- och utvecklarverktyg, inte kärnan i någon tjänst i drift. Bilden rör sig dessutom fortfarande, och det exakta antalet smittade paket har förskjutits medan Red Hat och externa forskare går igenom listan. Skadan som betyder mest, de stulna inloggningsuppgifterna, förblir osynlig tills någon använder dem.

Red Hat har efter hand tagit bort de skadliga versionerna, och de komprometterade publiceringarna dras tillbaka från npm. Den som installerade dem under det drabbade fönstret uppmanas att betrakta varje token som bygget kunde se som bränd och att byta ut den. Avslöjandet kom i början av juni, och städningen kommer att överleva rubrikerna. Det strukturella problemet kommer att överleva städningen: internet sätts ihop, i hög fart, av miljontals små delar som underhålls av människor vi aldrig kommer att möta, och allt oftare av automatiska system som kan kapas för att signera de delarna åt dem.

Taggar: , ,

Diskussion

Det finns 0 kommentarer.