Nella Figura 3 viene fornito un elenco indicativo dei tipi di attacco a cui può essere sottoposta un'applicazione IoT a ogni livello. I più attenti tra voi avranno notato che sono passato a un 5° elemento (niente a che fare con Milla Jovovich, purtroppo) che ho chiamato il "Livello gateway". Questo livello non è direttamente correlato all'applicazione, ma riguarda l'aggiunta sicura di un elemento IoT in un sistema distribuito.
Come ho già detto, tratteremo solo uno o due attacchi per livello, ma facendo riferimento all'elenco potrete cercare ulteriori informazioni sugli altri, se interessati.
Livello sensore
A partire dal livello del sensore, i singoli nodi possono essere vulnerabili all'acquisizione o alla sostituzione. A volte è sufficiente aggiungere semplicemente un nodo extra, che appare come uno in più tra migliaia. Una volta che un nodo compromesso fa parte della rete, la porta è aperta a molti altri attacchi.
L'esempio dell'auto a guida autonoma ci ha già mostrato che è possibile inserire dati falsi anche quando i nodi non sono direttamente sotto il controllo di un utente malintenzionato. Ma una volta che un utente malintenzionato prende il controllo, l'eventualità migliore che può verificarsi è che un nodo venga utilizzato solo per una parodia relativamente innocua, come è accaduto con l'hack di Lime Scooters nel 2019.
Tuttavia, il motivo più comune per cui qualcuno potrebbe voler controllare il vostro nodo non ha nulla a che fare con la rete: l'obiettivo è costruire un esercito di "bot" (o "botnet") che può essere utilizzato in un attacco DDoS (Distributed Denial of Service) a livello di rete.
Livello di rete
In un attacco DDoS, i server di destinazione sono inondati da richieste di servizio fasulle provenienti da migliaia di nodi zombie orchestrati da un server di comando e controllo, che di solito è stato anche violato. I gruppi di hacker che controllano una botnet spesso eseguono attacchi a noleggio, quindi, ad esempio, un'azienda senza scrupoli può pagare un gruppo per abbattere il sito web di un concorrente il giorno in cui questo concorrente lancia un nuovo prodotto, impedendo agli utenti legittimi di accedere al sito e rovinando il lancio.
Sebbene gli attacchi DDoS non li riguardino specificamente, è capitato che i dispositivi IoT siano stati vulnerabili all'uso a causa della configurazione debole, come password hardwired (cioè non modificabili) o password predefinite pubblicate su dispositivi che non costringono gli utenti a modificarle al primo utilizzo.
Il più famoso di questi attacchi è probabilmente quello ai server DNS di Dyn, realizzato mediante Mirai botnet, che ha causato il blocco di Internet lungo tutta la costa orientale degli Stati Uniti. Nel febbraio di quest'anno, Amazon Web Services è riuscito a mitigare quello che, nel momento in cui sto scrivendo questo articolo, è il più grande attacco registrato a 2,3 terabit al secondo!
Gli attacchi di routing sono quelli in cui i nodi malevoli cercano di reindirizzare i dati che ricevono. Nell'attacco sinkhole il nodo corrotto offre un "percorso più breve" che porterà altri nodi a indirizzare il traffico verso di lui. Il sinkhole può essere combinato con un wormhole, in cui un utente malintenzionato utilizza una connessione fuori banda (cioè una connessione diretta che non fa parte del flusso di dati standard) per connettersi a un altro dispositivo, bypassando efficacemente la sicurezza della rete, consentendo il furto dei dati.
Livello middleware
L'attacco man-in-the-middle è un modo per sfruttare il modello di comunicazione publish-subscribe del protocollo MQTT. Il broker MQTT funge da proxy tra i client di pubblicazione e sottoscrizione, disaccoppiandoli e consentendo l'invio di messaggi senza bisogno di informazioni sulla destinazione. Quando un utente malintenzionato riesce a ottenere il controllo del broker, ha il controllo completo del flusso di dati, mentre i client sono ignari di cosa stia accadendo.
Livello di applicazione
Questo livello riguarda i servizi forniti all'utente. Ammettiamolo: gli utenti saranno sempre il più grande problema di sicurezza del progettista. La maggior parte degli utenti non capisce la tecnologia o non è interessata a conoscerla (per quanto la riguarda, potrebbe pure trattarsi di magia), ma si aspetta che funzioni e si infastidisce molto quando scopre che i propri dati privati sono sparsi per tutto il web.
A questo livello, l'applicazione IoT deve proteggere gli utenti dalla violazione della sicurezza, dal furto di dati (suggerimento: configurare correttamente i bucket di archiviazione AWS S3) e dalla perdita del controllo delle applicazioni.
Iniezioni di codice malevolo: gli hacker sono abili nel trovare i metodi più semplici per entrare in un sistema. Se un sistema è vulnerabile a script dannosi o reindirizzamenti, perché non controlla correttamente il codice, è qui che gli utenti malintenzionati colpiranno. Un esempio è (CVE)-2018-10933, che documenta un bug nella libreria che implementa il protocollo Secure Shell (libssh), in cui, a causa di una struttura condivisa nel codice lato client e lato server, un client dannoso potrebbe accedere alla connessione autenticata semplicemente dichiarando SSH2_MSG_USERAUTH_SUCCESS, cioè rivendicando l'autenticazione, indipendentemente dal risultato dell'autenticazione!
Il metodo più comune di iniezione di codice malevolo è l'XSS o cross-site scripting per ottenere uno script malevolo in quello che altrimenti sarebbe un sito web attendibile.
Livello gateway
Il livello gateway può servire a una serie di scopi. È qui che più nodi (forse eterogenei) sono collegati localmente da protocolli come Bluetooth Mesh, Zigbee, Z-wave o persino LoraWan, prima di connettere questi dati al cloud. Per questo, nel gateway i protocolli vengono tradotti per la comunicazione tra diversi livelli. Ciò può anche significare decrittografare e ri-crittografare i flussi di dati dentro e fuori da questo livello.
I gateway sono un componente fondamentale per l'onboarding sicuro di nuovi nodi. Fungono da intermediari tra i nuovi dispositivi e i servizi di gestione, quindi devono proteggere tutte le chiavi di crittografia che li attraversano. Possono essere oggetto di attacchi man-in-the-middle o di intercettazione per acquisire queste chiavi durante l'onboarding. Naturalmente, l'onboarding può facilitare questa procedura agli hacker semplicemente trasmettendo informazioni utili sulla configurazione.
Un altro ruolo importante del livello gateway riguarda gli aggiornamenti del firmware. È possibile utilizzare il gateway per scaricare e installare gli aggiornamenti, poiché i dispositivi IoT tendono a non disporre delle risorse per farlo. Quindi il gateway diventa responsabile della registrazione della versione attuale del firmware e del controllo della validità delle firme. È opportuno non brickare i propri dispositivi con un aggiornamento.