Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

Stuxnet: il malware che fece conoscere al mondo la guerra cibernetica

Massimiliano Brolli : 9 Dicembre 2021 21:29

Stuxnet è da tutti riconosciuto come il malware per eccellenza, quello che ha fatto conoscere al mondo la guerra informatica, dove pagine e pagine si sono scritte e ancora se ne scriveranno su questo prodigio della tecnica, delle intelligence e della guerra cibernetica.

In questo articolo vogliamo scattare una diapositiva e cercare di ricostruire una storia, partendo dalle fonti pubbliche, facendo comprendere il funzionamento del malware stesso, oltre che descrivere le motivazioni e gli eventi intercorsi nell’estate del 2010.

Cosa è Stuxnet

Il worm Stuxnet è apparso per la prima volta durante l’estate del 2010. Si tratta di un worm informatico dal peso di soli 500 kilobyte che si è infiltrato in numerosi sistemi informatici. Questo worm ha operato in tre fasi. Innanzitutto, ha analizzato e preso di mira reti Windows e sistemi informatici e successivamente si è diffuso all’interno della rete informatica per poi colpire i sistemi per il quale era stato progettato. Le centrifughe di arricchimento dell’Uranio, gestite dai Programmable logic controller (PLC).

Il worm, una volta infiltrato in queste macchine, ha iniziato a replicarsi infiltrandosi all’interno del software Siemens Step7 basato su Windows. Questo sistema software della Siemens era e continua ad essere un software diffuso all’interno delle reti informatiche industriali, come ad esempio gli impianti di arricchimento dell’uranio.


Schema logico del software Step7 di Siemens

Compromettendo il software Step7, il worm ha avuto accesso ai Programmable logic controller (PLC) e questo passaggio finale ha permesso al worm di manipolare informazioni industriali cruciali, oltre ad acquisire la capacità di utilizzare diversi macchinari nei singoli siti industriali.

Il processo di replica è ciò che ha reso il worm così diffuso. Era così invasivo che se una chiavetta USB fosse stata collegata ad un sistema informatico dove era presente al suo interno, il worm si sarebbe spostato dal dispositivo USB e avrebbe iniziato a diffondersi su tutti i successivi sistemi informatici a cui l’USB era stata collegata, come all’interno delle reti Air Gap, ovvero quelle reti isolate che non possono essere raggiunte da internet.

Target: il programma nucleare iraniano

Una volta avviato il malware, più di quindici strutture iraniane sono state attaccate e infettate dal worm Stuxnet. Si ritiene che questo attacco sia stato avviato dall’unità USB di un lavoratore all’interno della centrale.

Uno degli impianti industriali interessati era l’impianto nucleare di Natanz. Gli ispettori dell’Agenzia internazionale per l’energia atomica hanno visitato l’impianto di Natanz e hanno osservato che uno strano numero di centrifughe per l’arricchimento dell’uranio si stava rompendo. La causa di questi fallimenti era sconosciuta all’epoca.

Più tardi, nel 2010, i tecnici iraniani hanno incaricato degli specialisti di sicurezza informatica in Bielorussia di esaminare i loro sistemi informatici. Questa società di sicurezza alla fine ha scoperto più file dannosi sui sistemi informatici iraniani. Successivamente ha rivelato che questi file dannosi erano il worm Stuxnet.


Sito della centrale nucleare iraniana di Natanz

Sebbene l’Iran non abbia rilasciato dettagli specifici sugli effetti dell’attacco, attualmente si stima che il worm Stuxnet abbia distrutto 984 centrifughe per l’arricchimento dell’uranio. Secondo le stime attuali, ciò rappresentava una diminuzione del 30% dell’efficienza di arricchimento nucleare e quindi un duro colpo per il programma nucleare iraniano.

Le capacità di Stuxnet

Il virus Stuxnet aveva due componenti tecnologici principali: uno era il worm informatico che distribuiva il malware sulle reti Microsoft Windows e un altro era il payload che penetrava negli host Windows e quindi azionava i PLC Siemens. Il componente worm ha utilizzato 4 exploit 0-day per propagare il virus al interno delle reti:

  • USB : il virus si è copiato come file .LNK appositamente predisposti dai dispositivi USB collegati sul computer locale. I file .LNK sfruttavano una vulnerabilità per i collegamenti di esecuzione dei file LNK di Microsoft Windows (CVE-2010–2568) che eseguivano automaticamente il virus quando Esplora risorse o altri strumenti visivi di Windows esploravano i contenuti del dispositivo USB sulla macchina. Tenete presente che la disabilitazione di AutoRun e AutoPlay per dispositivi USB, avrebbe lasciato i sistemi vulnerabili a questo attacco. Gli esperti ritengono che sia stata una chiavetta USB infetta data a un operatore all’interno della struttura iraniana attraverso l’ingegneria sociale o utilizzata da un insider a propagare l’infezione. Questo ha consentito sdi superare le difese della rete “air gap” poiché molti dei siti industriali che eseguono software Siemens, inclusi i siti nucleari sono disconnessi da Internet.
  • Rete locale : il virus poteva sfruttare richieste specifiche che avrebbero attivato l’esecuzione di codice remoto sull’host locale chiamando Microsoft Windows Print Spooler Server (CVE-2010–2779) o Microsoft Windows RPC Server (CVE-2008–4250). Pertanto il worm poteva effettuare copie di se stesso nelle cartelle di rete condivise sul computer locale utilizzando utenti locali trovati sul computer o sul dominio.
  • Siemens : il virus una volta nella rete, cercava il software Siemens SIMATIC Step7 (file .s7p) sul sistema infetto. Qualora identificato copiava nelle cartelle e modificava i file di indice principale. Queste cartelle di progetto venivano spesso copiate manualmente tra macchine Windows collegate agli stessi PLC Siemens operanti in una struttura specifica.

Installazione e persistenza

Una volta che Stuxnet era all’interno di una macchina, aumentava i suoi privilegi da un amministratore locale a SYSTEM utilizzando altri 2 exploit 0-day nell’Utilità di pianificazione di Windows (CVE-2010–3888) o un altro nel layout della tastiera di Windows Win32 (CVE-2010–2743) e quindi installava un rootkit a livello di driver hardware (mrxnet.sys, mrxcls.sys) nascosti dietro un certificato digitale rubato (inizialmente da Realtek, poi JMicro) per spacciarsi per software legittimo ed eludere il rilevamento da parte del software antivirus tradizionale basato su firme elettroniche.

Dopo l’installazione del driver, il virus imposta le voci del registro di Windows (HKLM\System\CurrentControlSet\Services\MRXCLS e MRXNET) in modo che i due driver vengano avviati come servizi di sistema.

Stuxnet avvia quindi il proprio server RPC (Remote Procedure Call) e ascolta le connessioni in entrata da altri computer infetti sulla stessa rete locale. Il server RPC ha un GUID fisso che consente ai peer Stuxnet di identificarsi, comunicare e aggiornarsi a vicenda, consentendogli di propagare gli aggiornamenti anche se non possono raggiungere il server di comando e controllo esterno a causa di un firewall o della mancanza di connettività Internet.


Manifest DLL di Stuxnet. Fonte Symantec

Un aspetto notevole del rootkit è che quando deve caricare una DLL inclusa se stessa, utilizza un meccanismo speciale progettato per aggirare le tipiche tecnologie di blocco del comportamento e rilevamento delle intrusioni che monitorano attivamente le chiamate al metodo Windows LoadLibrary.

Stuxnet chiama LoadLibrary con nomi di file specifici che non esistono su disco e sono invece mappati su aree di memoria in cui il codice DLL è già stato decrittografato e archiviato dal rootkit in precedenza. Stuxnet ottiene ciò collegandosi al NTDLL.DLL del kernel di Windows, intercettando i comandi e iniettando codice in processi del sistema operativo attendibili già in esecuzione come lsass.exe, svchosts.exe e services.exe, nonché programmi di sicurezza come avp.exe ( Kaspersky), mcshield.exe (McAfee), rtvscan.exe (Symantec) e altri.

Una volta installato come servizio sul computer, Stuxnet cerca sul computer locale il software Siemens SIMATIC Step7 cercando nella cartella di sistema di Windows il file S7OTBXDX.DLL. Una volta trovato, rinomina il file in S7OTBXSX.DLL e quindi lo sostituisce con una versione modificata che ha le stesse chiamate DLL dell’originale ma con modifiche al codice per più di una dozzina di funzioni critiche relative all’accesso, lettura, scrittura e cancellazione di blocchi del codice sul PLC.

Stuxnet eseguirà istruzioni aggiuntive prima di richiamare le vere funzioni contenute nell’S7OTBXSX.DLL originale e, modificando i dati inviati o ricevuti dal PLC, può agire anche come attacco Man-in-the-Middle. Si noti che se Siemens Step7 non viene trovato, Stuxnet non esegue ulteriori azioni dannose sull’host del computer.

Non solo reti Air Gap

Stuxnet tenta di contattare un server Web remoto per testare la connettività Internet utilizzando i seguenti URL non dannosi (windowsupdate.com o msn.com). Se funziona, si connette ai seguenti URL per inviare e ricevere comandi da un utente remoto (mypremierfutbol.com, todaysfutbol.com).

Quindi genera il seguente URL e invia un messaggio al server: http://www.mypremierfutbol.com/index.php?data={data } dove data è un valore esadecimale crittografato con XOR che contiene l’indirizzo IP, il nome del computer, dominio, versione del sistema operativo e se WinCC Step7 è installato o meno. Il server può rispondere alla macchina infetta inviando codice arbitrario da eseguire (probabilmente versione aggiornata del payload del malware o alcuni comandi di esfiltrazione dei dati).

Infine, una volta eseguite tutte le operazioni di installazione e configurazione, se il software Siemens è stato installato sulla macchina locale, Stuxnet accede ai PLC disponibili collegati alla macchina Windows utilizzando S7OTBXDX.DLL e le credenziali del database MSSQL di default di WinCC (userid=WinCCConnect e password =2WSXcder, exploit 0-day CVE-2010–2772) e verifica il tipo di CPU di cui dispongono.

Se la CPU è del tipo 6ES7–315–2 o 6ES7–417, il malware verifica il tipo di dispositivi ad essi collegati leggendo i blocchi dati di sistema (SDB) del PLC. Infine, controlla se i dispositivi trovati sono convertitori di frequenza Vacon o Fararo Paya e se funzionano nell’intervallo 807–1210 Hz.

Se tutte queste condizioni specifiche sono soddisfatte, Stuxnet registra i dati di configurazione della frequenza nel PLC, e inizia ad intercettare i comandi, alterandone il funzionamento. All’incirca ogni 30 giorni, Stuxnet cambia quindi la frequenza di uscita dei convertitori per brevi periodi di 15-50 minuti rispettivamente a 1410 Hz o 2 Hz, quindi torna a 1064 Hz (una frequenza normale). La modifica periodica della frequenza di uscita sabota il sistema di automazione, introducendo stress meccanico alle centrifughe aumentando così la probabilità di guasto e riducendo la qualità dell’uranio lavorato.

Chi progettò Stuxnet

Molti membri dei media hanno ipotizzato chi ha progettato il worm Stuxnet e chi è stato responsabile dell’utilizzo per attaccare l’impianto nucleare iraniano. E’ ormai ampiamente accettato che sia stato progettato come arma cibernetica per attaccare lo sviluppo del programma nucleare iraniano. Gli venne dato il nome in codice “Operation Olympic Games”, avviato sotto la guida del presidente George W. Bush e continuato sotto il presidente Obama. Sebbene nessuno dei due governi abbia mai riconosciuto ufficialmente lo sviluppo di Stuxnet, un video del 2011 creato per celebrare il ritiro del capo delle forze di difesa israeliane Gabi Ashkenazi ha elencato Stuxnet come uno dei successi sotto il suo controllo .

Anche Edward Snowden, l’informatore della NSA, ha affermato questo nello scandalo del Datagate del 2013. Ma nonostante questa speculazione, non ci sono ancora prove concrete su chi abbia progettato l’arma cibernetica originale.

Sebbene i singoli ingegneri dietro Stuxnet non siano stati identificati, sappiamo che erano molto abili e che erano molti. Roel Schouwenberg di Kaspersky Lab ha stimato che un team di dieci programmatori ha impiegato dai due ai tre anni per creare il worm nella sua forma finale.

Diversi altri worm con capacità di infezione simili a Stuxnet, inclusi quelli soprannominati Duqu e Flame, sono stati identificati in attacchi attivi successivamente, sebbene i loro scopi erano molto diversi da quelli di Stuxnet. La loro somiglianza con Stuxnet porta gli esperti a credere che siano prodotti della stessa “officina di sviluppo”, che a quanto pare è ancora attiva.


Headquarter della National Security Agency (NSA) degli Stati Uniti D’America

I figli di Stuxnet

Sebbene i produttori di Stuxnet abbiano programmato la scadenza nel giugno 2012 e Siemens abbia emesso correzioni per il suo software PLC, l’eredità di Stuxnet sopravvive in altri attacchi malware basati sul suo codice originale. Questi “figli di Stuxnet” includono:

  • Duque (2011). Basato sul codice Stuxnet, Duqu è stato progettato per registrare le sequenze di tasti ed estrarre dati da strutture industriali, presumibilmente per lanciare un attacco successivo;
  • Flame (2012). Flame, come Stuxnet, viaggiava tramite chiavetta USB. Flame era uno spyware sofisticato che registrava le conversazioni Skype, registrava le sequenze di tasti e raccoglieva schermate, tra le altre attività. Ha preso di mira organizzazioni governative ed educative e alcuni privati ​​principalmente in Iran e in altri paesi del Medio Oriente;
  • Havex (2013). L‘intenzione di Havex era quella di raccogliere informazioni da aziende energetiche, aeronautiche, della difesa e farmaceutiche, tra le altre. Il malware Havex ha preso di mira principalmente organizzazioni statunitensi, europee e canadesi;
  • Industroyer (2016). Questo malware mirava ad impianti di alimentazione. È accreditato per aver causato un’interruzione di corrente in Ucraina nel dicembre 2016;
  • Triton (2017). Questo malware ha preso di mira i sistemi di sicurezza di un impianto petrolchimico in Medio Oriente, sollevando preoccupazioni sull’intenzione del produttore di malware di causare lesioni fisiche ai lavoratori.

Sebbene i normali utenti di computer non abbiano motivo di preoccuparsi di questi attacchi malware basati su malware simili a Stuxnet, sono chiaramente una grave minaccia per una serie di settori critici, tra cui la produzione di energia, le reti elettriche e la difesa.

Sebbene l’estorsione sia un obiettivo comune dei produttori di malware, la famiglia dei worm Stuxnet sembra essere più interessata ad attaccare le infrastrutture.

Conclusioni

La sofisticatezza del codice Stuxnet (vulnerabilità multiple 0-day, offuscamento del codice, iniezione di codice, progettazione modulare, comando e controllo remoto e aggiornamento peer-to-peer, payload all-in-1), i suoi certificati digitali fraudolenti, e l’ostinata pazienza dell’attacco informatico (che si è svolto nell’arco di mesi anziché di minuti) ha suggerito che l’autore di Stuxnet fosse uno stato-nazione con una conoscenza completa della sicurezza informatica e delle centrali nucleari.

Secondo l’analisi di Symantec dei primi 38.000 indirizzi IP infetti, 22.000 si trovavano in Iran, 6.700 in Indonesia, 3.700 in India e solo 400 negli Stati Uniti. Di quelle macchine, 217 in Iran sono stati segnalati come host di Siemens Step7 e 16 negli Stati Uniti, che sono stati i conteggi più alti in tutto il mondo.

Stuxnet ha ridefinito cosa potrebbe fare il malware informatico in termini di metodi utilizzati e danni inflitti. Ha aperto la porta digitale a ulteriori attacchi di guerra informatica alle infrastrutture fisiche.

Secondo fonti come l’Istituto per la scienza e la sicurezza internazionale e l’Agenzia internazionale per l’energia atomica, Stuxnet ha danneggiato circa 1000 centrifughe IR-1 nell’impianto di arricchimento del combustibile di uranio a Natanz e ha rallentato di un anno il programma nucleare iraniano.

Anche gli autori di malware imparano gli uni dagli altri. Da Stuxnet, ci sono stati diversi discendenti ispirati dalla sua ingegneria. Duqu nel 2011 ha registrato le sequenze di tasti e ha estratto i dati dagli impianti industriali. Flame nel 2012 ha viaggiato anche tramite chiavette USB ed era uno spyware completo che registrava le sequenze di tasti e registrava le conversazioni Skype.

Insomma, tutto questo ci ha portato in brevissimo tempo a comprendere che un malware può effettuare danni importanti ad un impianto industriale, introducendo il mondo in una nuova era della guerra. La guerra informatica.

Massimiliano Brolli
Responsabile del RED Team di TIM S.p.a. e dei laboratori di sicurezza informatica in ambito 4G/5G. Ha rivestito incarichi manageriali in Telecom Italia che vanno dal ICT Risk Management all’ingegneria del software alla docenza.