Con l’analisi del progetto PRISM abbiamo visto come ormai la CyberSecurity sia una disciplina ampiamente in uso dalle forze governative e non è affatto avventato parlare di CyberWarFare.
Come in una guerra reale, quando si vuole attaccare una popolazione, prima di tutto si cerca di colpirli nei servizi essenziali.
Le infrastrutture eroganti i servizi essenziali sono state ben definite nella direttiva 2008/114/CE del consiglio dell’Unione Europea:
“«infrastruttura critica» è un elemento, un sistema o parte di questo ubicato negli Stati membri che è essenziale per il mantenimento delle funzioni vitali della società̀, della salute, della sicurezza e del benessere economico e sociale dei cittadini ed il cui danneggiamento o la cui distruzione avrebbe un impatto significativo in uno Stato membro a causa dell’impossibilità di mantenere tali funzioni”
Le infrastrutture critiche principali sono quindi i trasporti, le banche, le telecomunicazioni, le energy/utilities, i media, le industrie e gli ospedali, etc
Una riflessione quasi banale: se esistesse una tecnologia (un worm, un bug..) in grado di bloccare tutti i sistemi coinvolti, assisteremmo a un’immediata paralisi della società moderna, trasporti bloccati, ospedali in tilt, banche non operative, niente comunicazioni, industrie bloccate. Una situazione che non porta perdita di vite umane nell’immediato, ma le conseguenze nel breve termine possono essere più devastanti di una guerra reale.
Nella maggior parte dei casi dietro un’infrastruttura critica c’è un impianto industriale e questo diventa quindi un obiettivo strategico che ha una terribile caratteristica:
E’ facilmente attaccabile e difficilmente difendibile.
L’esempio più eclatante di arma informatica prodotta e utilizzata da uno stato per colpire un’infrastruttura critica è Stuxnet.
Worm scritto dagli USA per rallentare la produzione di uranio sabotando i sistemi di controllo industriale che pilotano le centrifughe.
Cos’è un sistema di controllo industriale?
Un sistema industriale è composto da 3 macroaree:
C’è un insieme di macchinari (Device) che possono essere qualunque cosa (robot, centrifughe, forni, etc), questi sono collegati a dei PLC industriali da cui vengono comandati; questi ultimi sono collegati a sistemi di controllo industriale (SCADA, DCS) che hanno il compito di monitorare e gestire la produzione.
L’evoluzione dei sistemi di controllo
Anni ’60
Siamo nell’era dell’elettronica analogica, i sistemi di controllo sono composti unicamente da interruttori meccanici e indicatori analogici.
(aggiungo, nelle sale controllo si poteva ancora fumare, la sigarette si tenevano nel taschino sinistro della maglietta)
Anni ’80
Approdiamo nell’era della microelettronica e nel campo dei sistemi di controllo assistiamo ad una rivoluzione: Si assiste all’introduzione dei quadri sinottici. C’è molta elettronica, lampadine come spie di segnalazione immediata (accesa ok, spenta non ok), interruttori, indicatori analogici, etc.
Questi sistemi venivano progettati e realizzati per il singolo impiego, sistemi proprietari con protocolli proprietari. Tecnologie relativamente semplici (dopotutto le funzioni che erano chiamate ad eseguire erano poche) ma molto costosi perché ogni sistema era progettato e realizzato per il singolo impiego e perfino i componenti erano spesso ingegnerizzati per l’occasione.
(ancora si poteva fumare, le sigarette si tenevano nel taschino sinistro della camicia, Facebook ancora non c’è per cui si passano ore e ore al telefono, per questo viene introdotta la “linea rossa” per le chiamate di emergenza. Ma la domanda è, cosa ci fanno quei 3 server di Gmail sulla sinistra dell’immagine? 🙂 )
Anni 2000
Siamo ormai in piena era dell’informatica, quando i Personal Computer si sono diffusi su larga scala e i relativi costi sono precipitati, è stata una conseguenza ovvia l’utilizzo di questi anche in ambito industriale.
In sostituzione di ambienti proprietari, fatti di hw proprietario, linguaggio proprietario, protocolli proprietari, si è passato ad un mondo diffuso, pratico e che permetteva quindi di ridurre drasticamente i costi.
Quando l’IT diventa un guaio
Tutti gli worm visti finora in ambito industriale utilizzando la stessa tecnica, il virus viene diffuso in internet per riuscire a farlo approdare, direttamente o tramite “portatori sani” (pc dei tecnici e infezione delle memorie usb) nei sistemi di controllo. Il Virus sfrutta una vulnerabilità nota o meno del del sistema operativo del sistema di controllo per inviare comandi ai plc o modificare quelli previsti.
Esempio: Apertura di una valvola al 90%. A Schermo risulterà aperta al 100% e non verranno visualizzati i riscontri negativi.
Del resto questi sono computer standard, con lo stesso sistema operativo utilizzato dalla maggior parte delle persone nel mondo, per questo è facile far “viaggiare” il worm, utilizzare i computer di utenti inconsapevole come strumento di trasporto verso il sito target.
Possiamo quindi affermare che i computer in uso nei sistemi di controllo industriale sono il mezzo tecnologico per raggiungere l’obbiettivo strategico, ovvero il sabotaggio dell’asse strategico.
Com’è possibile che in un’epoca in cui i pc sono in ogni azienda del mondo, gli specialisti dell’IT abbondano, vendor che ormai hanno una soluzione anche per stipsi dei sistemi informatici della tua azienda, 4 pc infilati in un industria diventino così incredibilmente problematici?
Il passaggio al sistema informatico attraverso l’utilizzo di Personal Computer standard nel sistema di controllo industriale ha portato 2 problemi:
•Problema di competenze (e di responsabilità)
•Le problematiche tipiche dell’IT entrano all’interno dei sistemi industriali, gestione della sicurezza in primis.
•Incompatibilità tra IT e industria.
Competenze e responsabilità
Nelle sale controllo degli anni ’60 la “cura” e gestione dei sistemi era affidata al team di “manutentori”, persone con competenze di meccanica e di elettricista, la cui dotazione era limitata a spelafili, nastro isolante, forbici e saldatore; il massimo della dotazione tecnica era il tester (voltmetro).
Con i vari passaggi epocali ovviamente le esigenze sono mutate e le competenze delle persone sono diventate inadeguate.
In questi passaggi le persone non possono essere dismesse in quanto non più competenti, ma vanno “evoluti” attraverso corsi di formazione. Facile a dirsi, più complesso nella pratica, specie con l’arrivo dell’informatica e la presenza in buon numero di manutentori “di prima specie”.
Per molti anni i sistemi informatici dentro l’impianto industriale sono stati trattati come dei pezzi di ferro, al pari di un’elettrovalvola. Di industrie ne ho visitate abbastanza e gli aneddoti si sprecano, dal “tecnico” che quando il pc del dcs rallenta gli spruzza un po’ di Svitol nel case, ai cavi rete giuntati a “Y” per collegare 2 sistemi. (industrie assolutamente classificabili come infrastrutture critiche)
Fortunatamente ormai è l’IT dell’azienda che sta prendendo in gestione anche questi sistemi (trovando resistenza da parte dei responsabili della manutenzione).
Con questo pregresso, andare oggi a sanare è un impresa titanica.
Ma anche l’IT i suoi danni li sta facendo.
Le esigenze di un impianto industriale sono molto diverse da quelle tipiche del mondo IT.
Nell’industria c’è bisogno di continuità assoluta, bassi costi e safety. Far gestire i sitemi di controllo industriale a personale prettamente IT privo di esperienza in ambito industriale può rivelarsi errato e pericoloso.
Safety & Security
In italiano si traducono con entrambi con “sicurezza” ma il significato è molto diverso e in ambito di controllo industriale una maggiore “security” può addirittura abbassare il livello di “safety”.
Partiamo dal presupposto che la safety c’è sempre stata e a tutti i livelli. Su questo l’arrivo dell’IT ha portato minacce proprio per la safety.
Safety: Le apparecchiature industriali sono dotate di sistemi di sicurezza che si attivano in determinate circostanze nel momento in cui c’è una reale possibilità che si verifichi un incidente. Con l’arrivo dell’IT sono subentrati i problemi di security: Un attacco informatico può portare al verificarsi d’incidenti legati a situazioni non previste dal sistema e quindi non correttamente gestite.
Un’esempio pratico:
Un sensore di pressione all’interno di un serbatoio fornisce un valore elevato che causa l’apertura di una valvola di sfiato. L’incidente è evitato grazie al sistema di sicurezza (Safety) inserito nell’impianto che ha rilevato l’anomalia.
Un worm o un hacker (concedetemi il termine generico) potrebbe inserirsi nella rete di processo e causare un malfunzionamento nella rilevazione della pressione del serbatoio causandone l’esplosione.
Il massimo della contraddizione l’ho visto in prima persona, un audit svolto da un’importante azienda inglese in un importante impianto industriale: bollone rosso perché le postazioni della sala controllo dell’impianto industriale non avevano una password policy sufficientemente robusta.
Pensa che bello se c’è un emergenza e per qualche motivo, in mezzo al panico totale, l’operatore deve ricordarsi e digitare una password di 12 caratteri alfanumerici con maiuscole, minuscole e caratteri speciali. In una sala controllo in cui l’accesso è estremamente ristretto e con controllo accesso abilitato forse è il caso che sui pc si lasci la priorità gestire un’evento di safety..
Parola chiave: Segmentare
Compresa la problematica, tutti gli enti specifici in campo industriale e informatico (ma anche i vendor) convergono nella soluzione tecnica da adottare in ambito di sistemi di controllo industriale per impedire l’avvenimento d’incidenti di sicurezza informatica: la segmentazione della rete.
Questo è un modello vecchio di 1000 anni, si chiama modello Fortino.
Lo scopo è mettere in protezione i propri beni isolandoli dal resto del mondo e quindi dalle minacce:
Si costruiscono delle mura invalicabili (con i firewall), magari si scava anche un bel fossato (un ids aggiuntivo non fa mai male).
Poi ovviamente il nostro re ci chiederà di aprire dei valichi per i servizi che consentono di controllare le monete d’oro. Sicuramente prima o poi qualcuna rimarrà aperta e ce ne dimenticheremo.
Infine ovviamente lasceremo entrare dalla porta principale il nostro maniscalco specializzato. E se il suo cavallo ha la malaria? Nemmeno lui lo sa, ma sta per portare dentro il castello un malefico virus che a breve infesterà tutti gli abitanti.
Con Stuxnet è andata esattamente così, le centrali nucleari iraniane erano perfettamente isolate, ma la chiavetta del tecnico Siemens aveva un brutto virus a bordo..
Io credo che si sta cercando di mettere pezze ad una scelta che è errata nelle sue fondamenta.
Non ho mai amato i sistemi open source e ho spesso sostenuto che in ambito professionale, dove ci sono sistemi che devono garantire tenere in piedi un business Microsoft sia da preferire.
In questo ambito no, credo che la scelta di utilizzare generici PC con un generico Windows sia l’errore fondamentale su cui focalizzarsi.
Il sistema operativo Windows è eccezionale, lo stesso sistema operativo va benissimo per il mondo consumer, per navigare in internet, per ascoltare musica, per l’archittetto, per l’ingegnere che progetta grattaceli, per il nerd di casa, per il personale dell’ICT; è un sistema operativo universale.
Per fare questo ha migliaia di librerie e miliardi di righe di codice.
Cosa deve fare il computer del sistema di controllo industriale?
Deve far girare un programma, un software non particolarmente complesso, con funzioni ben precise e limitate:
•Leggere un valore e rappresentarlo a video, al massimo correlandolo con altri valori. (un sinottico digitalizzato)
•Permettere all’operatore di poter intervenire in tempo zero.
•Dovrebbe avere requisiti almeno vicini al real time.
Oggi usiamo un sistema in cui in mezzo a mille processi inutili (per lo scopo d’utilizzo) gira un processo che ha requisiti di real time. Non bene.
In ambito automotive, per i sistemi di intrattenimento di bordo, si utilizzando dei computer con un hardware abbastanza standard (ARM o Tegra) ma con una configurazione che tipicamente prevede un doppio sistema operativo, uno real time molto semplice che si occupa di garantire i servizi essenziale e che ha il compito di interfacciarsi in modo controllato al can bus (rete di controllo) e un sistema operativo non real time che si occupa della parte visualizzata dall’utente e dei servizi di intrattenimento.
Ho riportato il mondo automotive perché condivide buona parte dei requisiti del mondo industriale: Safety, integrità, disponibilità, costi.
In questo campo mai si sognerebbero di mettere un Windows XP. Ogni libreria utilizzata viene pesata molto attentamente.
Per me la soluzione è qui, la Comunità Europea anzichè sponsorizzare con milioni di euro progetti per ipotizzare nuove e continue pezze da mettere sopra al problema, forse potrebbe spendere per far sviluppare un sistema operativo real time, minimale con il minor numero possibile di librerie. Open Source. In questo caso essere open source può essere garanzia di trasparenza e di nessuna backdoor di stato inserita tra le righe.
E ad oggi per mettere in sicurezza gli ambienti che abbiamo?
Probabilmente la strategia del fortino è l’unica strada percorribile, ma con 2 varianti importanti:
•I firewall vanno sostituiti da sistemi specifici e non riadattati dal mondo IT, che garantiscano una reale separazione fisica e attivino una comunicazione unidirezionale. (vedi soluzioni tipo Waterfall)
•Introdurre un sistema di Data Sanitization dei media in ingresso. (vedi soluzioni tipo Votiro)
L.
(luca.savoldi@abissi.eu)