In prima approssimazione possiamo definire il Penetration Test, o Pentest, come l’attività che simula un attacco informatico reale contro sistemi, reti, applicazioni o infrastrutture digitali di un’organizzazione, al fine di identificare e sfruttare eventuali vulnerabilità presenti, con l’obiettivo di valutare la resilienza del sistema e l’efficacia delle misure di sicurezza implementate, fornendo all’organizzazione un quadro completo dei rischi e delle azioni correttive da intraprendere.
Di fatto, il Penetration Tester, o Ethical Hacker, agisce come un vero e proprio attaccante, ma con l’autorizzazione e la supervisione dell’organizzazione target, ed è una figura professionale riconosciuta e richiesta, con competenze specifiche e responsabilità ben definite, la cui importanza è destinata a crescere ulteriormente nel prossimo futuro, con l’aumento della digitalizzazione e la crescente consapevolezza dei rischi informatici.
In particolare, l’ENISA Cybersecurity Skills Framework (ECSF) definisce diverse aree di competenza e conoscenza necessarie allo svolgimento delle attività tipiche del Penetration Tester, tra cui, principalmente, la padronanza delle tecniche di testing, sia manuali che automatizzate, e la capacità di selezionare gli strumenti e le strategie più appropriate in base al contesto specifico.
Inoltre, sono necessarie profonda comprensione dei principi di sicurezza delle reti e dei sistemi, inclusi protocolli, architetture, configurazioni e vulnerabilità comuni.
Negli ultimi anni, l’evoluzione delle metodologie di penetration testing è stata influenzata da diversi fattori.
In primo luogo, la crescente sofisticazione delle minacce informatiche ha spinto i Penetration Tester a sviluppare competenze sempre più avanzate, come l’analisi del malware, il reverse engineering e l’exploitation di vulnerabilità zero-day, in secondo luogo, l’introduzione di normative come il GDPR e la Direttiva NIS ha imposto ai Penetration Tester di operare nel rispetto di rigorosi standard di sicurezza e privacy, infine, la disponibilità di strumenti open source e commerciali ha facilitato l’accesso al Penetration Testing, ma ha anche reso più difficile distinguere tra professionisti qualificati e “Script Kiddies” che utilizzano strumenti preconfigurati senza una reale comprensione delle tecniche di attacco.
Chiarito ciò che precede, possiamo osservare che, da un punto di vista metodologico, le operazioni di Pentest si differenziano principalmente per il livello di conoscenza che il Tester ha del sistema target.
Nel White Box Testing, il Penetration Tester ha accesso completo a tutte le informazioni sul sistema bersaglio, inclusi il codice sorgente, le caratteristiche dell’architettura, le specifiche di configurazione e la relativa documentazione.
Appare evidente a chi scrive che un tale tipo di approccio consente, rispetto agli altri di cui si dirà, un’analisi maggiormente approfondita e mirata, permettendo di individuare vulnerabilità meno note e complesse, come errori di programmazione o configurazioni errate. Ad esempio, nel caso di un’azienda che sviluppa applicazioni web, il white box tester potrebbe analizzare il codice sorgente per individuare vulnerabilità come SQL injection o cross-site scripting.
Nel Black Box Testing, invece, il tester non ha alcuna informazione preliminare sul sistema e simula un attacco esterno, cercando di sfruttare vulnerabilità senza conoscere gli specifici dettagli interni di configurazione.
Chiaramente, un tale modus operandi è senza dubbio più realistico, poiché riflette le condizioni di un attacco reale, ma potrebbe non essere in grado di rivelare tutte le vulnerabilità presenti, soprattutto quelle più specifiche o legate all’implementazione del codice. Una pratica costante nel black box testing è l’attacco di tipo phishing, in cui il tester invia email ingannevoli per cercare di ottenere credenziali di accesso o informazioni sensibili.
Il Grey Box Testing, infine, rappresenta un compromesso tra le due metodologie precedenti nel quale il Tester ha una conoscenza parziale del sistema, ad esempio credenziali limitate o informazioni sull’architettura di base, che gli consente di combinare i vantaggi di entrambi gli approcci, individuando vulnerabilità sia interne sia esterne, pur mantenendo un certo grado di realismo. Ad esempio, un Grey Box Tester potrebbe avere accesso al sistema con le credenziali di un utente standard e cercare di elevare i propri privilegi per accedere a risorse riservate.
Oltre alla conoscenza pregressa delle caratteristiche del sistema target, le metodologie di Penetration Testing si differenziano, da un punto di vista teorico, anche per l’approccio operativo adottato dal Tester.
Da una parte, il c.d. approccio manuale, più flessibile e adattabile, si affida all’esperienza, all’intuito e alle competenze del Penetration Tester, che utilizza una vasta gamma di strumenti e tecniche per analizzare il sistema, scovare vulnerabilità e tentare di sfruttarle, dall’altra, l’approccio automatico, invece, si basa sull’utilizzo di software specializzati, come Vulnerability Scanner e Fuzzer, per scansionare il sistema alla ricerca di vulnerabilità note.
Infine, l’approccio ibrido rappresenta una sintesi dei due precedenti, e combina i punti di forza di entrambi. Tipicamente, in una prima fase, il tester utilizza strumenti automatici per una scansione preliminare del sistema, individuando le vulnerabilità più comuni e facilmente rilevabili, successivamente, si affida alle proprie competenze e alla propria esperienza per approfondire l’analisi, verificare i falsi positivi segnalati dagli strumenti automatici e cercare vulnerabilità più complesse o specifiche.
Ad esempio, dopo aver utilizzato un vulnerability scanner per individuare una potenziale vulnerabilità in un server web, il tester potrebbe tentare di sfruttarla manualmente per verificare se è effettivamente presente e se può essere utilizzata per compromettere il sistema.
Naturalmente, la scelta della metodologia più appropriata dipende da diversi fattori, tra cui gli obiettivi del test, le risorse disponibili (tempo e budget), le caratteristiche del sistema target e il livello di rischio accettabile.
In generale, l’approccio ibrido è spesso il più efficace, in quanto consente di ottenere una valutazione completa e accurata della sicurezza del sistema, combinando la velocità e l’efficienza degli strumenti automatici con l’esperienza, le capacità e l’intuito del Penetration Tester.
Nel corso delle attività di Penetration Testing le responsabilità legali, che si differenziano a seconda dell’approccio e del metodo, si delineano in diverse fasi cruciali, coinvolgendo sia il Pentester che il Cliente.
Inizialmente, durante la fase di pianificazione e definizione dell’accordo, il Pentester ha il compito di definire chiaramente l’ambito del test, gli obiettivi, le metodologie e le tempistiche, redigendo un contratto dettagliato che delinei i diritti e le responsabilità di entrambe le parti, inclusi i limiti dell’autorizzazione all’accesso ai sistemi, la gestione dei dati sensibili e le modalità di comunicazione dei risultati.
In questa fase, il cliente, a sua volta, deve fornire tutte le informazioni necessarie sul sistema da testare, compresi i dati di contatto delle persone da coinvolgere nel processo, e rivedere attentamente il contratto per assicurarsi di comprenderne tutte le clausole.
Prossimo numero
Hai una domanda per l'autore?
Al codice del consumo (n.206/2005) vengono aggiunti nuovi articoli
Nel prossimo numero si individueranno le fasi principali delle operazioni di Penetration Test e si evidenzieranno le responsabilità legali dei soggetti coinvolti.