Massima protezione per i sistemi industriali

Finora la maggiore parte dei sistemi di controllo industriale sono stati progettati in modo da garantire elevata affidabilità, sicurezza e il massimo uptime. Per decenni l'industria ha focalizzato i propri sforzi per soddisfare questi requisiti, trascurando un altro importante aspetto: quello della sicurezza digitale. Negli anni '90 alcuni enti governativi hanno iniziato a prendere in considerazione la sicurezza informatica per le infrastrutture critiche, come quelle preposte alla distribuzione dell'energia elettrica. Con l'affacciarsi alla ribalta di virus come Stuxnet, gli attacchi informatici contro sistemi di automazione e controllo industriali sono diventati un problema chiave per tutte le parti in causa.

Sistemi di controllo industriale a rischio
In questo articolo saranno presi in considerazione tre tipi di sistemi di controllo industriali o Ics (Industrial control system): i controllori a logica programmabile o Plc (Programmable logic controller); i sistemi per il controllo di supervisione e l'acquisizione dati o Scada (Supervisory control and data acquisition) e i sistemi di controllo distribuiti o Dcs (Distributed control system). Le implementazioni di tali sistemi si differenziano in funzione della specifica applicazione industriale. Alcuni sistemi sono concentrati dal punto di vista fisico, mentre altri possono essere dislocati su un'area geografica molto vasta. Tuttavia devono funzionare nel rispetto di vincoli specifici in termini di prestazioni. Un sistema Scada, ad esempio, deve garantire un uptime particolarmente alto, idealmente pari a cinque 9 o sei 9. Per altri sistemi di automazione e controllo industriali il vincolo più importante in termini di prestazioni potrebbe essere un tempo di risposta estremamente veloce. Gli Ics quindi possono essere simili e pur tuttavia molto diversi tra loro. Oltre a ciò, oggi si possono evidenziare due tendenze: la prima è che gli Ics tendono a diventare sempre più connessi, la seconda è il crescente utilizzo di componenti standard pronti all'uso. Un classico esempio è rappresentato dalle workstation che utilizzano software standard, come i sistemi operativi Windows di Microsoft, oppure la comunicazione su reti IP. Queste tendenze hanno contribuito a creare nuove vulnerabilità agli attacchi informatici.

Tecnologie IT in ambito industriale
Gli Ics integrano in misura sempre maggiore tecnologie usate nel mondo IT, pur nel rispetto di vincoli e obiettivi di prestazioni specifici. Questa convergenza tecnologica ha un effetto immediato e importante: la propagazione agli Ics di alcune minacce a cui sono soggetti i componenti IT standard. A causa delle differenze a livello di obiettivi prestazionali e ambienti di funzionamento, i provvedimenti per la sicurezza degli apparati IT non sono necessariamente estendibili agli Ics. Prima di analizzare con maggiore dettaglio questi aspetti, è utile fare un esempio. Un sistema Scada sta monitorando la pressione dell'acqua di raffreddamento in un'installazione industriale ed è previsto che esso invii un allarme nel momento in cui venga rilevata una perdita di pressione. In una situazione di potenziale emergenza come questa, l'operatore deve prendere provvedimenti immediati. Si consideri ora la risposta di un operatore in una classica infrastruttura IT. Dopo alcuni minuti di inattività la stazione di lavoro IT si è probabilmente bloccata: l'operatore deve digitare la password per l'accesso e solitamente, dopo tre tentativi falliti, la workstation si bloccherà di nuovo. A questo punto l'operatore IT deve contattare un amministratore per la cancellazione della password. Lo svolgimento di tutte queste operazioni richiede un certo tempo. Una procedura iterativa di questo tipo potrebbe avere conseguenze gravi in ambito industriale. Quando un Ics si trova in una situazione di emergenza, l'operatore deve agire immediatamente e ogni indecisione rappresenta una perdita di tempo che può rivelarsi critica. Quanto appena esposto è un tipico esempio di una procedura standard nel mondo IT che non è applicabile agli Ics, anzi può risultare decisamente dannosa.

Minacce per i sistemi di controllo industriali
Per la protezione contro le minacce elettroniche non è possibile fare affidamento sulle architetture di tipo custom degli Ics. Storicamente gli attacchi informatici non sono mai stati considerati una seria minaccia per i sistemi di automazione e controllo perchè le reti di questi Ics erano isolate oppure non seguivano gli standard IT. A questo riguardo è possibile fare le seguenti considerazioni:
• Le reti di automazione e controllo sono sempre più connesse alle reti standard e aperte perchè devono interfacciarsi con altri sistemi.
• Nel mondo industriale è possibile effettuare un “reverse engineering” di un protocollo proprietario a costi ragionevoli. Il problema in questo caso è che qualsiasi “punto debole” di quel protocollo potrebbe non essere mai stato studiato, compreso o corretto. È pericoloso pensare che un protocollo dia garanzie di sicurezza perché non è di pubblico dominio. Si tratta di un approccio sbagliato e che può indurre in errore basato sul concetto della ”sicurezza tramite segretezza”. Questa vulnerabilità dei protocolli non sicuri si differenzia nettamente da quella dei protocolli noti e collaudati per i quali minacce e risposte sono ben conosciuti.
• Le reti non rappresentano l'unica via per gli attacchi informatici. Di conseguenza, una struttura isolata in un Ics potrebbe essere vulnerabile ad altri mezzi di attacco come ad esempio chiavette Usb o console di manutenzione.
Come nel caso delle reti industriali che non seguono protocolli noti e ben documentati, anche un'architettura proprietaria di un Plc non rappresenta una valida tutela per la sicurezza. Stuxnet è una valida conferma di questa affermazione. È noto che Stuxnet danneggia soltanto il software proprietario e i Plc con una specifica configurazione. Questo malware non potrebbe essere stato progettato senza avere dimestrichezza dei sistemi specifici che rappresentano i suoi bersagli. “La sicurezza dei sistemi non dipende dalla segretezza dell'implementazione dei suoi componenti”. Questo approccio, anzi, ha reso l'hardware, il Plc in questo caso, troppo vulnerabile. Quindi non è possibile affermare che è possibile fare affidamento sull'architettura custom degli Ics per garantire la protezione contro le minacce elettroniche. Sebbene gli Ics abbiano un'architettura differente da quella di una tipica infrastruttura IT e soddisfino requisiti diversi, molte delle minacce delle infrastrutture IT possono avere effetto anche sugli Ics. Sfortunatamente, la lista di queste minacce è lunga e preoccupante: inserimento di malware come worm e virus; variazioni di configurazioni hardware o software; ordini o messaggi falsi impartiti da un aggressore; furto di identità e monitoraggi non autorizzati.
In definitiva, la situazione si presenta particolarmente problematica. Le minacce alla sicurezza degli Ics sono simili a quelle che affliggono un'infrastruttura IT ma, molto spesso, i requisiti specifici per il funzionamento degli Ics non permette il riutilizzo di contromisure ben conosciute.

Le contromisure più efficaci devono essere all'interno dell'Ics
Poiché la sicurezza è divenuta un problema diffuso per le applicazioni di automazione ed industriali, è necessario adottare adeguate contromisure e azioni che ne limitino gli effetti. Fino a questo momento molte di queste misure difensive prevedevano procedure di sicurezza, protezione fisica dell'ambiente ed addestramento del personale. L'Ics rimane però vulnerabile. Prima di criticare il mondo industriale per aver adottato questo livello di protezione minimo, è utile ricordare che agli inizi il mondo IT ha agito allo stesso modo. Si tratta veramente del primo livello di protezione, una basa da cui partire. Queste tattiche difensive tradizionali, tuttavia, non possono fornire il massimo livello di protezione richiesto da un Ics. Le procedure, anche se verificate su base regolare, non sono mai seguite fino in fondo, le protezioni fisiche come ad esempio le porte chiuse possono essere superate e non possono essere utilizzate dappertutto. Senza dimenticare che le procedure di difesa non comprendono gli attacchi effettuati da personale molto esperto che può disporre del tempo e delle risorse necessarie per elaborare gli scenari più sofisticati. Ancora peggio, vi sono esempi di corruzione che hanno indotto gli operatori degli Ics ad aggirare le procedure. L'unica risposta plausibile per la sicurezza è la sua integrazione nell'hardware dell'Ics. La gerarchia di livello superiore delle contromisure di sicurezza prevede quelle generiche adottate nel mondo IT come crittografia e la sicurezza hardware. Le soluzioni di sicurezza generiche del mondo IT talvolta sono presenti nel software. Alcune infrastrutture sono già protette da firewall e alcuni protocolli sicuri su IP - come TLS/SSL - sono già implementati. Siccome tutti i livelli della piramide sono necessari, si procederà con la descrizione di come la sicurezza basata sull'hardware sia in grado di assicurare il massimo livello di protezione.

Proteggere gli Ics con la crittografia integrata
Le linee di condotta generiche del comparto IT non possono essere applicate in modo sistematico all'ampia gamma di Ics presenti in ambito industriale. Esiste comunque una tecnologia di impiego universale nel mondo IT che può essere utilizzata: la crittografia. La crittografia fornisce una risposta efficace alla maggior parte delle minacce segnalate in precedenza. Non si tratta in ogni caso della “bacchetta magica” e l'approccio non può essere del tipo “basta aggiungere la crittografia agli Ics ed essi diventano tutto ad un tratto sicuri”. Protocolli e algoritmi crittografici sono blocchi base che dovrebbero essere implementati caso per caso dopo un'esaustiva analisi delle minacce alle quali potrebbe essere soggetto ciascun sottosistema. In altre parole, la crittografia è uno strumento comune agli Ics e alle infrastrutture IT ma la sua implementazione in un Ics deve essere adattata allo specifico sistema preso in esame. All'interno della pluralità di tecniche crittografiche, ve ne sono due che rivestono una particolare importanza per gli Ics: firma digitale (digital signature) e cifratura.
Firma digitale - Queste tecniche vengono utilizzate per autenticare messaggi, ordini o parti di software. Si considerino questi due esempi relativi a un Ics:
1.    In in sistema Scada è necessario essere sicuri di un'informazione proveniente da un sensore sul campo. Quindi bisogna poter certificare che essa provenga dal sensore effettivo ubicato nella posizione prevista e che non si tratti invece di una falsa informazione inviata da un aggressore per disturbare il sistema. Quando l'informazione inviata è corredata della firma digitale del sensore o del modulo sensore, il terminale di ricezione remoto (Remote Terminal Unit) può verificare che il messaggio proviene da un sensore autentico ed autorizzato (Fig. 2). Questa procedura è valida anche nella direzione opposta: un azionamento, ad esempio, riceve un ordine che è stato debitamente “firmato” dal sistema che lo ha originato. Il medesimo approccio può essere adottato per la comunicazione tra Rtu, Plc e il sistema Scada principale.
2.    Le firme digitali consentono a un sistema di verificare anche che un package software od un aggiornamento software provengano da una fonte sicura. Riprendendo l'esempio di Stuxnet, in questo caso è stato inserito codice dannoso nei Plc che ha provocato un pilotaggio dei motori a una velocità imprevista. Ciò ha causato un notevole danno al processo produttivo. Nel caso che tutto il software e i relativi aggiornamenti siano firmati in modo digitale prima di essere trasferiti al Plc, quest'ultimo può verificare l'autenticità del software prima di iniziare la sua esecuzione.
Il medesimo principio della firma digitale può essere usato per proteggere un sistema contro modifiche della configurazione hardware. Gli aggressori, per esempio, potrebbero modificare i dati di calibrazione del sensore. I sensori calibrati in maniera errata potrebbero a loro volta inviare informazioni sbagliate ai sistemi master, danneggiando in tal modo i processi industriali. I sistemi più vulnerabili a questi attacchi sono quelli a larga scala distribuiti su un'area geografica molto vasta come quelli per la distribuzione dei fluidi, per i quali non è possibile garantire un accesso fisico protetto per ogni ubicazione del sensore. Un processo di firma digitale permette di risolvere questo problema. Quando si inviano informazioni relative alla misura a un master, il sensore o il modulo sensore può anche trasferire i dati di calibrazione “firmati”. In alternativa, il master può interrogare i sensori su base regolare inviando un messaggio random e aspettandosi una risposta “firmata” che includa un riassunto dei dati di calibrazione o configurazione. Una firma digitale può anche essere impiegata per l'autenticazione dell'hardware. Ciò è utile, ad esempio, quando una Rtu è collegata a una rete Scada. Chiaramente non si vuole avere un hardware sconosciuto che riceva e invii informazioni critiche; al contrario, solamente l'hardware autentico può essere usato per realizzare un Ics critico. In questo caso una firma digitale è in grado di autenticare l'hardware garantendone l'autenticità.

Cifratura - Si tratta di una tecnica utile e ampiamente utilizzata per la protezione contro la divulgazione di informazioni. Le formule di produzione molto spesso sono un patrimonio prezioso in quanto possono contenere tutto il know-how necessario per la realizzazione dei prodotti. Mediante il monitoraggio dei dati provenienti dai sensori o i parametri degli azionamenti si potrebbero ottenere utili informazioni circa un processo produttivo o persino dati personali di singoli individui. Esistono ad esempio parecchie pubblicazioni relative ad aggressori che sono riusciti a conoscere il comportamento degli utilizzatori tracciando i loro consumi di elettricità ottenuti dalle “smart grid”. La cifratura dei dati sulle reti di Ics previene questa divulgazione e potrebbe essere utilizzata allo stesso modo con cui è impiegata in una classica infrastruttura IT.
Circuiti integrati di sicurezza per il supporto della crittografia
Poichè la sicurezza è spesso implementata via software, ci si potrebbe chiedere perchè utilizzare circuiti integrati di sicurezza in un Ics. Le ragioni sono numerose, anche perché questi integrati garantiscono vantaggi specifici di un certo rilievo: memorizzazione sicura delle chiavi, protezione contro la divulgazione della chiave attraverso attacchi di tipo side-channel, semplicità di implementazione della crittografia “bug-free”, maggiore velocità di elaborazione; qualità dei numeri random e affidabilità del software grazie ad un boot sicuro.
Memorizzazione sicura delle chiavi
Un concetto è sicuramente da tenere a mente: ogni implementazione di sicurezza deve usare algoritmi crittografici standard come Aes e Triple Des per la crittografia a chiave simmetrica, Esa e Ecdsa per la crittografia a chiave pubblica. All'interno di questi sistemi crittografici il patrimonio più prezioso sono le chiavi. Quando la crittografia è implementata in software su un processore standard, le chiavi crittografiche sono memorizzate nella memoria di sistema di tipo general-purpose e quindi possono essere facilmente recuperate attraverso un malware, una porta di debug o un attacco di natura fisica. Gli integrati di sicurezza permettono di ridurre drasticamente queste vulnerabilità:
•    I microcontrollori sicuri integrano protezioni logiche. Un boot sicuro e la Mmu (Memory management unit) del microcontrollore proteggono contro l'inserimento di malware. La porta Jtag può essere disabilitata.
•    Gli integrati di sicurezza includono contromisure come schermature metalliche, sensori ambientali e reti di sensori esterni contro tentativi di manomissione fisica. Oltre a ciò la loro memoria interna o esterna può essere cifrata. Il più elevato livello di sicurezza è rappresentato dalla distruzione automatica delle chiavi nel caso sia rilevato un tentativo di manomissione.

Protezione contro attacchi “side-channel”
Il consumo di potenza di un microcontrollore è strettamente legato alla sua attività. Mediante il monitoraggio dei consumi durante l'attività di elaborazione crittografica è possibile recuperare le chiavi crittografiche. Altri attacchi di tipo “side-channel” sono basati sulle emissioni elettromagnetiche. I circuiti integrati di sicurezza più avanzati prevedono contromisure contro attacchi di tipi “side-channel” rendendo quindi impossibile il recupero delle chiavi mediante questi canali laterali.

Crittografia sicura e “Bug-Free”
Una vulnerabilità abbastanza diffusa dei sistemi che adottano tecniche crittografiche è rappresentata da un'implementazione parziale o “fittizia” dell'algoritmo. Un algoritmo difettoso rende un Ics vulnerabile agli attacchi che possono quindi essere condotti con esito positivo a pochi mesi dal rilascio del prodotto. Grazie all'utilizzo di un circuito integrato di sicurezza fin dalle fasi inziali dello sviluppo di un sistema, il progettista dell'Ics è certo che l'implementazione degli algoritmi sarà priva di errori. Questo livello di confidenza può essere ulteriormente aumentato grazie a valutazioni e certificazioni condotte da terze parti relativamente ad un determinato standard.

Maggiore velocità di elaborazione
Per gli Ics il tempo di risposta è spesso un fattore critico. Per esempio ci si potrebbe aspettare che la misura di un sensore sia inviata all'Rtu di un controllore Scada con un ritardo prestabilito. Grazie agli engine crittografici hardware integrati, gli Ic di sicurezza assicurano prestazioni migliori rispetto alle soluzioni software. Inoltre le misure effettuate dal sensore possono essere “firmate” in modo digitale prima del loro invio, anche se il controllore del sensore è caratterizzato da prestazioni di elaborazione limitate. I circuiti integrati di sicurezza possono anche svolgere i compiti di un processore applicativo nel caso quest'ultimo abbia scarse capacità di elaborazione. In sistemi di dimensioni molto ridotte, come ad esempio i moduli sensore, le risorse di elaborazione (rappresentate da un microcontrollore a 8 bit) necessarie per far girare operazioni matematiche sofisticate potrebbero non essere disponibili. In situazioni di questo tipo l'aggiunta di un integrato sicuro è la sola opzione disponibile per fornire la potenza di elaborazione richiesta dagli algoritmi crittografici senza dover riprogettare il sistema. I microcontrollori sicuri possono anche gestire completamente protocolli di sicurezza come Tls/Ssl.

Qualità dei numeri casuali
Un metodo comune di attacco contro sistemi presumibilmente protetti per mezzo della crittografia è il cosiddetto “replay attack”. Il concetto di replay è relativamente semplice: un aggressore registra un messaggio cifrato o firmato (anche se l'aggressore non può decifrarlo o comprenderlo) e invia il messaggio registrato in un momento successivo. Il seguente esempio inerente la misura di un sensore con firma digitale illustra il problema. Si faccia l'ipotesi che la pressione dell'acqua in una conduttura remota abbia un valore normale. Il sensore registra questa situazione e invia questo messaggio al controllore Scada. L'aggressore registra questo messaggio. Nel momento in cui un sensore rileva una pressione anomala, l'aggressore interviene. Quest'ultimo ripete il messaggio registrato in precedenza e induce in errore il controllore, il quale ritiene che il funzionamento del sistema sia regolare. In una situazione come questa, invece, ci si dovrebbe aspettare che il sistema Scada attivi un allarme. La protezione standard contro questo tipo di attacchi prevede l'introduzione di un numero casuale nella transazione, in modo da prevenire il riutilizzo della transazione precedente. Non tutti i generatori di numeri casuali sono caratterizzati dal medesimo livello qualitativo. Si sono verificati casi in cui una chiave segreta sia stata recuperata in sistemi che utilizzano generatori di numeri casuali di scarsa qualità. Questa è la situazione peggiore che si potrebbe immaginare. In questo caso la crittografia risulta inutile. A questo punto è utile chiedersi cosa sia successo. In un microcontrollore standard la casualità del numero generato non è garantita. In un circuito integrato di sicurezza, invece, il generatore di numeri casuali è stato progettato per soddisfare i più severi criteri in termini di entropia ed è anche collaudato contro i metodi standardizzati.

Software affidabile grazie a un boot sicuro
Stuxnet rappresenta una valida dimostrazione dell'importanza di questo argomento. Progettisti e operatori di sistemi devono assicurare che tutte le apparecchiature utilizzate per la realizzazione di un sistema Scada o Dcs facciano girare una porzione di software autentico e ben identificato. Un boot sicuro e una gestione sicura degli aggiornamenti sono le modalità da seguire per proteggere un dispositivo da inserimento di malware o software non sicuri. Nei microcontrollori sicuri più avanzati sono implementati sia il boot sicuro sia la gestione sicura degli aggiornamenti.

Gli integrati di sicurezza assicurano la massima protezione
Gli odierni circuiti integrati di sicurezza includono parecchie funzionalità espressamente progettate per garantire la sicurezza degli Ics o di qualsiasi sistema 24/7 (ovvero che deve funzionare a ciclo continuo). I circuiti integrati di autenticazione, come ad esempio DS28E15, consentono l'autenticazione mediante crittografia di un sottosistema da/verso il sistema master. Grazie all'utilizzo del protocollo di autenticazione SHA-2, essi possono autenticare i moduli di espansione di I/O di un Plc. Tali integrati possono memorizzare in modo sicuro e firmare in modo digitale i dati di configurazione e calibrazione provenienti da un modulo sensore, in modo da impedire che sia sostituito da un falso dispositivo o che i parametri principali siano modificati da un aggressore. I circuiti integrati per la gestione della sicurezza (security manager) memorizzano in modo sicuro le chiavi segrete. DS3645 può anche innescare il processo di distruzione di una chiave quando è rilevato un tentativo di intrusione. Il “security manager” MAX36025 è anche in grado di supportare la cifratura e l'autenticazione Aes. Questi integrati preposti alla gestione della sicurezza possono essere anche aggiunti a un microcontrollore esistente, evitando in tal modo il porting del software da un precedente design. I microcontrollori sicuri sono in grado di memorizzare in modo sicuro la chiave, implementare il boot sicuro, abilitare la protezione logica del software e garantire la massima flessibilità per l'implementazione della crittografia fino a livelli di protocollo Pkcs#11 (Public-key cryptography standards). Essi inoltre supportano i protocolli di rete e gestiscono le operazioni crittografiche al posto del processore principale. Dispositivi come MAXQ1050 forniscono tutta questa gamma di servizi per i contatori intelligenti. Il nuovo microcontrollore MAX32590 basato su Arm926 con il suo Bsp Linux è una soluzione su chip singolo da utilizzare nei dispositivi di comunicazione sicura come i gateway.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome