Un pezzo della sua catena di fornitura digitale può cambiare proprietario senza che cambi una riga di codice. Il dominio si risolve allo stesso modo. Lo script ha lo stesso hash. Il traffico sembra identico, perché è identico. Ciò che è cambiato è chi decide che cosa quel componente farà in seguito, e nulla di quella decisione è visibile in un’acquisizione di rete.
La compromissione, quando arriva, arriva mesi o anni dopo attraverso un canale che era già ritenuto affidabile. E la domanda che l’avrebbe intercettata non è mai stata una domanda tecnica. Era chi lo ha comprato, quando e da chi.
Il meccanismo

Ognuno di questi trasferimenti è registrato su carta, da qualche parte

Ognuno lascia da qualche parte un registro documentato. Un atto di vendita, un’iscrizione in un registro, una modifica dei permessi, un fascicolo del personale. Nessuno di essi produce un pacchetto, un avviso o un hash diverso, ed è esattamente per questo che il monitoraggio che li intercetterebbe non risiede sulla rete.

01

L’asset viene comprato
Un dominio, un repository, un pacchetto, un’estensione o l’azienda che sta dietro a uno di essi passa di mano. La base installata e la fiducia accumulata sono spesso il senso dell’acquisto, anziché una sua parte accessoria. I ricercatori descrivono oggi l’acquisizione di estensioni del browser affermate proprio per i loro utenti esistenti come un modello di business stabile, anziché come una serie di episodi isolati.

02

I diritti di pubblicazione vengono ceduti
A un manutentore non retribuito di un pacchetto da cui dipendono migliaia di organizzazioni viene offerto aiuto da uno sconosciuto, e lo accetta. Sui principali registri questo non richiede alcuna verifica dell’identità del soggetto entrante oltre al controllo di un indirizzo e-mail, alcun periodo di attesa e alcuna comunicazione a chi sta a valle. È un unico comando.

03

La fiducia viene coltivata
Un’identità contribuisce con lavoro reale e utile per mesi o anni, viene promossa per merito e si trova poi nella posizione di distribuire ciò che vuole. Non c’è alcun passaggio fraudolento da rilevare lungo il percorso, perché ogni passaggio è autentico fino all’ultimo. Quando il manutentore in carica è sotto pressione, una campagna coordinata di voci apparentemente indipendenti che spingono per un co-manutentore accelera il processo.

04

Cambiano le persone all’interno
Lo sviluppatore con diritti di commit, il collaboratore con accesso al rilascio, l’amministratore presso un fornitore tre livelli più in basso. Nulla del loro accesso cambia, perché il loro accesso è sempre stato legittimo. Ciò che cambia sono le loro circostanze, il loro datore di lavoro, i loro incentivi o chi ha potere di pressione su di loro, e nulla di questo è osservabile dall’esterno dell’organizzazione che li impiega.
Fuori dalla rete

I registri che contano si trovano fuori dalla rete

Ogni meccanismo descritto in questa pagina produce un registro. Le aziende si iscrivono e depositano atti. I domini vengono trasferiti, e i registrar lo annotano. I cambiamenti di proprietà di repository e registri sono scritti negli elenchi dei membri e nei metadati dei pacchetti. I programmi di root richiedono la comunicazione esattamente di questo tipo di cambiamento. Le sanzioni e i provvedimenti nominano i soggetti. Nulla di tutto questo è segreto. Tutto si trova fuori dalla rete che un team di sicurezza monitora, in fonti che nessuno ha stabilito che sia compito di qualcuno leggere.
È per questo che la sola osservazione non è sufficiente, e per questo che questo metodo non si ferma a ciò che un’applicazione contatta. Un’acquisizione stabilisce quali soggetti si trovano all’interno del suo confine di fiducia. Risolvere quei soggetti in aziende e proprietari è ciò che rende possibile accorgersi, in seguito, che uno di essi non è più l’azienda che lei aveva valutato. Le due metà non sono alternative.
Anche i dati di registrazione sono peggiorati in modo sensibile come fonte. Entro il 2024 circa l’89% dei domini generici di primo livello non riportava alcun intestatario identificabile nei registri pubblici, contro circa il 24% prima che le regole sulla riservatezza cambiassero. Il registro di un trasferimento esiste ancora. Si è semplicemente allontanato da chiunque potrebbe agire di conseguenza, e questo alza il costo del guardare e abbassa la probabilità che qualcuno lo faccia.
Il ritardo

Prima che qualcuno se ne accorgesse

Una catena societaria ricostruita verso l’alto da una singola azienda attraverso società holding stratificate e investitori opachi in più giurisdizioni, fino alle persone che stanno dietro di essi.
Risolvere un fornitore nei soggetti che stanno dietro di esso è ciò che rende visibile un successivo cambiamento in quei soggetti. Leggere la Mappatura della Catena Societaria.
In pratica

Ognuno di questi registri cambia con un orologio diverso

L’elenco dei publisher di un pacchetto cambia nell’istante in cui il comando viene eseguito. Il registro di un registrar cambia il giorno in cui il trasferimento si completa. Un atto societario può richiedere settimane per comparire, e una designazione sanzionatoria arriva quando arriva. Osservare tutti e quattro è ciò che rende utile il più rapido di essi.
Eventi societari
Acquisizioni, cambiamenti del controllo iscritto, nuovi atti depositati, cambiamenti degli amministratori o della sede legale, insolvenza e l’arrivo di un investitore i cui interessi differiscono da quelli che lei aveva valutato. L’azienda che ha autorizzato non è sempre l’azienda che continua a operare con quel nome.
Trasferimento di domini e infrastruttura
Cambiamenti di registrar e di nameserver, spostamenti di hosting e di distribuzione, cambiamenti degli emittenti dei certificati e spazi di indirizzamento che passano di mano. Singolarmente banali, e nel loro insieme l’indicazione precoce più chiara che qualcosa di un fornitore si è mosso.
Controllo di repository e registri
Cambiamenti di proprietà e di manutentore su pacchetti e repository da cui la catena dipende realmente, nuovi publisher che compaiono su un pacchetto affermato e cambiamenti improvvisi in chi firma un rilascio. Il registro è pubblico. Quasi nessuno, a valle, lo legge.
Reputazione e provvedimenti
Designazioni sanzionatorie, provvedimenti, contenzioso, decisioni di esclusione dai programmi di root e notizie sfavorevoli su qualsiasi soggetto della catena, anziché soltanto sul fornitore con cui ha stipulato il contratto. L’esposizione si eredita da ogni livello, e lo stesso vale per il discredito.
L’intervallo

Otto di quei trasferimenti, misurati dal giorno in cui il controllo si è spostato

Due settimane per Nano Adblocker. Ventotto mesi per xz-utils. L’intervallo non è una funzione di quanto sia grande il componente, di quante persone ne dipendano o della cura con cui è stato scelto. È una funzione di quanto tempo è passato prima che qualcuno guardasse.
Otto casi documentati disegnati come barre orizzontali su una scala di mesi a partire dal momento in cui il controllo di un componente è passato di mano. Particle e Nano Adblocker entro pochi giorni, event-stream due mesi, Polyfill.io quattro, The Great Suspender cinque, WoSign e StartCom dodici, Stylish diciotto e xz-utils ventotto.
Il registro

Tredici anni dello stesso fallimento arrivato per sei vie diverse

Venti eventi in ordine di data, su sei vie di ingresso. Tre di essi sono trasferimenti di controllo, e sono quelli che non hanno lasciato alcuna traccia tecnica nel momento in cui sono avvenuti. Gli altri sono qui perché la stessa cosa vale per il soggetto che porta l’esposizione: non è quasi mai il soggetto che ha fallito.
Una cronologia da sinistra a destra dal 2013 al 2026, con un asse degli anni in alto e in basso e venti eventi disegnati come barre di durata su sei fasce: canale di build o di aggiornamento, proprietà o controllo trasferiti, account di manutenzione o di pubblicazione, script di terze parti su una pagina attiva, piattaforma o servizio gestito, e un componente che tutti incorporano.
Target, 2013
Gli aggressori sono entrati con credenziali rilasciate a un installatore di impianti di refrigerazione e HVAC che disponeva di accesso remoto alla rete di Target, e da lì si sono spostati verso i sistemi di pagamento. Sono stati sottratti circa 40 milioni di record di carte e 70 milioni di record di clienti. Il fornitore non aveva alcun ruolo nei pagamenti e nessuna ragione per trovarsi vicino a essi.
WoSign e StartCom, 2015
Un’autorità di certificazione ne ha acquisita silenziosamente un’altra e non lo ha comunicato, in violazione delle regole dei programmi di root dei browser che richiedono esattamente quella comunicazione. Ne sono seguiti certificati retrodatati ed emissioni irregolari. Mozilla, Google e Apple hanno revocato la fiducia in entrambe, trattando il cambiamento di controllo occultato come la violazione principale.
left-pad, 2016
Un autore ha rimosso dal registro pubblico un pacchetto di undici righe dopo una controversia sul nome, e in poche ore migliaia di build si sono interrotte in tutto il mondo. Nulla è stato compromesso e nessuno è stato attaccato. Ha dimostrato che un componente che nessuno aveva scelto deliberatamente poteva comunque fermare una grande quantità di lavoro.
M.E.Doc e NotPetya, 2017
Il canale di aggiornamento di un prodotto ucraino di contabilità fiscale è stato usato per distribuire malware distruttivo a ogni organizzazione che lo utilizzava, e da lì si è diffuso attraverso le reti collegate. Merck e Maersk sono state tra le aziende le cui attività si sono fermate per settimane. La richiesta di indennizzo assicurativo di Merck per la perdita è arrivata a circa 1,4 miliardi di dollari e ha richiesto anni di contenzioso per essere definita.
CCleaner, 2017
Una build con backdoor di un’utilità molto diffusa è stata firmata con il certificato del fornitore stesso e distribuita attraverso l’infrastruttura di download del fornitore stesso. Circa 2,27 milioni di utenti l’hanno installata prima che la compromissione fosse individuata. Il fornitore era stato acquisito poco tempo prima, ma le prove indicano un’intrusione nell’ambiente di build anziché l’operazione societaria.
Ticketmaster e Inbenta, 2018
Uno script di chatbot fornito da una terza parte veniva eseguito sulle pagine di pagamento. È stata compromessa l’infrastruttura del fornitore anziché quella del rivenditore, e sono stati coinvolti fino a nove milioni di clienti. L’autorità di vigilanza ha sanzionato il rivenditore, che ha contestato la responsabilità per uno script che non aveva scritto.
British Airways, 2018
Ventidue righe di script sono state aggiunte a codice ospitato dalla compagnia aerea stessa, e in tre settimane sono stati sottratti i dati di pagamento di circa 429.000 persone. Si è trattato di una compromissione di prima parte realizzata con le stesse tecniche, non del cedimento di un fornitore terzo, e i due casi vengono spesso e a torto raggruppati insieme. L’autorità di vigilanza ha sanzionato la compagnia aerea per 20 milioni di sterline.
event-stream, 2018
Un manutentore che si era fatto da parte da un pacchetto scaricato milioni di volte a settimana è stato contattato da uno sconosciuto che offriva aiuto, e gli ha concesso i diritti di pubblicazione. Due mesi dopo, una dipendenza aggiunta dal nuovo manutentore portava un payload rivolto a un portafoglio di criptovalute specifico. È stato individuato tre mesi più tardi, da uno sviluppatore che leggeva il codice.
Stylish, 2017
Un’estensione del browser con circa due milioni di utenti è stata acquisita da una società di analytics nel 2017. Diciotto mesi dopo un ricercatore ha documentato che inviava al nuovo proprietario l’intera cronologia di navigazione di tutti coloro che l’avevano installata. Sia Chrome sia Firefox l’hanno rimossa entro pochi giorni dalla segnalazione.
Nano Adblocker, 2020
Lo sviluppatore di due estensioni per il blocco della pubblicità le ha vendute nell’ottobre 2020 e all’epoca lo ha dichiarato pubblicamente. In circa due settimane i nuovi proprietari avevano distribuito un aggiornamento che raccoglieva dati degli utenti, e le estensioni sono state ritirate. Dove l’intervallo di Polyfill.io è stato di quattro mesi e quello di xz-utils di ventotto, questo è stato di due settimane.
ASUS, 2019
Un’utilità di aggiornamento del produttore, firmata correttamente e servita dai server del produttore stesso, ha consegnato una backdoor a un gran numero di macchine. I ricercatori hanno scoperto che il payload confrontava ogni macchina con un elenco di alcune centinaia di indirizzi di rete incorporato nel codice, e non faceva nulla su tutte le altre. La distribuzione di massa era il mezzo di consegna per un numero molto ridotto di obiettivi voluti.
SolarWinds, 2020
Gli aggressori hanno raggiunto la pipeline di build di un prodotto per la gestione delle reti e hanno inserito codice in un rilascio firmato. Si ritiene che meno di 18.000 clienti abbiano installato la versione interessata, e un numero molto più ridotto è stato perseguito oltre. È stato individuato da un’azienda di sicurezza che indagava su un’intrusione nei propri sistemi, non da un cliente.
The Great Suspender, 2020
Un’estensione del browser con più di due milioni di installazioni è stata venduta dal suo sviluppatore a un acquirente la cui identità non è stata comunicata. Le funzionalità non sono cambiate e nessun aggiornamento è sembrato insolito. Un comportamento malevolo è comparso cinque mesi dopo, e l’estensione è stata rimossa e disattivata a distanza sulle macchine degli utenti nel febbraio successivo.
Kaseya, 2021
Un ransomware è stato distribuito attraverso la piattaforma di gestione remota che i fornitori di servizi gestiti usano per amministrare i propri clienti. Sono state coinvolte fino a circa 1.500 imprese a valle, la maggior parte delle quali non aveva mai sentito parlare della piattaforma. Sono state esposte attraverso gli strumenti del proprio fornitore, anziché attraverso qualcosa che gestivano loro stesse.
Log4Shell, 2021
Un difetto in una libreria Java per la registrazione dei log, presente in un numero enorme di applicazioni, è diventato banalmente sfruttabile, e le organizzazioni hanno passato settimane a cercare di stabilire dove quella libreria si trovasse. La maggior parte non è stata in grado di rispondere rapidamente. La corsa non riguardava tanto il difetto quanto l’assenza di qualsiasi inventario con cui verificarlo.
3CX, 2023
Un dipendente ha installato su una macchina personale una copia con trojan di un software di trading non correlato. Gli aggressori hanno usato le credenziali ottenute lì per raggiungere l’ambiente di build dell’azienda e inserire un trojan nella sua applicazione desktop, che contava oltre 600.000 organizzazioni clienti. È il caso documentato più chiaro di una compromissione della catena di fornitura usata per predisporne un’altra.
MOVEit, 2023
Un difetto in un prodotto per il trasferimento gestito di file è stato usato per estrarre dati dalle organizzazioni che lo utilizzavano e dalle molte altre i cui dati quelle organizzazioni detenevano. Chi ne ha tenuto il conto ha registrato ben oltre 2.000 organizzazioni interessate e decine di milioni di persone. Una quota elevata di quelle persone non aveva alcun rapporto con il software né con le aziende che lo gestivano.
xz-utils, dal 2021 al 2024
Un’identità ha dato il suo primo contributo ordinario a una libreria di compressione fondamentale nell’ottobre 2021, ha ricevuto un ruolo più ampio a metà del 2022 dopo una campagna prolungata di voci apparentemente non collegate che spingevano l’unico manutentore ad accettare aiuto, e ha inserito una backdoor negli script di build nel febbraio 2024. Sono passati ventotto mesi senza alcun passaggio fraudolento da rilevare, perché ogni passaggio è stato autentico fino all’ultimo. È stato individuato per caso, da un ingegnere che indagava su un problema di prestazioni non correlato, e aveva raggiunto le distribuzioni di test e a rilascio continuo, non i rilasci stabili.
Polyfill.io, 2024
Un servizio di script molto diffuso ha visto il proprio dominio e il proprio repository venduti nel febbraio 2024 a una società registrata in Cina, e gli sviluppatori hanno sollevato il cambiamento in una segnalazione pubblica sul repository nello stesso mese. Reindirizzamenti malevoli sono stati documentati in modo indipendente a fine giugno, con effetti su più di 100.000 siti. L’acquirente è stato sanzionato dal Dipartimento del Tesoro degli Stati Uniti nel maggio 2025 per un’operazione fraudolenta non correlata.
CrowdStrike, 2024
Un aggiornamento difettoso dei contenuti di un agente di sicurezza ha impedito l’avvio a circa 8,5 milioni di macchine Windows, secondo Microsoft. Nulla è stato compromesso e nessuno ha attaccato nulla. Compagnie aeree, ospedali e banche hanno smesso di funzionare perché dipendevano tutti dallo stesso componente, ed è questo l’aspetto della concentrazione quando cede per caso.
tj-actions, 2025
Un token di accesso rubato è stato usato per riscrivere le etichette di versione di un’azione di integrazione continua molto diffusa, così che puntassero a codice che stampava i segreti di build in log leggibili pubblicamente. Circa 23.000 repository facevano riferimento a quell’azione. Il token era stato ottenuto alcuni mesi prima attraverso un progetto non correlato.
Shai-Hulud, 2025
Credenziali di pubblicazione rubate sono state usate per aggiungere codice ai rilasci di alcuni pacchetti, codice che raccoglieva poi credenziali dalle macchine che li installavano e le usava per pubblicare ulteriori rilasci interessati. È il primo caso documentato di compromissione autopropagante in un importante registro di pacchetti. Nella prima ondata sono stati coinvolti più di cento pacchetti.

Una valutazione scade nel momento in cui la proprietà si sposta

È questo l’argomento a favore del risolvere i soggetti in primo luogo, e del leggere i registri in seguito. Il metodo che produce la mappa, e ciò che una singola sessione stabilisce, sono l’oggetto della pagina successiva.