Cybersicurezza

Codice malevolo nei pacchetti di Red Hat si copiava da solo per rubare chiavi

Susan Hill

Per un certo periodo alcuni dei mattoni software distribuiti con il nome di Red Hat hanno lavorato in silenzio contro chi li installava. Dentro più di 30 pacchetti della raccolta pubblica @redhat-cloud-services dell’azienda c’era un piccolo script pronto a partire nell’istante in cui uno sviluppatore ne installava uno qualsiasi. Era impostato come un passo preinstall, uno di quei compiti automatici che lo strumento npm esegue da sé, prima che venga caricata una sola riga del software vero. Il suo compito era trovare le password e poi diffondersi.

Red Hat non realizza app che la maggior parte delle persone apre per nome, ma il suo codice sta sotto a una parte enorme di ciò che usano ogni giorno: i pannelli nel cloud da cui entra una banca, i sistemi su cui girano ospedali e amministrazioni pubbliche, gli strumenti con cui altre aziende costruiscono i propri prodotti. Quando un codice con quell’etichetta diventa ostile, il raggio d’impatto non è un’app. È tutto ciò che vi è stato montato sopra.

Lo script nascosto è andato a caccia delle chiavi che aprono l’informatica moderna. Secondo la società di sicurezza StepSecurity, la prima a segnalare i pacchetti, ha raccolto token di accesso per Amazon Web Services, Google Cloud, Microsoft Azure, Kubernetes, HashiCorp Vault, npm stesso e il servizio di automazione CircleCI, oltre ai segreti custoditi dentro le catene di compilazione di GitHub. Per arrivarci leggeva la memoria grezza del processo di compilazione in corso, un trucco che scivola oltre le protezioni pensate per tenere i segreti fuori dai registri.

Ciò che trasforma un furto di dati ordinario in qualcosa di più simile a un’epidemia è ciò che il codice faceva dopo. Con i token di pubblicazione npm rubati, tentava di caricare versioni appena manomesse di qualunque altro pacchetto a cui l’account dirottato potesse arrivare, sfruttando un’impostazione che mette da parte la verifica in due passaggi che di norma sbarrerebbe la strada. Un furto che si copia non resta alle prime vittime. Viaggia lungo la stessa fiducia su cui poggia l’intero sistema.

Sulle macchine degli sviluppatori stessi il carico si spingeva oltre: lasciava istruzioni dentro le impostazioni delle attività di Visual Studio Code e nella configurazione di Claude Code, l’assistente di programmazione con intelligenza artificiale, per continuare a girare molto dopo la fine dell’installazione. Proprio chi installa più spesso questi pacchetti, gli ingegneri che mantengono il software di tutti gli altri, era anche chi vedeva il proprio portatile diventare una porta d’ingresso.

Il dettaglio più scomodo è da dove venivano le versioni cattive. Gli sviluppatori di Red Hat, che hanno ammesso il problema nel repository pubblico del progetto, e i ricercatori che hanno smontato il codice concordano: le versioni avvelenate sono uscite dalla stessa catena di pubblicazione automatica di Red Hat, il macchinario che prende il codice dai repository e lo manda nel mondo. Gli attaccanti non si sono spacciati per Red Hat. Per un certo tempo hanno potuto pubblicare come Red Hat. Il sigillo della fiducia e ciò di cui ci si fidava si sono separati.

Non è la prima volta che la catena di fornitura del software libero si trasforma in una rotta di consegna. Estensioni del browser manomesse e account di sviluppatori dirottati sono riemersi più volte durante la primavera, tutti sfruttando la stessa abitudine: il software moderno si assembla a partire da migliaia di componenti gratuiti che nessuno scrive da zero. Ciò che rende questo caso più pesante è il nome sulla scatola. Tutta la ragione per prendere codice da un fornitore come Red Hat, e non da un collaboratore anonimo, è che quel nome dovrebbe essere la garanzia.

Vale la pena dire con chiarezza che cosa l’incidente non significa. Finora non ci sono segni che siano stati infettati i dispositivi degli utenti comuni, né che siano stati violati i prodotti aziendali a pagamento di Red Hat e i sistemi in produzione dei suoi clienti. Le versioni malevole hanno preso di mira la zona disordinata dello sviluppo, i server di compilazione automatici e le macchine degli ingegneri, e molti dei pacchetti colpiti sono strumenti d’interfaccia e di sviluppo, non il cuore di alcun servizio attivo. Il quadro è inoltre ancora in movimento, e il numero esatto di pacchetti contaminati si è spostato man mano che Red Hat e i ricercatori esterni scorrono la lista. Il danno che conta di più, le credenziali rubate, resta invisibile finché qualcuno non le usa.

Red Hat ha via via rimosso le versioni malevole, e le pubblicazioni compromesse vengono ritirate da npm. A chi le ha installate nella finestra colpita si chiede di considerare bruciato ogni token che la compilazione poteva vedere e di rinnovarlo. La divulgazione è arrivata all’inizio di giugno, e la pulizia durerà più dei titoli. Il problema strutturale durerà più della pulizia: internet si assembla, ad alta velocità, da milioni di piccole parti curate da persone che non conosceremo mai e, sempre più, da sistemi automatici che si possono dirottare perché firmino quelle parti al posto loro.

Tag: , , ,

Discussione

Ci sono 0 commenti.