Vulnerability Assessment
e processo di ottimizzazione della sicurezza in SSLS+

Quando si parla di ambiente domotico spesso si genera la paura di avere dati sensibili esposti o di essere vulnerabili ad attacchi hacker. Ma cosa si rischia davvero utilizzando un impianto domotico?

Vulnerability Assessment - Blog di SSLS+
Vulnerability Assessment

Introduzione

Perché si parla di cybersecurity? E ancora, perché fidarsi di una smart home come SSLS+? Queste sono le domande a cui cercheremo di rispondere con questo articolo. Provando a fare chiarezza sugli aspetti legati alla sicurezza di un sistema domotico ed esponendo parte della metodologia di testing per la sicurezza utilizzata in SSLS+. Se vuoi saperne di più sulla domotica ne parliamo nel seguente articolo.


Cybersecurity in un sistema domotico.

Quando si usa il termine “Cybersecurity” si intende la sicurezza legata all’apparato informatico. Più in generale invece quando parliamo di “Sicurezza delle informazioni” si fa riferimento ai dati. In questo articolo ci concentreremo sulla cybersecurity. Gli attacchi informatici che più fanno paura in un sistema domotico sono quelli cosiddetti intenzionali e non accidentali. Basti pensare infatti all’uso della rete e ai device connessi ad essa e subito si pensa che è troppo pericoloso. Quando si progetta o si realizza un sistema domotico è quindi importante porsi il problema di un possibile attaccante che si sostituisce ad un dispositivo del sistema. Ma cosa si rischia davvero in un sistema di questo tipo? Quando si cerca di fare un furto in una casa fisica, si punta alla serratura di casa o ai punti di accesso della casa, quindi porte e finestre da danneggiare. Bene, anche in un sistema domotico quello che può essere una vulnerabilità è proprio accedere alle password e ai dati personali oppure riuscire a danneggiare il sistema di accesso al sistema e quindi andare a modificare le impostazioni. In SSLS+ sono stati attenzionati vari aspetti legati al Vulnerability Assessment e Security Testing. Nel paragrafo successivo faremo chiarezza sulla terminologia usata in questo ambito e su come intervenire per avere un sistema domotico solido.

Vulnerability Assessment e security testing.

Se pensiamo alla progettazione e costruzione di una casa fisica bisogna agire sulla sicurezza di tutto l’immobile, partendo quindi da solide fondamenta. Ed in un sistema domotico? Possiamo ironicamente paragonare le fondamenta ad un codice software ben strutturato e privo di vulnerabilità. Per trovare queste ultime è fondamentale effettuare dei test. Tali test prendono il nome di Test di Vulnerabilità o Vulnerability Assessment e saranno in grado di indentificare tanti piccoli problemi (o vulnerabilità informatiche) che sono contenuti nel sistema. Non solo, i test indicheranno per ciascuna vulnerabilità il relativo livello di gravità ma anche la migliore soluzione per correggerla. In alcuni casi il processo per eseguire un Test di Vulnerabilità non ha bisogno di interventi manuali. Questa tipologia di Test fa parte del security testing. Il security testing è un processo inteso a rivelare difetti nei meccanismi di sicurezza di un sistema informativo. I tipici requisiti di sicurezza possono includere elementi specifici di riservatezza, integrità, autenticazione, disponibilità, autorizzazione e non ripudio. Il security testing è un tipo di test del software che scopre alcune vulnerabilità, e minacce, i rischi in un'applicazione software e previene gli attacchi malevoli degli intrusi Oggigiorno alcune vulnerabilità sono documentate ed esistono alcuni strumenti che possono aiutare a identificarli nel codice. Le vulnerabilità possono riguardare sistemi operativi, servizi, configurazioni, server, endpoint, applicazioni Web, reti wireless, dispositivi di rete, dispositivi mobili e molto altro.

SSLS+ è sicuro?

Per la valutazione delle vulnerabilità in SSLS+ alcune delle attività eseguite sono:

  • code review: a volte chiamata peer review è un'attività di garanzia della qualità del software in cui una o più persone controllano un programma principalmente visualizzando e leggendo parti del suo codice sorgente. Questa attività viene svolta dopo l'implementazione o come interruzione dell'implementazione. Anche se la scoperta diretta di problemi di qualità è spesso l'obiettivo principale, le revisioni del codice sono solitamente eseguite per raggiungere una combinazione di obiettivi: migliorare la qualità del codice, apprendimento/trasferimento di conoscenze, trovare soluzioni migliori, conformarsi alle linee guida QA;
  • scansione delle vulnerabilità: è un test di alto livello automatizzato, che identifica le criticità potenzialmente identificate;
  • penetration test: è sì un test di sicurezza informatica, ma un test che ricerca una sola vulnerabilità del sistema: la più lampante, la più pericolosa e la più sfruttabile per eseguire un attacco informatico verso la rete. In altre parole, in questo caso parliamo di una simulazione di attacco hacker. L’obiettivo di questo test è quindi quello di imitare il comportamento di un hacker che si trovi di fronte al nostro sistema informatico aziendale. È un test estremamente violento per le strutture informatiche.

Alcune metodologie di testing in sistemi domotici possono essere effettuate con l’ausilio di tools automatici, come ha fatto Diot per SSLS+. Di seguito un elenco di alcuni tools che il nostro team di sviluppo ha trovato utili:

  • SonarQube: piattaforma open source per la gestione della qualità del codice. È un’applicazione web che produce reports sul codice sviluppato, sugli standards di programmazione, i test di unità, le code coverage, la complessità, i bugs potenziali, i commenti, la progettazione e l’architettura.
  • SonarLint: vive solo nell'IDE (IntelliJ, Eclipse e Visual Studio), nel nostro caso Eclipse. Il suo scopo è fornire un feedback istantaneo durante la digitazione del codice. Per questo, si concentra sul codice che man mano si aggiunge o si aggiorna. SonarLint cattura cioè i problemi direttamente nel proprio IDE.
  • SQLMap: ottimo tool utilizzato in modo legale dai Pentester ed è adoperato per la verifica e l’explotation delle vulnerabilità di tipo SQL Injection. I suoi punti di forza sono il motore di rilevamento delle vulnerabilità, il completo supporto a MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase e SAP MaxDB, il supporto di ben 5 differenti tecniche di SQL injection (boolean-based blind, time-based blind, error-based, UNION query e stacked queries), senza considerare la possibilità di integrazione con altri progetti open source come ad esempio Metasploit.
  • Owsap ZAP: è uno strumento di penetrazione gratuito e open-source mantenuto sotto l'ombrello dell'Open Web Application Security Project (OWASP). ZAP è progettato specificamente per testare le applicazioni web ed è sia flessibile che estensibile. Nel suo nucleo, ZAP è ciò che è noto come un "proxy man-in-the-middle".
  • Nikto: è uno scanner Open-Source, programmato e mantenuto da Chris Sullo e David Lodge, che effettua vulnerability assessment sui web server. È utile quando si devono effettuare dei test preliminari e generici sul proprio sistema sviluppato. Esso include un database di file e configurazioni notoriamente vulnerabili a varie tipologie di attacchi.
  • OpenVAS: è un framework completamente gratuito per l’analisi e la gestione delle vulnerabilità. Il tool è affiancato da un database delle vulnerabilità, utilizzato dallo scanner per analizzare le eventuali criticità ogni qual volta trovi un servizio in ascolto. Il tool che effettua la scansione riceve aggiornamenti quotidiani dal database Network Vulnerability Tests “NVTs”.


Conclusioni

Un sistema smart home ha sicuramente tanti aspetti che se sconosciuti possono suscitare ansie inutili, ma con l’ausilio di una buona conoscenza degli aspetti da ricoprire che salvaguardano la sicurezza degli abitanti di una smart home, il tutto sembra più confortevole. Scoprire inoltre diversi punti di vulnerabilità con il supporto di diversi test di cybersecurity può rendere ancora più robusto un sistema domotico e questo si può aggiungere ad altri aspetti da tutelare altrettanto importanti della Sicurezza legati ai dati degli utenti di una casa. In SSLS+ sono state individuate varie metodologie di Testing in grado di trovare e gestire eventuali vulnerabilità: questo e altre strategie per la Sicurezza, come ad esempio l’algoritmo di crittografia usato, ha permesso di avere un sistema domotico testato e sicuro.

Prima di andare via ti suggerisco di leggere questi!