Visto che i dispositivi IoT sono sempre più presenti nella nostra vita, diventa sempre più importante potersi fidare della loro sicurezza e affidabilità. Se i vantaggi della IoT devono tenere il passo con la diffusione dei dispositivi, gli sviluppatori dell’IoT hanno la responsabilità di preservare questa fiducia utilizzando una strategia di sicurezza end-to-end. I dispositivi IoT sono pur sempre dei sistemi elettronici embedded e sono soggetti agli stessi problemi di affidabilità e sicurezza dei sistemi mission-critical di altri settori. Sotto i vari strati del software dei suddetti dispositivi vi sono ingressi, uscite, macchine a stati finiti e dati, progettati per uno specifico utilizzo. I sistemi complessi contengono più sottosistemi, sviluppati da più aziende, ognuno con le proprie interfacce di rete esterne. Un tipico scenario IoT prevede inoltre diversi dispositivi in rete che si scambiano dati, come sensori e controller, che hanno anche dei vincoli in termini di dimensioni, peso e potenza. Che si tratti di energia intelligente o di networking, componenti automobilistici o dispositivi indossabili, la fiducia dipende dalla sicurezza e dall’affidabilità in fase di esecuzione.
Tipi di attacchi
Le architetture di sicurezza end-to-end difendono i sistemi embedded da tre categorie principali di attacchi: sniffing (intercettazione), spoofing (falsificazione) e code injection (immissione di codice malevolo). Gli aggressori utilizzano una combinazione di questi tre tipi di attacchi per accedere ai dati sensibili e modificare le funzioni del sistema. Gli attacchi via rete avvengono attraverso interfacce di rete esterne, a livello di scatola nera, per ottenere accesso al sistema operativo, alle strutture di dati e alle applicazioni. Gli attacchi fisici, invece, vengono eseguiti sui componenti hardware presenti all’interno del chassis. Nonostante gli attacchi via rete siano di vasta portata e più pericolosi, dagli attacchi fisici invece è più difficile difendersi. Non c’è nulla che un software possa fare per bloccare un malware quando il sistema è spento.
Valutazione dei rischi
Il progetto della sicurezza end-to-end inizia prima della scelta dell’hardware e del software, valutando l’impatto di queste minacce. Durante il processo di valutazione dei rischi, gli esperti della sicurezza esaminano la protezione dei dati sensibili, delle interfacce e del software dalle minacce fisiche e di rete all’interno dell’ambiente operativo. Consideriamo un semplice dispositivo IoT come un tostapane intelligente. La sensibilità dei dati è molto bassa. Anche l’impatto dei comandi di spoofing è minimo. Ma qual è l’impatto di un software dannoso? Monitoraggio di rete, backdoor Internet e la capacità di attaccare altri dispositivi o utilizzarli come punti di attacco: il rischio economico aumenta drasticamente. Non è il solo sistema embedded a venire attaccato: lo sono tutti gli altri dispositivi collegati a quel sistema. I sistemi embedded - apparecchiature medicali, automobili, allarmi, computer domestici - non sono più dei dispositivi isolati. Sono dei punti di ingresso alla vostra vita in rete e alla vostra vita reale.
Instaurare la fiducia nell’IoT
La fiducia nella sicurezza embedded si riferisce a un’aspettativa di integrità di modo che un sistema funzioni secondo come è stato progettato. Il processo di instaurare fiducia è l’autenticazione. La root-of-trust di un sistema è il punto in cui l’autenticazione ha inizio e poi si estende attraverso ogni strato del software. Soluzioni ad alta affidabilità supportano una root-of-trust nell’hardware o nella memoria non modificabile in modo che non possa essere modificata. Ad ogni accensione, il processo di avvio sicuro verifica l’autenticità di ogni strato software prima di permetterne l’esecuzione. Ciò garantisce che il software non sia corrotto e provenga da una fonte valida. Un componente software non viene mai eseguito a meno che non si sia dimostrato attendibile. Lo scopo dell’avvio sicuro è di eliminare il rischio di immissione di codice malevolo per attacchi di tipo fisico o di rete verificando che il software sia privo di malware ad ogni accensione.
Estendere la fiducia da remoto
Non ci si deve mai fidare di una rete, si deve sempre sospettare che al di là di ogni singolo connettore ci sia un aggressore che sta tentando di catturare dati, inviare comandi e “giocare a torello” (attacco “man in the middle”) con i vostri dispositivi. La figura nella pagina seguente in alto illustra un attacco del tipo “man in the middle”. Nella migliore delle ipotesi, l’aggressore può monitorare tutti i dati e i comandi scambiati tra due dispositivi (ad esempio laptop e videocamera). La comunicazione tra i due endpoint può essere inviata a sistemi di raccolta nascosti (backdoor). Gli aggressori possono persino simulare entrambi i dispositivi contemporaneamente, spegnendo la videocamera e falsificandone lo stato mentre ne sostituiscono il flusso dati. La crittografia Pki (Public key infrastructure) elimina la minaccia “man in the middle” utilizzando certificati per l’autenticazione reciproca degli endpoint. Un’autorità di certificazione genera i certificati per ogni dispositivo e garantisce l’identità di ciascuno di essi firmando digitalmente il certificato. Le firme digitali emesse da una chiave privata vengono verificate esclusivamente dalla corrispondente chiave pubblica. Pertanto, un certificato CA permette a ogni dispositivo di autenticare l’identità di un sistema prima di accettarne i dati.
Autenticità del software
Che cosa impedisce che qualcuno apra il coperchio di un sistema spento e acceda alla memoria flash per immettere codice contraffatto? Utilizzando le stesse entità Pki come certificati, gli sviluppatori possono firmare le immagini software per garantirne l’autenticità in fase di avviamento e di esecuzione, tramite la procedura di avvio sicuro. Il codice viene firmato utilizzando una chiave privata asimmetrica (apposizione della firma digitale) e verificato sul dispositivo in fase di esecuzione utilizzando il corrispondente ancoraggio di trust (chiave pubblica e certificato digitale).
Infrastruttura di sicurezza aziendale
Grazie alla crittografia, gli sviluppatori IoT possono creare sistemi di dispositivi interconnessi attendibili su reti pubbliche non attendibili. L’implementazione di una strategia di protezione end-to-end richiede una piattaforma che includa un modulo crittografico, protocolli di protezione di rete, protezione della chiave e avvio sicuro. Nonostante le ore-uomo investite a proteggere il dispositivo, il rischio rimane se la CA e le chiavi di firma software risultano compromessi. La compromissione delle chiavi Pki di root influisce su ciascun dispositivo prodotto, di conseguenza, la protezione delle chiavi di root è la funzione più critica dell’intero sistema e occorre darle il giusto grado di priorità. Nelle complesse catene di produzione e fornitura odierne, una workstation con un modulo di sicurezza hardware semplicemente non basta. La IoT offre la possibilità di effettuare la produzione in diversi stabilimenti offshore e società di terze parti, mentre gli sviluppatori hanno la necessità di aggiungere software alla piattaforma di sicurezza senza dover esporre la proprietà intellettuale alla concorrenza locale. L’infrastruttura di sicurezza offre agli interessati la possibilità di utilizzare le chiavi senza il rischio di compromissioni.
Quando un software buono diventa cattivo
Una garanzia è valida solo nella misura in cui lo è il software che la fornisce. Green Hills Software promuove Phase (Principles of High-Assurance Software Engineering). Phase consiste di: implementazione minima, suddivisione in componenti, privilegi minimi, processo di sviluppo sicuro e convalida esperta indipendente. Questi stessi principi, utilizzati nello sviluppo del sistema operativo real-time Integrity, sono il fondamento dello sviluppo di applicazioni dove c’è la necessità di minimizzare la probabilità e l’impatto di un errore software.
Sviluppare una strategia di sicurezza end-to-end
Integrity Security Services, una società di Green Hills Software, continua a promuovere la rivoluzione IoT aiutando i propri clienti a costruire la fiducia nei propri dispositivi attraverso una progettazione embedded sicura del tipo end-to-end. Partendo da una valutazione delle minacce per poi analizzare l’impatto di eventi non autorizzati, le aziende possono beneficiare di una strategia di sicurezza conforme alle norme ISS 5 sulla sicurezza embedded.