Perché Stuxnet è più di un worm: è un’arma

Per Andrea Bellinzaghi di Check Point è la più sofisticata forma di malware che sia mai esistita. E ci spiega come il worm è stato utilizzato per attaccare gli impianti nucleari iraniani.

A oggi Stuxnet è l’esempio più visibile di una cyberguerra, in cui un governo ha violato gli asset di un altro paese per raggiungere un obiettivo geopolitico. Lo osserva Andrea Bellinzaghi, Technical Manager di Check Point Italia.
L’obiettivo è stato di utilizzare malware altamente sofisticati per interrompere il programma iraniano di arricchimento dell’uranio.

Oggetto dell’attacco dei malware erano i pc che controllavano le centrifughe industriali, fondamentali per il processo di arricchimento dell’uranio.
Alterando silenziosamente il codice di controllo delle centrifughe, il virus ne ha danneggiato i motori, ritardando così la produzione di materiale potenzialmente utile alla costruzione di armi.

Per raggiungere questo obiettivo Stuxnet racchiudeva una  gamma di funzioni e vulnerabilità complesse, mai viste prima.

Si basava su non meno di quattro vulnerabilità zero-day per diffondere il malware su pc basati su Microsoft, e conteneva 15 diversi componenti, tra cui codice non-Windows destinato a colpire proprio le versioni ed i modelli dei sistemi di controllo utilizzati negli impianti nucleari iraniani.
Sono state anche impiegate sofisticate tecniche di cloaking per assicurarsi che l’attacco non sarebbe stato scoperto per oltre un anno, man mano che procedeva verso il suo obiettivo.

L’attacco, spiega Bellinzaghi, è stato strutturato su tre fasi. Prima l’infezione iniziale, che si è poi propagata attraverso macchine Windows; nella seconda, il malware è stato impiegato per individuare specifici software di controllo industriale in esecuzione su Windows; infine, il terzo step è stato quello di prendere il controllo della strumentazione stessa per compromettere l’arricchimento dell’uranio.

Il varco Windows
Pare che Stuxnet sia stato immesso nelle reti dell’impianto nucleare iraniano attraverso un drive Usb infetto, sfruttando la vulnerabilità Lnk di Explorer. La vulnerabilità utilizzata anche dal worm Confickr permette di far partire automaticamente un codice quando il dispositivo Usb viene inserito.

Il codice Stuxnet è stato quindi portato sul pc host, in un gigantesco file criptato da 500 Kb, dettaglio non da poco se si considera che la maggior parte dei file malware rimangono sotto i 20 Kb.

A questo punto è iniziato il vero lavoro del worm. Il primo passo è stato quello di diffondersi sulle reti partendo dal pc infetto e sfruttando funzionalità differenti di exploit zero-day quali una vulnerabilità dello spool di stampa presente nei computer Windows, che ha permesso al worm di penetrare all’interno di macchine che condividevano una stessa stampante; oppure le vulnerabilità di un file di tastiera di Windows; o quelle di un Task Scheduler, che permette agli hacker di acquisire i privilegi di amministratore e il pieno controllo di una macchina.

Insolitamente Stuxnet non si è diffuso tramite posta elettronica o Web ma solo attraverso Lan o infettando le unità Usb che venivano collegate a una macchina infetta.
Man mano che si diffondeva, ha utilizzato numerosi meccanismi differenti per evitare il rilevamento da parte del software anti-virus. I sui driver di periferiche sono stati validati digitalmente grazie a un certificato autentico da sottratto a una società di Taiwan.
È stato inoltre possibile eludere antivirus euristici utilizzando una tecnica sofisticata che ha consentito di aggirare la dipendenza dell’analisi euristica sull’attività LoadLibrary.

La Dll (Dynamic-Link Library) di Stuxnet è stata registrata nella memoria come un file virtuale con un nome specifico, anziché sul disco rigido.
Quindi, se un programma avesse cercato di caricare la Dll, Stuxnet avrebbe captato la richiesta indirizzandola alla memoria e facendo sì che la LoadLibrary guardasse altrove, sconfiggendo così il rilevamento euristico.

Come ha ostacolato il controllo
Una volta immesso nella Lan, osserva Bellinzaghi, Stuxnet ha iniziato la ricerca di specifici software di controllo industriale basati su Windows. Embedded nel suo codice, vi erano tutti i dettagli della esatta configurazione tecnica, versione del software e denominazione del software di controllo e dell’hardware ricercati.

Nel caso in cui il worm non fosse riuscito a individuare sulla rete infetta il software di controllo Siemens Step7, sarebbe andato in letargo fino a quando non avesse potuto accedere ad un’altra rete tramite una connessione Lan o attraverso una nuova chiavetta Usb.

Comunque, nel momento in cui Stuxnet avesse individuato il software Step7 su un pc, gli avrebbe consegnato il suo carico dannoso.
Ha decrittato e caricato un file Dll dannoso che avrebbe poi intercettato i comandi tra il software Step7 e il controller industriale dei motori delle centrifughe e lo avrebbe sostituito con comandi destinati a danneggiare i motori.
Astutamente ha anche installato un rootkit sul controller per intercettare i rapporti di status e mascherare le variazioni di velocità del motore ai sistemi di monitoraggio, offrendo ai gestori dell’impianto l’illusione che tutto stesse normalmente funzionando.

Stuxnet, rimarca Bellinzaghi, ha avuto successo perché ha lavorato esattamente come era stato progettato per fare, danneggiando un gran numero di motori delle centrifughe e ritardando così il programma nucleare iraniano. Ha inoltre dimostrato quanto un worm possa essere efficace e dirompente, proprio come un’arma, sollevando così una serie di problematiche sulla vulnerabilità di impianti nucleari, elettrici e più in generale industriali.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome