Contattaci

IoT: Sicurezza e possibili attacchi

  • Data: 18 Dicembre 2019
  • Autore: Alessio Benedetti
  • Categorie

  • Giuneco Tech

    Il nostro settore richiede uno studio continuo e una forte attenzione all’innovazione. Incentiviamo quindi dei programmi formativi annuali per tutti i componenti del team, con ore dedicate (durante l’orario di lavoro) e serate formative sia online che in presenza. Sponsorizziamo eventi, sia come partner che semplicemente come partecipanti, e scriviamo articoli su quello che abbiamo imparato per essere, a nostra volta, dei divulgatori.

    Vai alla sezione Team
  • Vista la diffusione sempre più capillare di dispositivi connessi ad internet (di svariate tipologie), è diventato importante conoscere gli eventuali rischi in cui si può incorrere nell’ambito del’IoT (Internet Of Things).

    IoT aggiunge la connettività Internet a un sistema di dispositivi informatici correlati, macchine meccaniche e digitali, oggetti, animali e/o persone. Ad ogni dispositivo viene fornito un identificatore univoco e la possibilità di trasferire automaticamente i dati su una rete. Ovviamente, consentire ai dispositivi di connettersi a Internet li apre al rischio di una serie di gravi vulnerabilità, a meno che non venga effettuata una adeguata protezione.

    Vista la forte crescita del mercato dei dispositivi IoT, la sicurezza non è sempre stata considerata prioritaria, da parte dei produttori, durante la fase di progettazione. Inoltre, esiste un divario negli standard dei dispositivi IoT per la sicurezza che fa sì che non siano trattati in modo olistico, quindi è possibile consegnare un dispositivo al mercato in grado di autenticare il suo utente, crittografare i dati che trasmette, de-crittografare i dati che riceve, fornire o verificare la prova di integrità, ma che sia ancora insicuro. La sfida, sia per chi fornisce sia per chi progetta, è quella di introdurre sul mercato solo sistemi IoT sicuri e ciò richiede un approccio diverso, che dovrà essere abbastanza flessibile da adattarsi alla natura dell’ecosistema IoT dinamico.

    Esempi di attacchi

    Hack della Jeep

    A luglio 2015 Il sito Web di IBM Security Intelligence ha segnalato l’hack della Jeep. Un team di ricercatori è stato in grado di assumere il controllo totale di un SUV Jeep utilizzando il bus CAN del veicolo, progettato per consentire ai microcontrollori e ai dispositivi del veicolo di comunicare tra loro.
    Sfruttando una vulnerabilità di aggiornamento del firmware, hanno dirottato il veicolo utilizzando la rete cellulare Sprint (fornitore mobile americano) e hanno scoperto di poterlo accelerare, rallentare e persino deviare dalla strada.

    Provider servizi – DNS

    Nel 2016 il più grande attacco DDoS mai lanciato sul provider di servizi Dyn, una compagnia che gestisce la maggior parte dei servizi DNS di Internet, usando una botnet IoT. Ciò ha portato alla caduta di enormi porzioni di Internet, tra cui Twitter, The Guardian, Netflix, Reddit e CNN. Questa botnet IoT è stata resa possibile da un malware chiamato Mirai. Una volta infettati da Mirai, i computer cercano continuamente su Internet dispositivi IoT vulnerabili e quindi utilizzano nomi utente e password predefiniti noti per accedere, infettandoli con il malware. Questi dispositivi erano cose come fotocamere digitali e lettori DVR.

    BabyMonitor

    Nel 2016 venne scoperta una vulnerabilità nei dispositivi Owlet, dei sensori che monitorano il battito cardiaco dei bambini e trasmettono i dati in modalità wireless a un hub vicino. Queste unità domestiche connesse a Internet possono inviare un avviso agli smartphone dei genitori se qualcosa non va. La stazione base Owlet crittografava i dati inviati e ricevuti dai server del produttore, che, se necessario, contattavano i telefoni dei genitori, ma la rete Wi-Fi ad hoc che collegava la stazione base al dispositivo sensore era completamente non crittografata e non richiedeva alcuna autenticazione per accedere.

    Chiunque nel raggio d’azione, poteva curiosare sulla rete wireless della stazione base. Un singolo comando non autenticato su HTTP poteva fare in modo che la stazione base Owlet lasciasse la rete Wi-Fi domestica e si unisse a una scelta dall’attaccante; era anche possibile prendere il controllo del sistema e monitorare il bambino di uno sconosciuto e impedire l’invio di avvisi.

    Impianti cardiaci

    Nel 2017 venne scoperta una vulnerabilità ad alcuni dispositivi cardiaci impiantabili del St. Jude Medical Center in California. L’FDA (Food and Drug Administration) verificò che era possibile prendere il controllo dei dispositivi e una volta dentro, era possibile esaurire la batteria o eseguire la stimolazione o shock errati. I dispositivi, come pacemaker e defibrillatori, vengono utilizzati per monitorare e controllare le funzioni cardiache dei pazienti e prevenire attacchi di cuore. La vulnerabilità si è verificata nel trasmettitore che legge i dati del dispositivo e li condivide in remoto con i medici. La FDA ha affermato che gli hacker avrebbero potuto controllare un dispositivo accedendo al suo trasmettitore.

    Microsoft

    Nell’agosto 2019 un gruppo di hacking ha messo in atto un attacco basato sull’IoT a clienti Microsoft prendendo di mira tre dispositivi IoT specifici – un telefono VoIP, un decodificatore video e una stampante. I dispositivi hanno fornito l’accesso alle reti a cui erano collegate. Due dei dispositivi hanno subito la violazione perché nessuno aveva modificato la password predefinita del produttore e l’altro non aveva applicato l’ultima patch di sicurezza.

    Meccanismi di sicurezza per dispositivi e sistemi IoT

    I metodi di sicurezza IoT variano in base all’applicazione IoT specifica e alla posizione dell’utente nell’ecosistema IoT. Ad esempio, i produttori di IoT dovrebbero concentrarsi sulla costruzione della sicurezza fin dall’inizio, rendendo l’hardware a prova di manomissione, costruendo hardware sicuro, garantendo aggiornamenti sicuri, fornendo aggiornamenti e patch del firmware ed eseguendo test dinamici. L’obiettivo di uno sviluppatore di soluzioni dovrebbe essere lo sviluppo di software sicuro e l’integrazione protetta. Per coloro che implementano sistemi IoT, la sicurezza e l’autenticazione hardware sono misure fondamentali. Allo stesso modo, per gli operatori, è fondamentale tenere aggiornati i sistemi, mitigare i malware, controllare, proteggere l’infrastruttura e salvaguardare le credenziali.

    Per garantire la sicurezza dei sistemi IoT è possibile seguire una serie di linee guida, stilata dall’ETSI (European Telecommunications Standards Institute).

    Linee guida per lo sviluppo di soluzioni IoT:

    Evitare l’uso di credenziali di default

    Tutte le password dei dispositivi IoT devono essere univoche e non devono essere ripristinate su alcun valore predefinito di fabbrica universale. In questo modo è possibile evitare gli attacchi utilizzati più comunemente dato che molti dispositivi IoT vengono venduti con nomi utente e password predefiniti universali (come “admin, admin”) per le interfacce utente attraverso i protocolli di rete. Si incoraggia a seguire le migliori pratiche in materia di password e altri metodi di autenticazione, come ad esempio l’autenticazione a 2 fattori.

    Implementare meccanismi per gestire le segnalazioni di vulnerabilità

    Conoscere una vulnerabilità della sicurezza consente alle aziende di rispondere. Fornire dei servizi per la divulgazione e segnalazione delle vulnerabilità, affinché chi si occupa della sicurezza sia in grado di gestire problemi, migliora notevolmente l’efficacia dei servizi IoT.

    Mantenere il software aggiornato

    Tutti i componenti software nei dispositivi IoT devono essere aggiornabili in modo sicuro, informando l’utilizzatore che è necessario un aggiornamento. Quando i componenti software sono aggiornabili, deve essere garantita la provenienza degli aggiornamenti software e le patch di sicurezza devono essere consegnate utilizzando un canale sicuro.

    Per garantire la sicurezza anche per vecchi dispositivi potrebbe essere necessario anche implementare una politica di fine vita, che indichi esplicitamente il periodo di tempo minimo durante il quale un dispositivo riceverà gli aggiornamenti software e i motivi della durata del periodo di supporto.

    Per garantire la sicurezza dei dispositivi IoT che non possono essere aggiornati tramite aggiornamenti software è necessario garantire la possibilità di isolare il dispositivo e garantirne la sostituzione. Ci sono, infatti, alcune situazioni in cui i dispositivi non possono ricevere patch software, in questi casi deve essere presente un piano di sostituzione che deve essere chiaramente comunicato al consumatore. Questo piano in genere descrive in dettaglio un programma per quando le tecnologie dovranno essere sostituite e, ove applicabile, quando il supporto per hardware e software termina.

    Archiviare in maniera sicura credenziali e dati sensibili

    Le credenziali e i dati sensibili per la sicurezza devono essere archiviati in modo sicuro all’interno dei servizi e sui dispositivi. Le credenziali codificate nel software del dispositivo non devono essere utilizzate.
    Il reverse-engineering può facilmente rilevare credenziali come nomi utente e password codificati nel software. Semplici metodi di offuscamento usati anche per oscurare o crittografare queste informazioni codificate possono essere banalmente infranti. Meccanismi di archiviazione sicuri e affidabili possono essere utilizzati per proteggere i dati sensibili alla sicurezza, come quelli forniti da un Trusted Execution Environment (TEE) con l’archiviazione associata, in modo da fornire un ambiente di esecuzione affidabile e un’area protetta, garantendo la protezione del codice e dei dati caricati all’interno in termini di riservatezza e integrità.

    Utilizzare protocolli di comunicazione sicura

    I dati sensibili per la sicurezza, inclusi eventuali controlli e gestione remota, devono essere crittografati, con crittografia appropriata. Si prevede che i prodotti soddisfino le esigenze degli utenti rimanendo resistenti agli attacchi alla crittografia. Tuttavia, l’adeguatezza dei controlli di sicurezza e l’uso della crittografia dipendono da molti fattori, incluso il contesto di utilizzo. Poiché la sicurezza è in continua evoluzione, è difficile fornire consigli prescrittivi sulle misure di crittografia senza il rischio che tali consigli diventino rapidamente obsoleti.

    Ridurre al minimo i punti di attacco

    Le porte di rete e software non utilizzate devono essere chiuse. Rendere non disponibili i servizi non utilizzati così come i permessi di accesso, ovvero utilizzare i privilegi minimi necessari al funzionamento del software.

    Garantire l’integrità del software

    Il software sui dispositivi IoT deve essere verificato utilizzando meccanismi di avvio sicuri, ovvero usando un hardware Root of Trust (RoT).

    RoT è una fonte di cui ci si può sempre fidare all’interno di un sistema crittografico. Poiché la sicurezza crittografica dipende dalle chiavi per crittografare e de-crittografare i dati, gli schemi RoT generalmente includono un modulo hardware rinforzato. In questo modo è garantita l’esecuzione di funzioni come la generazione di firme digitali e la verifica di firme. Un esempio rappresentativo è il modulo di sicurezza hardware (HSM) che genera e protegge chiavi ed esegue funzioni crittografiche all’interno del suo ambiente sicuro. Poiché questo modulo è a tutti gli effetti inaccessibile al di fuori, chi lo utilizzerà potrà fidarsi delle chiavi e delle altre informazioni crittografiche che riceve dalla RoT per essere autentici e autorizzati. RoT è un componente critico delle infrastrutture a chiave pubblica (PKI):

    • generazione e protezione chiavi di autorità di certificazione e root.
    • firma del codice per garantire che il software rimanga sicuro, inalterato e autentico.
    • creazione di certificati digitali per le credenziali e l’autenticazione di dispositivi elettronici proprietari per applicazioni IoT e altre implementazioni di rete.

    Rendere i sistemi resilienti alle interruzioni

    I dispositivi devono tener conto della possibilità di interruzioni delle reti e dell’alimentazione e dovrebbero essere in grado di ritornare a una rete in uno stato previsto, operativo e stabile e in modo ordinato.

    I sistemi e i dispositivi IoT sono utilizzati per casi d’uso sempre più importanti che possono essere rilevanti per la sicurezza o avere conseguenze sulla vita. Mantenere i servizi in esecuzione a livello locale, in caso di disconnessione dalla rete, è una delle misure che possono essere adottate per aumentare la resilienza. Altre misure possono includere la ridondanza nei servizi associati nonché mitigazioni contro, ad esempio, gli attacchi DDoS (Distributed Denial of Service).

    L’obiettivo è garantire che i servizi IoT siano mantenuti attivi e funzionanti man mano che la loro adozione aumenta in tutti gli aspetti della vita di un consumatore (comprese le funzioni rilevanti per la sicurezza personale). L’impatto sulla vita delle persone potrebbe essere prevalente se, ad esempio, si perde una connessione Internet a una porta connessa e qualcuno viene bloccato fuori. Un altro esempio è un sistema di riscaldamento domestico che si spegne a causa di un attacco DDoS contro un servizio cloud.

    La chiave è quindi evitare che le interruzioni siano la causa di questi problemi e progettare prodotti e servizi pronti a gestire queste sfide.

    Controllo dei dati

    Se vengono raccolti dati di telemetria da dispositivi e servizi IoT, come dati di utilizzo e misurazione, dovrebbero essere esaminati per individuare eventuali anomalie di sicurezza.

    Dispositivi e servizi dovrebbero essere configurati in modo tale che i dati personali possano essere facilmente rimossi in caso di trasferimento di proprietà, quando il consumatore desidera eliminarli, quando il consumatore desidera rimuovere un servizio dal dispositivo e/o quando il consumatore desidera rimuovere fisicamente il dispositivo.

    I dati immessi tramite interfacce utente e trasferiti tramite interfacce di programmazione dell’applicazione (API) o tra reti in servizi e dispositivi devono essere convalidati.

    Conclusioni per un IoT sicuro.

    In conclusione, quindi, per avere una soluzione completa IoT è necessario tenere conto della sicurezza dell’hardware, della sicurezza e aggiornamento del software, del controllo e sicurezza delle comunicazioni e dell’accesso ai dati.

    Per facilitare lo sviluppo di soluzioni IoT è anche possibile utilizzare servizi terzi che seguono le line guide descritte in precedenza. Per esempio, la piattaforma per l’IoT di Microsoft Azure (Azure Sphere) oppure la piattaforma fornita da Amazon, AWS IoT.