Supply Chain Attack

Indice dei contenuti

    Un supply chain attack (attacco alla catena di fornitura) è una tecnica in cui l’attaccante non colpisce direttamente l’obiettivo finale, ma compromette un fornitore o componente a monte — un software di terze parti, una libreria open source, un aggiornamento firmware, un hardware — che l’obiettivo utilizza e si fida. Quando l’obiettivo installa l’aggiornamento o usa il componente compromesso, l’attaccante ottiene accesso all’interno del perimetro di sicurezza della vittima, che ha eseguito l’installazione volontariamente e con privilegi elevati. La scalabilità è il vantaggio chiave: compromettere un singolo fornitore con migliaia di clienti permette di colpire tutti contemporaneamente.

    Esempi emblematici

    SolarWinds (2020): l’APT russo APT29 ha inserito codice malevolo (SUNBURST) nel processo di build di SolarWinds Orion, una piattaforma di monitoraggio IT usata da 18.000 organizzazioni tra cui agenzie governative USA (Treasury, DHS, NSA). L’aggiornamento firmato e distribuito da SolarWinds ha installato una backdoor su tutti i clienti che lo hanno applicato. L’intrusione è rimasta non rilevata per mesi.

    XZ Utils (2024): un contributore malevolo ha guadagnato fiducia nella comunità open source nel corso di due anni per poi inserire una backdoor nella libreria di compressione xz-utils (versioni 5.6.0 e 5.6.1), usata da molte distribuzioni Linux. La backdoor era nel sistema di build (.m4 autoconf) e avrebbe compromesso il demone SSH di milioni di server. Scoperta per caso da un ingegnere Microsoft che notava latenze anomale in SSH.

    CCleaner (2017): il software di ottimizzazione CCleaner, usato da milioni di utenti, è stato compromesso durante il processo di build. La versione ufficiale firmata conteneva un dropper. Circa 2, 27 milioni di sistemi hanno scaricato la versione infetta.

    NotPetya (2017): il vettore di ingresso iniziale era un aggiornamento del software contabile ucraino M.E.Doc, obbligatorio per operare in Ucraina. Le aziende multinazionali che operavano in Ucraina hanno installato l’aggiornamento propagando il wiper a tutta la propria rete globale.

    Vettori di attacco

    • Compromissione del processo di build: iniezione di codice malevolo prima della firma del binario.
    • Dependency confusion / typosquatting: pubblicazione di pacchetti malevoli su registri pubblici (npm, PyPI) con nomi identici o simili a pacchetti interni privati.
    • Compromissione di repository: accesso non autorizzato al repository sorgente per modificare il codice.
    • Hardware implant: inserimento di componenti hardware modificati durante la produzione o il trasporto (ipotetico/documentato).
    • Account takeover di maintainer: compromissione dell’account di un maintainer di progetto open source per pubblicare aggiornamenti malevoli.

    Difese

    Software Bill of Materials (SBOM): catalogo delle dipendenze di un software, che permette di identificare rapidamente i componenti vulnerabili quando emerge una nuova CVE.

    Firma crittografica e verifica: firma degli artefatti di build con chiavi controllate, verifica della firma prima dell’installazione. Standard come Sigstore e SLSA (Supply Chain Levels for Software Artifacts) formalizzano questo processo.

    Reproducible builds: il processo di build è deterministico e verificabile indipendentemente: due build dallo stesso sorgente producono byte identici, rendendo rilevabile l’iniezione nel processo di compilazione.

    Vendor security assessment: valutazione delle pratiche di sicurezza dei fornitori prima dell’adozione, inclusi penetration test e audit del processo di sviluppo.

    Principio del minimo privilegio per le dipendenze: network policies che limitano cosa un componente di terze parti può fare a runtime (accesso di rete, filesystem).

    Ultimo aggiornamento: