La maggior parte dei professionisti della sicurezza informatica ha familiarità con i termini ”vulnerability assessment” e “penetration test” (abbreviato “pentest”). Sfortunatamente, in molti casi, i due termini sono sostituiti in modo erroneo.
Questo post mira a chiarire le differenze sostanziali tra un Vulnerability Assessemnt, di seguito VA, ed un Penetration Test, di seguito PT, dimostrando che entrambe le attività sono componenti integrate di un programma più completo di gestione delle vulnerabilità. Inoltre, discuteremo in quale contesto ciascuna di queste attività è più appropriata. Partiamo da qualche semplice definizione.
Che cos’è una vulnerabilità software?
Una vulnerabilità può essere intesa come una componente (esplicita o implicita) di un sistema, in corrispondenza alla quale le misure di sicurezza sono assenti, ridotte o compromesse, il che rappresenta un punto debole del sistema e consente a un eventuale aggressore di compromettere il livello di sicurezza dell’intero sistema.
Facciamo qualche esempio:
Prendiamo il noto Ramsonware WannaCry salito agli onori della cronaca internazionale (link) per la sua diffusione a macchia d’olio e per i disservizi causati a strutture sia pubbliche che private. Esso sfruttava una vulnerabilità del protocollo SMBv1 implementato dai sistemi windows (CVE-2017-0145) scoperta il 14 marzo scorso con tanto di patch (MS17-010) rilasciata dalla stessa Microsoft.
Anche la nota storia di Ashley Madison è legata ad una o più vulnerabilità del software, sfruttate dai cybercriminali per impossessarsi dei dati degli utenti del noto sito di incontri “clandestini”. Vulnerabilità che da quanto riportato dalla cronaca risiedevano nel codice sorgente del sito.
Exploit? Questo sconosciuto
Un Exploit è, in maniera molto semplice, uno script (pezzo di codice) che, sfruttando una specifica vulnerabilità di un sistema, permette l’esecuzione di codice malevolo su di esso con lo scopo di dare all’attaccante la possibilità di eseguire dei comandi con privilegi di sistema o amministratore. È facile intuire che se l’exploit è pubblico, facilmente reperibile, il rischio che la vulnerabilità venga sfruttata è alta.
Facciamo un esempio:
Abbiamo visto che WannaCry sfrutta una vulnerabilità del protocollo SMBv1 di Microsoft. Ma come? Utilizzando il famoso Exploit “EternalBlue” rilasciato pubblicamente il 12 aprile 2017 dal controverso gruppo di hacker The Shadow Brokers. I creatori di WannaCry hanno sfruttato questo pezzo di codice per diffondere il loro Ransomware, in maniera efficace e veloce. Probabilmente senza EternalBlue, WannaCry non avrebbe avuto una così vasta diffusione.
Adesso che abbiamo le nozioni base per comprendere il contesto della discussione andiamo a vedere quali contromisure le aziende possono adottare per conoscere lo stato della sicurezza deli propri sistemi.
Vulnerability Assessment
Il VA è un processo atto a individuare e misurare il grado di gravità delle vulnerabilità in un dato sistema. Esso fornisce, come risultato, una lista di vulnerabilità, spesso ordinata e prioritizzata in base alla gravità ed al livello di rischio assegnato all’asset soggetto ad analisi.
L’operazione di vulnerability assessment tipicamente comporta l’utilizzo di strumenti specifici come: Web Vulnerability o Network Security Scanner, i risultati solitamente sono valutati in base all’asset coinvolto e condivisi con il Team di sviluppo o operation. In altre parole il vulnerability Assessment è un processo composto da:
- un’analisi approfondita della postura di sicurezza di un sistema, allo scopo di individuare e identificare le debolezze dovute ad uno scorretto design o configurazione.
- Uno studio ad-hoc per fornire raccomandazioni e piani di mitigazione per ridurre o eliminare il rischio derivato da un possibile sfruttamento della vulnerabilità.
Penetration Test
Il PT, è un’attività orientata al raggiungimento di un risultato. È un esercizio che simula un attacco reale, come elusione delle difese, mappatura dei vettori d’attacco, sfruttamento delle vulnerabilità e utilizzo di exploit. In altre parole, un PT dimostra come un attaccante malintenzionato potrebbe eludere le difese della nostra organizzazione e sfruttare le vulnerabilità per accedere ai dati o prendere il controllo del sistema.
Come nel caso dei VA anche nell’attività di PT, spesso, vengono utilizzati strumenti per la scansione delle vulnerabilità o altri strumenti specifici per analizzare applicazioni web e infrastrutture di rete. Nello specifico, nelle attività di PT vengono sfruttate le vulnerabilità trovate in modo da raggiungere l’obiettivo finale. Ovvero la compromissione del sistema. Tengo a precisare che in questo tipo di attività svolge un ruolo chiave la fase di ingaggio e definizione dei requisiti, in questa fase si definisce il perimetro, gli obiettivi e il modus operandi.
Conclusioni
Possiamo concludere che, la differenza fondamentale tra un Vulnerability Assessment ed un Penetration Test è che il primo è list-oriented invece il secondo è goal-oriented.
Quindi, dato che di base per entrambi vengono utilizzare le medesime tecniche e strumenti, quale metodologia è più adatta al nostro contesto? Come sceglierle e perché?
Dalle definizioni che abbiamo dato delle due metodologie d’analisi, tramite un PT cerchiamo di aprire una breccia nelle difese del sistema target allo scopo di raggiungere un obiettivo definito a priori. Questo implica un sufficiente livello di maturità nella gestione della sicurezza. Per tanto è più adatto in situazione dove si preferisce la profondità piuttosto che l’ampiezza.
Un’attività di VA, invece, è indicata in situazioni dove c’è la presunzione della presenza di vulnerabilità (ex. security issues note di software noti) o come punto di inizio per migliorare la postura di sicurezza dell’organizzazione. La stessa metodologia è utilizzata anche in organizzazioni con un livello di sicurezza medio-alto per garantire uno standard di sicurezza nel tempo tramite scansioni continue su applicazioni e network.
Il VA è in conclusione un approccio utile per fornire all’organizzazione un elenco completo delle vulnerabilità presenti nel sistema che devono essere risolte a breve termine, senza valutare specifici scenari di attacco. Questo rende il l’attività più adatta in contesti in cui è preferibile l’ampiezza piuttosto che profondità.
Fonte:https://www.acunetix.com/blog/articles/difference-vulnerability-assessment-penetration-testing/
ALLNET-ITALIA Organizza dei corsi per approfondire queste tematiche, scopri l’agenda ed i contenuti: