La scorsa settimana ha fatto notizia, anche al di fuori delle reti degli addetti ai lavori, l’annuncio della scoperta di un malware specificamente progettato per attaccare i sistemi di distribuzione dell’energia. Denominato Industroyer da alcuni ricercatori e CrashOverride da altri, questo malware dalla provenienza incerta è il principale indiziato dell’attacco che lo scorso 17 dicembre ha provocato un black-out di circa 75 minuti nella fornitura dell’energia elettrica a Kiev, capitale dell’Ucraina.
Subito etichettato come “la più grande minaccia ai sistemi di controllo industriale dai tempi di Stuxnet”, Industroyer è effettivamente un malware ben confezionato e potenzialmente assai pericoloso: oltre infatti a disporre di tutte le funzioni proprie ed ormai tipiche della sua categoria quali la modularità, la capacità di aprire backdoor sulla macchina ospite, la capacità di collegarsi al server di Comando e Controllo mediante connessioni protette (tramite rete Tor), la capacità di persistenza e quella di sfuggire agli antivirus, esso offre in più la capacità di interagire direttamente con praticamente tutti i sistemi di controllo industriale grazie alla presenza di moduli specializzati che implementano i principali protocolli standard di comunicazione e controllo impiegati nel settore energetico, ossia IEC 60870-5-101, IEC 60870-5-104, IEC 61850, e OLE for Process Control Data Access (OPC DA). In questo modo, una volta installato ad esempio in un sistema di controllo di sottostazione, esso può non solo monitorare l’attività degli attuatori ma anche controllarli direttamente, inviando loro comandi che essi eseguiranno docilmente.
Industroyer è stato sicuramente sviluppato da qualcuno che non solo conosce molto bene i sistemi di controllo industriale in termini generali, ma ha anche familiarità con i principali prodotti di mercato. Ad esempio nel suo codice è presente un modulo in grado di sferrare un attacco di tipo Denial of Service indirizzato specificamente verso i sistemi Siemens SIPROTECT, sfruttando una vulnerabilità di questi apparati nota sin dal 2015 (CVE-2015-5374); mentre un altro componente del payload sembra essere stato sviluppato ad hoc per certi prodotti di controllo dell’alimentazione industriale commercializzati da ABB. Tuttavia, a fronte di una evidente similarità funzionale tra Industroyer ed altri malware già noti per attaccare i sistemi di distribuzione dell’energia, quali BlackEnergy e KillDisk, i ricercatori non hanno rilevato alcuna somiglianza a livello di codice: segno che Industroyer è un progetto autonomo, o comunque non direttamente derivato da altri malware analoghi conosciuti.
Ma al di là dei proclami un po’ allarmistici sulla micidialità di questo nuovo malware e in generale sull’elevarsi del livello della minaccia cibernetica verso le infrastrutture critiche, che purtroppo finiscono paradossalmente per anestetizzare il grande pubblico nei confronti della reale percezione del rischio, quale è la riflessione che andrebbe realmente fatta? Sicuramente la qualità degli strumenti di attacco è in crescita, e non lo si può ignorare: tuttavia il vero problema è che i sistemi critici da cui dipende il funzionamento della nostra società sono ancora troppo vulnerabili, essendo intrinsecamente privi, per ragioni storiche e tecniche, di difese strutturali native. La loro protezione quindi non è un “nice to have” ma un “must”, ed andrebbe affrontata in modo più sistematico ed efficace a tutti i livelli. Certo la cosa non è facile, per un numero enorme di motivi: ma è indubbio che l’intero mondo dei sistemi di controllo industriale deve affrontare un drammatico cambio di passo se vuole continuare a dormire (e farci dormire) sonni tranquilli.
Ma perché ci troviamo in questa situazione? Innanzitutto per via della rapidissima penetrazione delle tecnologie ICT nel mondo dei controlli industriali avvenuta in questi ultimi anni. In passato i sistemi ICS (Industrial Control System) erano governati da logiche di controllo realizzate ad hoc ed implementate mediante microcontrollori programmabili. Questi apparati avevano scarsissima potenza di calcolo e limitata capacità di comunicazione: attorno ad essi si sono sviluppati quindi dei protocolli di interfacciamento verso sensori ed attuatori estremamente semplici ed efficienti, dotati delle sole funzioni “core” sia per facilità di implementazione e debugging che per le intrinseche limitazioni dell’hardware. Questo ha significato, ad esempio, l’assoluta assenza nei protocolli di concetti quali “utente”, “autenticazione”, “autorizzazione”, peraltro assolutamente non necessari nel contesto classico in cui tali sistemi operavano. Infatti, e questo è il secondo fattore rilevante, i sistemi di controllo industriale si sono sviluppati in un momento storico ed in un ambito operativo nei quali la sicurezza IT non li tangeva e non era considerata un rischio, essendo tutti gli apparati isolati dal mondo esterno non solo fisicamente ma, soprattutto, logicamente.
Lo sviluppo dei microcomputer prima, e dei computer personali dopo, ha tuttavia portato ben presto a sostituire molti degli apparati di controllo e supervisione dedicati con PC commerciali basati su sistemi operativi standard, sui quali era ovviamente più facile sviluppare software. Successivamente la diffusione della connettività a basso costo basata su TCP/IP ha portato a mettere in rete tali apparati per facilitarne la gestione ed il controllo da remoto. Le reti ICS sono dunque diventate a tutti gli effetti delle reti di sistemi ICT, con tutte le vulnerabilità di sicurezza di questi ultimi ma non le stesse difese. E con la differenza, rispetto al mondo puramente ICT, che sfruttandone le vulnerabilità non si ottengono solo effetti logici: si possono aprire valvole, chiudere interruttori, attivare motori. Nel dominio dei sistemi cyber-physical gli effetti di un attacco cyber si riflettono direttamente sul mondo fisico, e i danni sono reali, tangibili e potenzialmente spaventosi.
Il contesto tecnico-operativo inoltre non consente una facile risoluzione dei problemi. Tanto per cominciare, un sistema ICS di norma non si può fermare e quindi il suo software di base non viene quasi mai aggiornato; gli aggiornamenti peraltro richiederebbero una ricertificazione formale di tutti i sistemi, operazione complessa e costosa che assai raramente viene affrontata. Inoltre non si può correre il rischio che qualche processo si blocchi o anche semplicemente venga rallentato, e quindi non è possibile installare ad esempio antivirus o software di sicurezza locali sulle macchine di controllo né IDS/IPS sulle reti di connessione. Ecco perché è così comune trovare impianti industriali o sistemi di controllo dell’energia che dipendono ancora da computer basati su XP “barebones”, e tuttavia facilmente raggiungibili in rete da remoto. Anche la sostituzione degli attuali protocolli di comunicazione industriali con nuove versioni più moderne e sicure procede fra mille ostacoli e difficoltà, perché per farli girare servono macchine più potenti e non è facile sostituire d’un colpo apparati e sistemi obsoleti ma ancora perfettamente funzionanti, i quali sono stati pensati (ed ammortizzati) per durare in esercizio decenni.
Ultimamente, grazie anche a casi spiacevoli come quelli verificatisi sempre in Ucraina nel 2015, la sensibilità internazionale è fortunatamente in aumento su questi temi. La Direttiva NIS, emanata lo scorso anno e di obbligatoria attuazione entro la prima metà del 2018, obbliga ad esempio tutti gli Stati Membri dell’Unione Europea ad attuare contromisure che innalzino la sicurezza di molti comparti critici, tra cui ovviamente quello industriale. Ma contestualmente è in atto una forza contraria che, sotto l’impulso di una innovazione ed un progresso che si vogliono sempre più rapidi, spinge l’industria a sviluppare sempre più in fretta sistemi sempre più complessi e sempre più connessi, spesso tralasciando in nome del “time to market” ogni considerazione strutturale relativa alla sicurezza dei singoli sistemi e del sistema complessivo. La Fabbrica 4.0, le città intelligenti, le smart grid, i dispositivi IoT ubiqui e pervasivi, sono realizzazioni straordinarie che però non possono non tenere conto delle mutate esigenze di sicurezza date dal contesto e dal periodo nel quale viviamo. Il rischio che la nostra società sta correndo è quello di star poggiando infrastrutture straordinariamente critiche su fondamenta di argilla, che sarebbe un errore dalla portata potenzialmente davvero catastrofica.