La vulnerabilità, vocabolo web di cui sappiamo però poco
La Rubrica - Cybersecurity Week
Ancora una volta lo spunto per questa settimana arriva da una conversazione pre-natalizia in cui dopo un’ora di chiacchierata sugli attacchi cyber più recenti, un mio conoscente che nella vita si occupa di assicurazioni ha avuto la seguente uscita: “Continuate a parlare di vulnerabilità e intuisco che abbia a che fare con una qualche forma di errore, ma di preciso non mi è ben chiaro di cosa si tratti”.
Uno dei grandi mali di noi professionisti è quello di dare fin troppo spesso per scontate alcune conoscenze che consideriamo praticamente intuitive. E’ vero che il termine vulnerabilità è immediatamente associabile all’idea di una debolezza, ma quando si parla si cybersecurity può essere declinato in modi molto diversi. Su questa premessa ho deciso di fornire qualche chiarimento in merito, con le inevitabili semplificazioni del caso. In termini molto generali una vulnerabilità è una qualche forma di errore che può portare, in determinate condizioni, ad alterare il normale funzionamento di un sistema. L’esistenza di questa debolezza è però solo condizione necessaria, ma non sufficiente a produrre una irregolarità. Perché ciò accada deve esistere quello che viene definito “exploit” ovvero un insieme di passi, comandi, azioni che permettono di sfruttare la vulnerabilità e quindi produrre l’effetto anomalo.
A questo punto sappiamo che non tutte le vulnerabilità rappresentano una concreta minaccia e possono essere suddivise in quattro grandi categorie: intrinseche, situazionali, tecnologiche e umane, che spesso sono tra loro dipendenti o comunque in stretta relazione. Alla prima categoria appartengono quelle che sono parte integrante delle logiche profonde dei sistemi, oppure si tratta funzionalità legittimamente previste che possono essere diversamente utilizzate. Internet è stata concepita come sistema di scambio e conservazione dell’informazione. La vera sicurezza della Rete doveva essere legata non tanto alle sue logiche interne, ma piuttosto al fatto che non fosse possibile connettersi ai non autorizzati.
Venuto meno questo presupposto e prendendo il sopravvento l’idea di un nuovo mezzo di comunicazione di massa, tutto quanto è stato sviluppato attorno a Internet negli anni successivi è stato concepito con l’idea di facilitare al massimo la condivisione delle informazioni e la raggiungibilità dei sistemi. Inoltre sono stati previsti degli strumenti che permettono a chi gestisce i sistemi di effettuare una serie di attività. Si tratta di software molto potenti che possono essere sfruttati per causare danni devastanti. A titolo esemplificativo un malware noto come NotPetya utilizzava per diffondersi all’interno delle reti proprio un programma di utilità usato per eseguire comandi e installare software da remoto sui PC di una rete. Le vulnerabilità di tipo situazionale, invece, sono legate normalmente a quelli che potrebbero essere definiti come “mali necessari” o compromessi. Un esempio molto diffuso riguarda la necessità delle organizzazioni private, ma anche pubbliche, di doversi confrontare con l’obsolescenza e questo produce una condizione in cui si accetta di non rimuovere delle vulnerabilità tecnologiche note anche se esiste il correttivo. Purtroppo cambiare qualcosa di un sistema ha la pessima abitudine di avere un’infinità di effetti collaterali sugli altri componenti che funzionano appoggiandosi ad esso. Quando si tratta di applicazioni utilizzate per svolgere le attività fondamentali, prima di installare le correzioni si devono fare dei test e, se hanno esito negativo, diventa necessario modificare il software o cambiare il sistema. Ci vogliono tempo e soldi. In certi casi si decide di non fare alcunché e accettare il rischio.
Le vulnerabilità connesse alla tecnologia, infine, si possono ricondurre all’hardware, al software e ai protocolli. Alle prime due categorie appartengono quelle legate a lacune di progettazione o programmazione (i bug) che spesso determinano errori nei controlli o funzionamenti anomali; la terza riguarda le regole che definiscono per esempio le modalità di comunicazione tra i sistemi qualora non prevedano misure di sicurezza oppure presentino errori concettuali. Un ulteriore distinzione, relativamente a quelle di ordine tecnologico, viene effettuate tra vulnerabilità note e “zero day”, cioè i protocolli. Le prime sono quelle per cui esistono gli opportuni correttivi, per esempio aggiornamenti software, le seconde, invece, sono quelle non individuate oppure non ancora risolte. Se prendiamo ad esempio il mondo dei protocolli, nel 2017 un ricercatore belga ha reso pubblico il “Krack Attack”. Si trattava di un exploit basato su una vulnerabilità dello standard di sicurezza per le reti wi-fi WPA 2 che lasciava la possibilità di azzerare la crittografia prevista (reinstallazione della chiave) e quindi di intercettare il traffico dati in chiaro. Avendo attinenza con una regola imposta dal protocollo, la vulnerabilità riguardava sostanzialmente tutti i router in commercio al mondo.
Concludiamo con quella in assoluto più diffusa e anche più sfruttata. Essa raccoglie tutti i comportamenti dolosi e colposi di un essere umano che possono compromettere il normale funzionamento dei sistemi o indebolire le misure a protezione degli stessi. Oltre i tre quarti dei tentativi di attacco ai sistemi informatici puntano all’individuo. Le cosiddette tecniche di social engineering sono il principale strumento di aggressione. Ancora oggi i messaggi truffaldini inviati via email o tramite sistemi di messaggistica sono il piatto forte dell’arsenale di hacker e criminali.