Skip to main content
  1. Concetti/

Supply Chain Attack - Hardware e Software

·6 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Mappa Globale
#

Cosa fa
#

Un supply chain attack compromette hardware o software prima che arrivi all'utente finale, inserendo una backdoor o malware durante la fase di produzione, build o distribuzione. La caratteristica chiave: la vittima installa qualcosa di apparentemente legittimo e ufficiale che e' gia' compromesso all'origine.

TL;DR
#

Invece di attaccare direttamente la vittima (che ha buone difese), l'attaccante attacca il fornitore (che puo' avere difese piu' deboli). Risultato: il codice malevolo arriva firmato digitalmente, da un sito ufficiale, con un certificato valido. I controlli di sicurezza tradizionali non lo rilevano perche' sembra legittimo in tutto e per tutto.


Perche' e' Pericoloso
#

Il supply chain attack inverte il modello di fiducia: normalmente si assume che il software scaricato dal sito ufficiale, firmato digitalmente, sia sicuro. Un supply chain attack rende questo assunto falso.

Caratteristiche che lo rendono devastante:

  • Scale: compromettere un fornitore di software usato da 18000 organizzazioni = 18000 vittime con un solo attacco
  • Fiducia: le vittime installano volentieri l'update "ufficiale"
  • Firma digitale: il codice malevolo e' firmato con il certificato legittimo del fornitore
  • Rilevamento difficile: l'antivirus vede un binario firmato da un vendor fidato
  • Dwell time lungo: SolarWinds non rilevato per 9 mesi

Casi Reali
#

SolarWinds Orion (2020)
#

SolarWinds Orion e' un tool di monitoring IT usato in ambienti enterprise e governativi. Tra ottobre 2019 e marzo 2020, il gruppo APT29 (Cozy Bear, attribuito a SVR Russia) ha compromesso la pipeline di build di SolarWinds.

flowchart LR
  APT[APT29
  Accesso alla build
  pipeline SolarWinds]
  BUILD[Build Orion 2020.2
  Codice malevolo SUNBURST
  iniettato prima della firma]
  SIGN[Firma digitale
  con certificato legittimo
  SolarWinds]
  DIST[Distribuzione
  tramite aggiornamento
  automatico ufficiale]
  VIC[18000 organizzazioni
  scaricano update
  "legittimo"]
  BACK[SUNBURST attivo
  C2 via DNS
  Lateral movement]

  APT --> BUILD --> SIGN --> DIST --> VIC --> BACK

Vittime notevoli: US Treasury, CISA (l'agenzia governativa per la cybersecurity), Microsoft, FireEye (scopri l'attacco per prima), molte Fortune 500.

SUNBURST: la backdoor era dormiente per 2 settimane dopo l'installazione (per eludere sandbox). Comunicava via DNS con server C2 usando un algoritmo DGA. Una volta attivata, permetteva esecuzione di comandi remoti e lateral movement.

Scoperta: FireEye si accorse che qualcuno usava le sue credenziali VPN da una seconda posizione. Investigando, trovo' il tool di monitoring compromesso.

Important

SolarWinds ha mostrato che anche le organizzazioni con security matura possono essere compromise via supply chain. Non e' una questione di "avere migliori difese" - e' un attacco al vettore di fiducia stesso.

3CX (2023)
#

3CX e' un sistema VoIP softphone usato da 600.000 aziende. A marzo 2023, il client desktop di 3CX disponibile per download sul sito ufficiale era compromesso con un infostealer.

Particolarita': era una supply chain attack su supply chain attack. Il vettore iniziale era una dipendenza compromessa inclusa nel trading software X_TRADER, che aveva infettato una macchina dello sviluppatore 3CX, che aveva poi contaminato la build pipeline di 3CX.

Attribuito a Lazarus Group (Nord Corea).

Typosquatting e Dependency Confusion (npm/PyPI)
#

Anche senza compromettere il vendor direttamente, esistono vettori piu' semplici:

AttaccoCome funzionaEsempio
TyposquattingPubblica un pacchetto con nome simile al legittimoreact-native legit, reactnative malevolo
Dependency ConfusionPubblica versione piu' alta di una dipendenza interna sui registri pubbliciIl package manager prende quella pubblica
Maintainer compromiseCompromette l'account npm del maintainerAggiunge payload al pacchetto legittimo
Event-stream attackAcquista un pacchetto popolare abbandonatoAggiunge codice malevolo alla release successiva

Vettori Hardware
#

Interdiction
#

L'interdiction e' l'intercettazione fisica di hardware durante la spedizione per modificarlo prima della consegna. Documentato in operazioni di intelligence (NSA COTTONMOUTH per router Cisco, rivelato da Snowden).

Backdoor Firmware
#

I firmware dei dispositivi di rete (router, switch, firewall) possono contenere backdoor inserite durante la produzione o tramite aggiornamenti firmware compromessi.

Supermicro Story (Bloomberg, 2018): Bloomberg ha pubblicato un articolo controverso su presunti chip microscopici inseriti nelle schede madri Supermicro durante la produzione in Cina, ritrovati da Amazon e Apple. Supermicro, Amazon e Apple hanno negato categoricamente. La storia rimane non verificata indipendentemente ma ha alzato la consapevolezza sul rischio.

USB e Removable Media
#

Dispositivi USB pre-infettati distribuiti (USB drop/baiting) o hardware con firmware malevolo che impersona una tastiera (USB HID attack - rubber ducky).


Difese
#

Lato Software
#

Code Signing: ogni build deve essere firmata con una chiave privata che solo il vendor possiede. Il client verifica la firma prima di installare. Il limite: se la chiave del vendor e' compromessa, la firma non protegge (SolarWinds aveva firma valida).

SBOM (Software Bill of Materials): inventario completo di tutte le dipendenze del software, con versioni esatte. Permette di rispondere rapidamente a "siamo vulnerabili a questa dipendenza compromessa?".

SCA (Software Composition Analysis): analisi automatica delle dipendenze per vulnerabilita' note.

# npm: audit automatico dipendenze
npm audit

# Composer (PHP): audit dipendenze
composer audit

# Python: safety check
pip install safety && safety check

Pinning delle dipendenze: usare lockfile (package-lock.json, composer.lock, Pipfile.lock) che fissano l'hash esatto di ogni dipendenza. Non basta la versione semver - serve l'hash SHA del pacchetto.

SLSA Framework (Supply chain Levels for Software Artifacts): framework Google per misurare la maturita' della supply chain security in 4 livelli, dall'assenza di garanzie (SLSA 0) alla protezione completa della build pipeline (SLSA 4).

Lato Hardware
#

TPM (Trusted Platform Module): chip dedicato che misura l'integrita' del firmware durante il boot (PCR - Platform Configuration Registers). Se il firmware e' stato modificato, il PCR non corrisponde e il sistema puo' rifiutarsi di proseguire.

Secure Boot: verifica la firma del bootloader e del kernel prima di eseguirli. Impedisce l'avvio di codice non firmato da una CA fidata.

Dev parallel: Come il composer.lock in un progetto PHP: non basta specificare "symfony/http-foundation": "^6.0" - quella specifica permette qualsiasi patch release 6.x. Il lockfile fissa l'hash SHA del pacchetto esatto che hai testato. La stessa logica vale per la supply chain: non basta "firma del vendor fidato" - serve "hash esatto del binario che abbiamo approvato". SolarWinds aveva firma valida - ma non avevano pinning dell'hash.


Scenario Reale
#

Un CISO riceve una notifica da CISA: SolarWinds Orion e' nella lista IoC dell'indagine SUNBURST. L'organizzazione usa Orion per il monitoring di 300 server. Azioni immediate: isolare tutti i sistemi con Orion installato dalla rete, bloccare le comunicazioni DNS verso i domini C2 noti, avviare threat hunting per evidenze di lateral movement avvenuto durante i mesi di dwell time. Lezione appresa: aggiungere Orion e altri tool di monitoring (che hanno accesso privilegiato a tutta l'infrastruttura) alla lista di software con review approfondita degli aggiornamenti prima del deploy.


Collegato a
#

  • kill-chain - supply chain attack spesso nella fase Delivery della kill chain
  • lateral-movement - SUNBURST ha permesso lateral movement massiccio post-compromise
  • tpm-hsm - TPM e Secure Boot come difese hardware
  • sast-dast - SCA (Software Composition Analysis) e' parte del tooling SAST
  • pki - code signing dipende da PKI per la firma dei binari

Related