Stuxnet

PLCLa storia di Stuxnet è da raccontare.

In breve, Stuxnet è un virus. Ma non è uno dei soliti, fabbricato da un lamer qualsiasi o da uno spammer professionale. E non è nemmeno una proof-of-concept, un virus creato per dimostrare che esiste una vulnerabilità e può essere sfruttata.

Stuxnet è stato rilevato già in Gennaio, ma solo nel Luglio di quest’anno si sono notate alcune sue caratteristiche non comuni e all’analisi di Symantec, è apparso subito come un prodotto un po’ particolare. Infatti, questo virus infetta i sistemi windoze, ma non è interessato a un sistema qualsiasi. Lui cerca i sistemi di controllo industriale, genericamente noti come SCADA Systems.

Però questo tipo di sistemi, di solito, non risiede su macchine collegate ad internet o, se lo sono, si collegano solo a indirizzi ben precisi, spesso via VPN (reti private criptate e altamente sicure). Non si legge la mail e non si surfa tranquillamente su un computer che controlla, per es., una centrale elettrica. Non ci si infilano nemmeno USB key perché queste macchine sono costruite ad hoc con varie schede di I/O e non hanno le interfacce dei computer normali, ma solo quelle collegate ai sensori e agli attuatori di controllo. Spesso non hanno nemmeno tastiera e monitor (vedi immagine in alto a destra). Quindi, come può un virus installarsi in uno di questi computer?

Il fatto è che questi sistemi, chiamati Programmable Logic Controller (PLC), sono, in realtà, dei micro-computer in cui si deve caricare il programma che controllerà l’automazione di un processo industriale e questo programma viene creato tramite un sistema di sviluppo che gira su un computer windoze. Quello che succede è che un programmatore prepara, su un emulatore windoze, il codice destinato ad essere caricato nel PLC.

A questo punto è chiaro che, anche se il PLC non è collegato ad internet, un modo per infettarlo esiste. Consiste nel raggiungere il computer che ospita il sistema di sviluppo che serve a creare il software destinato al PLC e infettare proprio questo software. In tal modo, quando il programma sarà caricato nel PLC, anche il virus verrà caricato con lui.

Stuxnet cerca questo tipo di macchine, ma non tutte: se la prende soltanto con una specifica configurazione di software presente nei sistemi di controllo realizzati dalla Siemens. Per infettare le proprie vittime, usa un metodo d’infezione nuovo e originale che non richiede l’interazione dell’utente: basta che venga visualizzata la sua icona su un sistema Windows non aggiornato. Sfrutta ben quattro vulnerabilità prima sconosciute. Inoltre, è capace di rendersi invisibile a windoze e di iniettarsi nei software creati per i PLC e rendersi invisibile anche in questi ultimi. Infine, contiene ben 70 blocchi cifrati che rimpiazzano alcune funzioni fondamentali di questi sistemi. Per impedire che venga scoperto, i suoi autori hanno rubato le firme digitali segrete di due fabbricanti di chip taiwanesi per usarle in Stuxnet e farlo sembrare software certificato.

Si tratta di uno spiegamento di forze pazzesco per un virus, anche per uno non banale. Quattro vulnerabilità prima sconosciute, blocchi di codice cifrato, sostituzione di funzioni fondamentali, firme digitali rubate indicano il possesso di conoscenze che vanno al di là di quelle di cui dispone un singolo hacker o cracker e fanno sospettare anche che le aziende produttrici di questi PLC abbiano fornito più di una informazione. Allora chi ha fatto uno sforzo di questo genere e perché?

Il grafico in questa pagina di Symantec mostra che la distribuzione delle infezioni si concentra nell’Iran: quasi il 60% delle macchine colpite è in questo paese. Liam O’Murchu, della Symantec, ha detto alla BBC che

il fatto che vediamo così tante infezioni in più in Iran che in qualunque altro paese del mondo ci fa pensare che questa minaccia informatica era mirata all’Iran e che c’era qualcosa in Iran che aveva un valore molto, molto alto per chiunque l’abbia scritta

Ma l’analisi di Symantec è andata avanti, scoprendo che, anche quando Stuxnet ha trovato una macchina che risponde alla caratteristiche richieste e la infetta, non entra in azione sempre, ma fa, prima, altri controlli. Cerca un sistema con una data configurazione e che sia collegato a dei convertitori di frequenza fabbricati da due sole aziende, una delle quali è finlandese, mentre l’altra ha sede a Tehran, Iran.

Non solo. Il virus controlla anche che i convertitori lavorino a frequenze elevate, comparse fra 807 e 1210 Hz. Gli impianti con componenti che richiedono tali frequenze non sono molti. Uno di questi è costituito dalle centrifughe utilizzate per l’arricchimento dell’uranio.

Un convertitore di frequenza è un dispositivo che può variare la propria frequenza di uscita, che controlla la velocità (il numero di giri) di un motore. Stuxnet può interferire con questo controllo e variare la velocità dei motori, sabotando, così, l’intero processo.

In conclusione, abbiamo un virus molto raffinato, che sfrutta conoscenze non facilmente ottenibili, usa modalità di infezione difficili da realizzare e prende di mira impianti con componenti comuni in Iran. Inoltre controlla che l’impianto in questione abbia caratteristiche tipiche degli impianti di arricchimento dell’uranio iraniani. Altre fonti nominano il reattore nucleare di Bushehr.

In effetti, la BBC ha scritto che secondo l’agenzia iraniana ufficiale IRNA, Stuxnet ha infettato i personal computer del personale presso la centrale nucleare di Bushehr, ma il sistema operativo della centrale non è stato danneggiato. Secondo Mahmoud Liay, responsabile del consiglio per l’informatica del ministero dell’industria iraniano, “è stata lanciata una guerra elettronica contro l’Iran” e gli indirizzi IP infetti in Iran sarebbero circa 30.000.

Da quanto possiamo vedere, stiamo probabilmente assistendo a uno dei primi casi noti pubblicamente di attacco informatico alle installazioni nucleari di un paese. Che cosa si sia voluto colpire non è chiarissimo, perché centrifughe a così alta velocità, in una centrale non dovrebbero essercene, ma in un impianto di arricchimento dell’uranio invece sì. È invece chiaro, dai numeri, che il virus era diretto principalmente all’Iran e ha potuto agire per circa un anno prima di essere analizzato a fondo.

Chi abbia messo in atto questo attacco, non è dato saperlo. Il codice del virus contiene un riferimento biblico che farebbe pensare a Israele. Si tratta della parola “Myrtus” che può essere letta come un’allusione al libro di Esther, nel Vecchio Testamento, dove si narra di come gli ebrei riescano a sventare un complotto persiano mirato a distruggerli.

Tuttavia, ci si chiede perché Israele avrebbe firmato un attacco di questo tipo e si può anche pensare che il suddetto riferimento sia stato piazzato a bella posta per depistare. D’altra parte, la megalomania dei soggetti che fanno lavori di questo tipo è nota e si traduce spesso nel lasciare un firma. Inoltre potrebbe trattarsi solo di una minaccia oppure una prova, per far sapere che si è in grado di farlo e quindi di fare anche di peggio…

Fonti: Symantec qui, qui e qui (rapporto completo in pdf); il Disinformatico, qui e qui.