Automazione Plus

La sicurezza inizia dal bootERT

I microcontrollori ed i controlli elettronici governano le nostre vite. Dagli impianti nucleari alle fabbriche e ai treni dei pendolari, sono ormai ovunque. Meno di un decennio fa, la maggior parte dei sistemi di controllo era costituita da innocue scatolette con hardware e software proprietario, completamente isolate dal mondo esterno. Quando il funzionamento di una di queste si interrompeva, un tecnico interveniva direttamente sul dispositivo. L’ottimizzazione di tempi e costi ha tuttavia portato online i sistemi di controllo; i tecnici possono così gestire molteplici incidenti remotamente, comodamente dalla propria scrivania. Ma questo confort ha un prezzo: gli attacchi ciber-fisici.

 

Motivazioni di un attacco

Integrità: Per quale motivo vengono manipolati i sistemi di controllo delle macchine? Entriamo nella sfera dei servizi segreti e delle organizzazioni terroristiche? Può anche essere, come Stuxnet ha dimostrato al mondo. Sabotatori? Potrebbe sembrare improbabile, ma che cos’è l’hacking di sistemi di controllo non protetti se non sabotaggio? Quando i sistemi di controllo sono in funzione in modalità offline, il sabotatore deve essere fisicamente sul luogo per causare un danno. Deve guadagnarsi un accesso in loco e può essere catturato nel tentativo. Un sistema online minimizza il rischio per l’hacker che vuole lanciare un attacco. L’hacker sta tranquillamente seduto alla sua postazione con tutte le sue risorse a portata di mano, può agire nell’anonimato e aiutato da altri attori altrettanto disonesti. Che si tratti di un messaggio politico, di una tentata estorsione, o semplicemente di una “bravata”, la motivazione è irrilevante.

Gli operatori di impianto potrebbero tentare “prodezze” con i macchinari, ma un uso delle apparecchiature di produzione al di fuori dei parametri consentiti ha spesso conseguenze rischiose, tra le quali l’usura è la meno preoccupante di tutte. I produttori originali di macchinari sono alla ricerca di modi per porre fine o almeno dimostrare la manipolazione, in modo da far valere diritti di garanzia e responsabilità.

Riservatezza: Lo spionaggio industriale rimane un rischio che viene troppo spesso sottovalutato. I parametri operativi o i concetti di controllo degli impianti manifatturieri sono infatti una preda ambita dalla concorrenza. Le connessioni remote rendono il furto dei dati più semplice. Il cinema può averci indotti a credere che sia sempre possibile scoprire chi accede ai dati e l’orario in cui ciò avviene, ma nella vita reale i sistemi spesso registrano le attività di login attraverso protocolli che sono fin troppo semplici da manipolare. La sottrazione di dati passa frequentemente inosservata, e il malfattore può analizzare il “bottino” con tutta calma offline.

 

Come posso proteggermi?

Molti dei moderni sistemi di controllo si basano su hardware standard, come PC industriali dotati di sistemi operativi standard, quali ad esempio VxWorks, QNX or Linux Embedded. Ambienti runtime in sistemi di controllo spesso adottano uno standard aperto (come CODESYS). Ogni rete remota va poi protetta da VPN e firewall, ma questi strumenti non offrono una protezione sufficiente per i sistemi di controllo. Una volta che l’hacker si è infiltrato, può agire liberamente in rete, e si dà il caso che numerosi tecnici salvino le password o le chiavi di accesso per la VPN dei propri clienti su laptop non protetti. Nessuna catena è più forte del suo anello più debole, ovvero una svista di un tecnico o una sola password debole possono compromettere la sicurezza di tutto il sistema.

I firewall e le VPN possono anche nascondere scappatoie e backdoor. Le chiavi crittografiche sono frequentemente troppo corte, specialmente quando si tratta di RSA. Fatti recenti hanno comprovato come la sicurezza promessa da tali sistemi sia stata poi violata. Il rovescio della medaglia delle rivelazioni dei media è che i potenziali hacker sono ora a conoscenza dei punti vulnerabili su cui fare breccia.

Una separazione fisica non corrisponde ad una protezione. In molti settori, svariate persone differenti possono accedere ai sistemi di controllo accessi. I tecnici manutentori accedono ai dispositivi in loco con i propri laptop. Un backup del software di controllo, ed i parametri di processo sono salvati anche altrove.

La protezione deve pertanto avere inizio dal sistema di controllo. Quest’ultimo può soltanto eseguire codice e far uso di configurazioni e parametri che siano stati garantiti da un soggetto autorizzato.

È possibile aggiornare la maggior parte dei sistemi di controllo sul campo. Si possono così aggiungere nuove funzioni e rimediare a malfunzionamenti. L’opzione di aggiornamento è però un tallone di Achille nell’armatura del sistema, che malintenzionati possono sfruttare per “iniettare” codice manipolato da remoto o direttamente nel dispositivo. Per impedire il suo verificarsi, il sistema deve essere avviato ed operato in un ambiente sicuro. Tutti i suoi componenti, dal bootloader in avanti, necessitano di un’autenticazione secondo i canoni crittografici per poterne garantire l’autenticità. Questo è quanto si definisce Boot Sicuro.

 

Come funziona il Boot Sicuro?

I componenti individuali dei sistemi di controllo sono firmati digitalmente dal produttore o dall’ingegnere di stabilimento. Ma chi verifica quali siano questi componenti? Quando e dove hanno luogo questi controlli? Un primo approccio consiste nel far sì che ogni stadio verifichi se quello successivo può essere avviato: il bootloader controlla il sistema operativo, il sistema operativo controlla l’ambiente runtime, l’ambiente runtime controlla l’applicazione, e così via. Affinché questa concatenazione sia efficace, la chiave pubblica non deve mai essere modificata nel primo stadio (deve cioè rimanere autentica). Ciò implica che il primo stadio debba perdurare immutabile. Rappresenta infatti l’ancoraggio dell’intera catena. L’optimum in fatto di sicurezza si raggiunge con un pre-bootloader, integrato fisicamente come SOC – system-on-chip. Un’alternativa meno onerosa è quella di utilizzare un dual bootloader, la cui prima parte non possa essere aggiornata, al fine di offrire almeno una protezione adeguata da minacce remote.

 

 

Il mio ambiente è sicuro?

Ulteriori requisiti di sicurezza prevedono che ciascuno stadio controlli se il precedente è stato eseguito correttamente. CodeMeter offre entrambi i tipi di controllo, in avanti e a ritroso. Il controllo a ritroso è gestito da un motore di stato a bordo della CmDongle e da una soluzione di crittografia abbinata a tale motore. Lo stadio successivo può essere decrittato solo se il precedente è stato eseguito correttamente e lo stato corretto è stato registrato nella chiave. Ciò impedisce che componenti individuali del software siano simulati nel laboratorio di un hacker, e preclude ogni possibile analisi del software nel suo ambiente. L’attività di spionaggio diventa impossibile, tanto quanto tentativi di fare leva su errori di implementazione. Il dispositivo viene protetto da uno scudo addizionale.

 

Perché così complicato? Perché non un semplice utilizzo di hash?

Qualsiasi algoritmo di crittografia asimmetrico, come l’ECC, si basa sull’uso di una chiave privata e di una pubblica. Questo rende il processo di decrittazione matematicamente impossibile – la chiave privata non può essere dedotta dalla chiave pubblica.

La chiave privata viene mantenuta al sicuro – in condizioni ideali, protetta in una chiave CodeMeter. Come il nome stesso lascia intuire, la chiave pubblica è disponibile a tutti.

Allora perché usare due chiavi? La chiave privata viene utilizzata per creare una firma, un’operazione che solo il detentore della chiave può attuare. La chiave pubblica verifica poi la validità della firma, ma non può essere impiegata per creare una firma valida di per se stessa.

Al contrario una funzione di hash, con o senza “sale casuale”, utilizza la stessa chiave per creare e per verificare il valore di hash. Ciò implica che chiunque testi l’hash possa anche creare un hash valido. La firma non dovrebbe mai essere sostituita da hash. Ne risulterebbe soltanto un senso di sicurezza ingannevole.

 

Conclusioni

Il boot sicuro e la protezione dell’integrità che facciano uso delle firme e della crittografia sono un pilastro su cui poggiano tutti i controlli di sicurezza. Essi complicano enormemente la riuscita degli attacchi fisici ed impediscono virtualmente tutti gli attacchi ciber-fisici. CodeMeter offre una soluzione concepita per infiltrarsi a fondo nel dispositivo, e richiede che tutti i componenti vengano eseguiti in concatenazione. I permessi possono essere definiti minuziosamente affinché incontrino le esigenze specifiche. CodeMeter protegge da spionaggio, manipolazione e sabotaggio.

 

Questo articolo è tratto da Keynote n. 26