Vulnerability Assessment: cos’è (e cosa non è)
Vulnerability assessment come tecnica di ethical hacking
Tra le varie fasi che compongono il processo di gestione della Cybersecurity aziendale, quella di verifica ha certamente un ruolo di primo piano. Oltre ad essere consigliabile da tutte le best practice, la fase di “check” è esplicitamente richiesta da molte certificazioni e norme, come nel caso del GDPR e delle ISO/IEC.
Spesso le attività eseguite in questa fase, che ha come obiettivo l’identificazione e la gerarchizzazione delle vulnerabilità presenti nella propria infrastruttura IT, sono mal comprese. Ciò può creare confusione nel distinguere metodi ed obiettivi delle diverse procedure, fino a diminuirne l’utilità a causa di un uso improprio.
Obiettivo di questo articolo è dunque partire dalla base per chiarire un’attività in particolare, all’interno della fase di verifica delle vulnerabilità: il cosiddetto “Vulnerability Assessment”.
Le best practices per realizzare un Vulnerability Assessment Report
Per Vulnerability Assessment (VA) si intende un insieme di azioni volte ad identificare il maggior numero possibile di vulnerabilità informatiche, per poi analizzarle alla ricerca di effettivi rischi e stabilire, entro certi limiti, l’attuale livello di sicurezza di un’organizzazione. Questo avviene senza validare le vulnerabilità individuate tramite attacchi mirati, se non in un secondo momento. Ciò non significa che un Vulnerability Assessment non possa causare downtime e disservizi, come vedremo.
A questo punto è utile definire cosa sia una vulnerabilità [1]: una debolezza in un sistema informatico, una procedura di sicurezza, un controllo interno o un’implementazione che potrebbe essere sfruttata o innescata da una fonte di minaccia.
Per poter individuare le vulnerabilità esistenti utilizzando un glossario comune, ci vengono in aiuto degli appositi framework internazionali, primo fra tutti il CVE Program [2], che ha come obiettivo “l’identificazione, la definizione e la catalogazione di vulnerabilità informatiche pubblicamente divulgate”.
>Ad ogni vulnerabilità è così assegnato un codice CVE (Common Vulnerability Exposure) univoco, associato ad una descrizione e ad un punteggio di criticità CVSS (Common Vulnerability Scoring System), da 0 a 10, che fornisce una prima indicazione della sua gravità e della priorità da assegnare alla sua mitigazione.
Fasi di un Vulnerability Assessment
Veniamo dunque al VA, che può essere diviso in tre fasi distinte: pianificazione, esecuzione, analisi.
Nella fase di pianificazione vengono definiti gli asset oggetto dell’attività, nonché gli strumenti da utilizzare a seconda del particolare tipo di VA. Durante l’esecuzione si usano solitamente strumenti automatici per la scansione dei bersagli alla ricerca di possibili vulnerabilità, creando successivamente una relazione (“report” in gergo tecnico) contenente i CVE individuati.
L’ultima fase, quella di analisi, è sia la più importante che la più trascurata: una o più figure esperte analizzano il report prodotto dallo strumento automatico, validando manualmente le vulnerabilità riscontrate ove necessario e definendo un piano di mitigazione, per eliminare tutte le possibili falle di sicurezza causate da certe combinazioni di vulnerabilità.
Bersagli e metodologia di un Vulnerability Assessment
Un VA ha come obiettivo l’analisi degli asset presenti in una determinata rete aziendale, dei collegamenti fra di essi e verso l’esterno.
Esso utilizza potenti programmi di scansione, che individuano gli endpoint attivi nella rete e relative versioni dei sistemi operativi, porte aperte e servizi da esse esposti. Tale attività, che in una rete di grandi dimensioni può durare anche diverse ore, genera del traffico verso tutte le porte aperte su ciascun host, ricavando informazioni sulle versioni attive dei diversi protocolli di comunicazione o servizi in base alle risposte ricevute.
Da tali informazioni è possibile risalire alla presenza di specifici CVE. Trattandosi solitamente di reti reali ed utilizzate, la fase di esecuzione, nonostante non includa l’effettivo lancio di attacchi (exploit), può causare rallentamenti e blocchi, a causa del volume di traffico generato. È pertanto necessario programmare tale attività al di fuori degli orari critici e prevedere la possibilità di falsi allarmi lanciati dai sistemi di difesa.
È inoltre possibile installare strumenti direttamente su uno specifico endpoint, per ottenere informazioni ancora più dettagliate circa l’utilizzo di software, protocolli e servizi non aggiornati o comunque vulnerabili, oltre che di impostazioni non ottimali, abbassando la probabilità di causare disservizi ad altri host nella rete.
Vulnerability Assessment e Penetration Test
Spesso capita che attività di VA (o meglio, le sole fasi di pianificazione ed esecuzione) vengano scambiate per attività di Penetration Test (PT). Facciamo dunque luce sulle sostanziali differenze tra le due attività:
- Validazione delle vulnerabilità: un VA si limita ad identificare le vulnerabilità, per lo più tramite metodi indiretti come l’analisi del traffico scambiato con i bersagli. Tali vulnerabilità sono, solitamente, solo presunte, e devono spesso essere validate nella fase di analisi manuale. In un PT le vulnerabilità vengono invece attivamente sfruttate in vere e proprie simulazioni d’attacco. Non esiste quindi la possibilità di falsi positivi, e tutte le vulnerabilità individuate sono necessariamente criticità da risolvere.
- Automazione: l’esecuzione di un VA è oggi facilmente automatizzabile tramite sistemi di scansione e ricerca delle vulnerabilità, mentre un pen test richiede molta attività manuale da parte di personale altamente specializzato per scegliere correttamente i bersagli e la configurazione degli attacchi, oltre che evitare possibili blocchi della rete o delle stesse azioni di PT a causa della reazione dei sistemi di difesa.
- Estensione: un VA mira ad individuare il maggior numero possibile di vulnerabilità negli asset bersaglio e generare un report esaustivo, fornendo una fotografia complessiva, anche se superficiale, dell’attuale livello di sicurezza. Il prezzo da pagare è il grande volume di dati nel report, fra i quali sono incluse molte vulnerabilità non attivamente sfruttabili in un attacco. Un PT, al contrario, non esplora tutte le possibili vulnerabilità, ma solo i percorsi di attacco che permettono di avvicinarsi alla compromissione di asset critici, generando un report più circoscritto. È quindi utile eseguire frequenti pentest, per via della nascita nel tempo di nuovi percorsi d’attacco dati dalla combinazione di vulnerabilità nuove o latenti, che in precedenza non costituivano un rischio.
- Realismo: un VA non ha alcuna pretesa di realismo: effettua semplicemente un’enumerazione delle vulnerabilità, generando un impatto visibile nell’attività della rete e rendendosi individuabile dai sistemi di difesa. Un penetration test emula invece uno scenario di attacco reale, adottando tecniche di bypass per agire indisturbato, permettendo in certi casi l’individuazione di vulnerabilità critiche che potrebbero sfuggire ad un VA, perché nascoste più in profondità e raggiungibili solo in seguito ad una catena di attacchi portati a termine senza scatenare allarmi o blocchi.
- Durata: l’esecuzione di un VA è una scansione statica dei bersagli; pertanto, ha una durata prevedibile e limitata, al più di qualche ora. Un PT ha necessità di mantenere contenuto il volume di traffico generato e, spesso, di seguire gli orari di lavoro, sia dei bersagli di tipo client che dello stesso pentester. La sua durata è quindi solitamente di diversi giorni.
Vulnerability Assessment e Penetration Test automatizzato
Grazie a ZAIUX® Evo è oggi possibile effettuare un Internal Penetration Test in maniera completamente automatizzata, consentendo la validazione continua delle vulnerabilità nella tua infrastruttura IT.
In cosa è diverso da un VA?
Gli obiettivi e le modalità di esecuzione di ZAIUX ® Evo sono analoghi quelli di un PT manuale, avendo quindi il vantaggio, rispetto ad un VA, del realismo degli scenari d’attacco simulati, dell’assenza di falsi positivi e della generazione di un report snello e circoscritto, che non necessita di una successiva fase di analisi. Trattandosi di una soluzione software automatica, ottiene anche molti dei benefici fino ad oggi riservati ai software di VA: non richiede competenze specialistiche in ambito Cybersecurity per essere utilizzato, può eseguire attacchi 24/7 ed ottimizzare i tempi di esecuzione, e soprattutto può essere utilizzato con approccio continuativo.
Ciò significa che, senza incorrere nei costi di più PT manuali consecutivi, permette una validazione continua del livello di sicurezza di una rete, verificando l’efficacia delle azioni di mitigazione delle vulnerabilità e la comparsa di nuove falle di sicurezza, sia dovute alla scoperta di nuovi exploit su sistemi esistenti che all’introduzione di nuovi host ed utenti.
Dovrei utilizzare penteration test ZAIUX® Evo al posto degli strumenti di VA?
Proprio come un PT manuale è un’attività complementare al VA e non lo esclude del tutto, anche ZAIUX® Evo non si propone di sostituire completamente un VA. ZAIUX® Evo non ha infatti l’obiettivo di individuare tutti i CVE presenti nella rete ed eseguire i relativi exploit, bensì predilige l’utilizzo di tecniche d’attacco furtive, sfruttando le vulnerabilità critiche che un vero attaccante utilizzerebbe in uno scenario reale, aiutando così la mitigazione dei rischi attuali e concreti. Un VA, a patto che venga eseguita un’attenta fase di analisi dopo la sua esecuzione, potrebbe comunque aiutare ad individuare vulnerabilità latenti e attualmente non sfruttabili, completando il lavoro di ZAIUX® Evo con l’aggiunta di un margine di sicurezza contro criticità future.
Vuoi saperne di più sulle possibilità che ZAIUX® Evo può offrire al tuo processo di gestione della Cybersecurity?
[1] https://csrc.nist.gov/glossary/term/vulnerability
[2] https://www.cve.org/