L’IoT (Internet of Things, l’Internet delle cose) è sicuramente una tecnologia affascinante, ma non priva di rischi. Dagli spazzolini da denti alle automobili ai cuscini sui quali ci addormentiamo, la diversità di hardware e software nel futuro dell’IoT rappresenta sicuramente un’ottima opportunità per il mercato, ma anche un vantaggio per gli attaccanti che possono contare sulla mancanza di una visione comune e strutturata del “sistema IoT”.
La domanda di servizi non può essere valutata a priori, poiché dipende da cosa vogliono gli utenti e da come il mercato è in grado di rispondere. È importante che “smart” diventi al più presto sinonimo di “sicuro”, anche attraverso la cooperazione e la collaborazione tra i produttori nella definizione di standard e linee guida affidabili.
Mirai ha fatto emergere quanto il fascino dell’iperconnessione ci colga ancora indifesi e come ogni oggetto IoT possa di fatto diventare un potenziale zombie. Sicurezza e IoT cercano di convergere, ma il percorso è ancora molto lungo e i problemi sono destinati a crescere in funzione dell’aumento di complessità del sistema.
Indice degli argomenti
Il mondo dell’IoT: il mercato e la tecnologia
Il mercato globale dell’Internet of Things (IoT) ha superato da tempo un fatturato da 100 miliardi di dollari e le previsioni indicano che la cifra supererà i 1,6 trilioni di dollari entro il 2025.
Con questi numeri è facile prevedere che sia una tecnologia destinata a fare balzi in avanti al di là di ogni immaginazione: computer, telefoni, elettrodomestici, veicoli e chissà quali altri oggetti saranno dotati di sensori sempre più sofisticati.
Ed è una profezia fin troppo facile immaginare che contestualmente all’accelerazione nello sviluppo delle applicazioni assisteremo ad un aumento dei problemi di sicurezza.
L’IoT è un insieme di oggetti, servizi, utenti e dispositivi interconnessi che comunicano, e condividono dati e informazioni, orientandosi ad uno scopo comune in settori diversi con differenti applicazioni.
L’obiettivo è di trasformare il modo in cui viviamo facendo sì che i dispositivi “smart” dei quali ci circondiamo possano svolgere compiti quotidiani, abitando in case intelligenti, dentro città intelligenti, guidando auto intelligenti su strade intelligenti con segnali stradali intelligenti che garantiscono la nostra sicurezza.
L’architettura dell’IoT è definita su tre layer: Perception Layer, Network Layer e Application Layer.
Il Perception layer è lo strato dei sensori, che ha la funzione di acquisire i dati dall’ambiente circostante attraverso dispositivi di controllo e attuatori rilevando, raccogliendo ed elaborando le informazioni che vengono trasmesse al livello di rete.
Su questo strato possiamo collocare i sensori presenti sui nostri laptop, smartphone e gli innumerevoli RFID annegati in una miriade di oggetti d’uso quotidiano.
Il livello successivo è il Network layer, che ha il compito di instradare i dati raccolti e trasmetterli attraverso i vari nodi. Gli apparati che lavorano a questo livello sono tipicamente i router, gli access point, i trasmettitori Bluetooth e tutti quei device che utilizzano tecnologie recenti quali WiFi, LTE, 5G e Zigbee.
Il terzo livello è il l’Application layer, ovvero lo strato dove a livello logico nascono le applicazioni “intelligenti” per il funzionamento di smart city, smart home o lo smart government e in generale quelle piattaforme per l’informazione e la comunicazione che utilizzano la tecnologia al fine di migliorare la qualità della vita, ridurre i consumi e contribuire all’ottimizzazione delle risorse come gestione del traffico veicolare, delle reti elettriche, dell’illuminazione e via dicendo.
Tutto ciò grazie anche al rapido sviluppo delle tecnologie RFID e delle reti di sensori wireless (WSN). Infatti i sensori RFID consentono di etichettare qualsiasi elemento rendendolo identificabile nell’IoT mentre grazie alle WSN ogni “cosa” (persone e oggetti) diventa individuabile in modalità wireless connettendo così il mondo fisico e quello digitale.
I componenti dell’ecosistema IoT
In breve, un ecosistema IoT comprende cinque componenti:
- sensori, responsabili della raccolta dei dati;
- nodi di calcolo, contenenti la CPU e necessari per l’elaborazione dei dati e delle informazioni ricevute dal/i sensore/i;
- ricevitori, che sono in realtà ricetrasmettitori deputati alla raccolta dei messaggi inviati dai nodi di calcolo locali e remoti o altri dispositivi associati;
- attuatori, eventualmente di tipo elettromeccanico, funzionanti sulla base delle istruzioni predisposte dai Nodi di calcolo, che elaborano le informazioni ricevute dai sensori e/o da Internet, attivando il dispositivo associato per eseguire una funzione;
- dispositivi, per eseguire il compito desiderato come e quando attivati.
I problemi dell’IoT e i rischi
Come già accennato, l’IoT è un fenomeno che sta vivendo una crescita esponenziale promettendo sviluppi e applicazioni che fino a qualche anno fa sarebbero sembrate fantascienza, ma tutto ciò implica che si debbano fare delle valutazioni obiettive sotto il profilo della sicurezza.
Infatti, anche per questa tecnologia è necessario preservare Riservatezza, Integrità e Disponibilità (CIA), ma la situazione è ulteriormente complicata dalle oggettive limitazioni in termini di componenti, dispositivi, risorse computazionali, potenza, nonché dalla natura variegata e onnipresente che la caratterizza.
Tecnologicamente, l’ubiquità dell’IoT e l’eterogeneità dei dispositivi rendono la sicurezza un concetto piuttosto complesso da implementare.
Per la loro stessa natura i componenti hanno necessità di alimentazione, connessioni, scalabilità che implicano autenticazione delle comunicazioni, integrità e sicurezza end-to-end.
Quando un dispositivo IoT viene acceso, deve autenticarsi nella rete prima di scambiare dati. Una volta connesso, dal momento che dispone di ridotte capacità computazionali e limitata memoria, si pone il problema di filtrare i pacchetti indirizzati al device tramite delle funzioni di firewalling, senza contare che per l’installazione degli aggiornamenti sono necessarie soluzioni che ottimizzino il consumo di banda.
Per quanto riguarda i problemi di confidenzialità, è cruciale garantire che il dato sia accessibile solo ed esclusivamente agli utenti autorizzati, ove per “utente” si possono intendere umani, macchine o servizi.
Le incognite circa l’integrità dei dati derivano invece dal principio che l’IoT si basa su un fitto scambio di informazioni tra sensori, dispositivi e applicazioni e per questo diventa vitale che il messaggio arrivi completo dal trasmittente al ricevente, senza modifiche in transito, intenzionali o fortuite.
Per questo è necessario garantire comunicazioni end-to-end con protocolli sicuri, anche se non sempre sono sufficienti a livello di endpoint data la ridotta capacità computazionale dei nodi.
Per quanto riguarda la disponibilità, sappiamo che l’obiettivo dell’IoT è di iperconnettere il maggior numero di oggetti “smart” accedendo a notevoli quantità di dati che devono essere disponibili in qualsiasi momento, così come i servizi e le applicazioni devono essere raggiungibili quando necessario.
Oltre alla CIA, altre considerazioni importanti da fare sulla sicurezza dell’IoT riguardano la necessità di autenticare una quantità eterogenea di oggetti. Ogni entità dell’IoT deve avere la possibilità di riconoscere e autenticare una marea di device, servizi o persone in maniera univoca e spesso ognuno di questi oggetti deve interagire e riconoscere l’altro per la prima volta.
La diversità dei device che partecipano all’IoT implica livelli di complessità differenti dovuti non solo alla loro natura, ma anche a differenze di produttore, software, firmware, versioni, interfacce o velocità di trasmissione.
La sicurezza delle connessioni persona-persona, device-device o device-persona va sempre tenuta in considerazione nell’implementazione di reti che si interconnettono all’interno di scenari in continua trasformazione attraverso l’adozione di sistemi di crittografia che possano garantire un adeguato livello di sicurezza.
IoT e rischi: sicurezza a tutti i livelli
Abbiamo visto che l’architettura dell’IoT funziona su tre livelli: Perception layer, Network layer e Application layer ciascuno con specifici requisiti di sicurezza.
Cyber security e perception layer
A questo livello tutto è connesso con tutto e, a meno di non disporre di cavi veramente molto lunghi, dobbiamo tenere in considerazione la modalità di collegamento e le caratteristiche del segnale wireless al quale affidiamo l’interconnessione.
Tra le vulnerabilità più comuni sappiamo che i segnali possono essere disturbati da altre onde così come possono essere intercettati.
Ma un attaccante può anche approfittare della necessità che un dispositivo debba essere collocato all’esterno di un edificio per poter trasmettere, diventando facile bersaglio per manomissioni e intercettazioni.
È infatti responsabilità del produttore farsi carico di progettare device protetti contro le violazioni, ma anche dell’utente il quale deve rendersi conto che quando installerà la telecamera o il sensore di movimento fuori casa dovrà proteggerlo adeguatamente.
Inoltre, molte applicazioni dell’IoT utilizzano RFID che per loro natura hanno ridottissima capacità di memorizzazione e minime capacità di elaborazione rivelandosi piuttosto vulnerabili. A questo livello la confidenzialità può essere compromessa da un Replay Attack tramite lo spoofing dell’identità di un device o violando le chiavi di crittografia tramite attacchi Side Channel di tipo timing attack.
In questo caso, le contromisure da adottare implicano l’implementazione di robusti meccanismi di crittografia, autenticazione e controllo accessi, nei limiti delle ridottissime capacità elaborative dei device.
Il network layer
Spostandoci sul layer di rete scopriamo che l’IoT è vulnerabile agli stessi attacchi che riscontriamo su Internet: oltre al Denial of Service che sfrutta le ridotte capacità operative dei device, le comunicazioni tra nodi possono essere intercettate e sniffate grazie alla debolezza dei meccanismi che sovrintendono allo scambio dei dati, così come sono suscettibili ad attacchi Man-in-the-Middle che possono intercettare le comunicazioni violando le chiavi di cifratura e quindi compromettendo la sicurezza del canale di comunicazione.
Senza contare che, data la natura estremamente eterogenea dei dispositivi connessi, emerge un problema di compatibilità: frigoriferi, termostati, telecamere, automobili e totem informativi possono avere difficoltà nello stabilire canali sicuri di comunicazione e l’attaccante può approfittarne per ottenere una maggiore quantità informazioni sul target.
Infatti, il device non ha gli elementi per “capire” lo stato della rete e la relativa sicurezza e non riuscendo a rilevare una situazione anomala non è in grado di auto-proteggersi.
IoT: i rischi per l’application layer
Il problema dello strato applicativo anche in questo caso riflette la complessa e differente natura degli elementi in gioco. Non esistendo policy globali per governare lo sviluppo e l’interazione tra applicazioni si entra in una “terra di nessuno” ove differenti programmi adottano meccanismi di autenticazione poco o per nulla compatibili a scapito della riservatezza.
Nello stesso tempo la pletora di oggetti connessi che scambiano una grande quantità di dati, sono vulnerabili ad un possibile sovraccarico che avrebbe un impatto negativo sulla disponibilità dei servizi.
Senza contare che l’interazione umana con applicazioni tanto diverse tra loro fa perdere di vista la moltitudine di informazioni che vengono analizzate, utilizzate e memorizzate.
Su uno smartphone, un utente evoluto può decidere quali permessi concedere, ma su un termostato? sull’infotainment di un’automobile? su una smart-tv? Solo per dare un’idea della fragilità dell’ecosistema IoT con conseguenze potenzialmente fatali, la Food & Drug Administration nel 2017 ha rivelato che alcuni impianti cardiaci (pacemaker, defibrillatori e device per la resincronizzazione) potevano essere attaccati e violati con conseguenze facilmente immaginabili: la mancanza di consapevolezza e competenza verso una tecnologia relativamente recente, rende gli utilizzatori drammaticamente vulnerabili.