Il penetration testing (chiamato anche pen-test o pentesting) è la pratica di attaccare in maniera simulata servizi o infrastrutture informatiche allo scopo di valutarne la sicurezza.
I security tester infatti, andranno a ricoprire il ruolo di veri e propri hacker alla ricerca di falle di sicurezza con cui gli attaccanti potrebbero recuperare dati sensibili, cancellare file, provocare l’interruzione di servizi o più generalmente ottenere accesso a sistemi informatici a cui normalmente non potrebbero accedere.
In questo editoriale approfondiremo le caratteristiche per la progettazione e l’esecuzione di Penetration Test:
È importante sapere cos’è un penetration test, che non è equivalente ad un vulnerability assessment! Queste due pratiche hanno scopi differenti e vengono svolte con strumenti e modalità differenti.
Ulteriori informazioni sono disponibili nel nostro servizio di Vulnerability Assessment
Anche se a primo impatto il penetration testing può sembrare un processo disorganizzato il cui scopo è quello di accedere ad un’infrastruttura, nella pratica vengono analizzati metodicamente, diversi aspetti della sicurezza che poi verranno scrupolosamente inseriti in un report.
Esistono, di fatto, alcuni framework e metodologie di penetration testing riconosciuti a livello internazionale che si concentrano su aspetti differenti della sicurezza e che si adattano a scenari e scopi differenti.
Ne è un esempio lo standard OSSTMM per il pentest - è possibile leggere il manuale gratuitamente al link: https://www.isecom.org/OSSTMM.3.pdf
Lo scopo di questi test è quello di scoprire falle di sicurezza ed analizzare l’impatto che eventuali accessi possano avere.
Un penetration test può determinare il modo in cui un sistema reagisce ad un attacco, se è possibile creare una breccia nelle difese di un sistema e che informazioni possono essere acquisite dal sistema.The CISSP® and CAPCM Prep Guide
Le fasi di un Penetration Test
Pre-Engagement Interactions
Primo passo di ogni pentest, chi effettuerà il test discute direttamente con il committente gli obiettivi, lo scopo del test e gli aspetti legali.
Questa fase è fondamentale per garantire la completa legalità di ogni azione svolta dal team e per delineare le metodologie migliori per agire.
Open Source Intelligence Gathering
Il recupero di informazioni riguardanti il cliente (OSINT) permette di costruire una base di partenza per il test.
A seconda del pentest da effettuare le tecniche di OSINT Gathering possono essere più o meno ortodosse. In un pentest prettamente informatico solitamente ci si limita a ricerche online con tool specializzati o social engineering.
Identificazione delle vulnerabilità
A partire dalle informazioni recuperate, i tester possono trovare e valutare eventuali vettori di attacco.
Per questa fase solitamente ci si appoggia a strumenti automatizzati che evidenziano possibili vulnerabilità.
Exploitation
Finalmente i tester possono tentare l’attacco sui vettori trovati nel passo precedente.
Gli attacchi possibili sono variegati, molteplici e possono interessare tecnologie molto differenti.
Alcuni di questi attacchi possono essere orientati all’accesso in un sistema, altri ad esfiltrare dati ed altri ancora a provocare malfunzionamenti nel sistema. È importante aver delineato accuratamente i limiti al passo 1 per evitare disguidi durante questa fase.
Post-Exploitation
Concluso l’attacco, i tester devono raccogliere dati per un’analisi dei rischi, ovvero valutare che tipo di danno avrebbero potuto provocare all’infrastruttura attaccata.
Inoltre, durante questa fase è necessario che i tester rimuovano ogni traccia del loro attacco, ad esempio software installati o account creati.
Report
I tester dovranno fornire della documentazione dettagliata riguardante vettori di attacco, attacchi portati a termine ed analisi dei rischi. È necessario inoltre che il documento sia corredato di raccomandazioni per il committente su come rendere più sicura l’infrastruttura attaccata.
Sebbene questi step non siano parte di uno standard, un penetration tester che si rispetti li seguirà in maniera più o meno accurata, o meglio, richiederà di adattare il workflow alle esigenze del committente in caso di test specifici.
Dal momento che l’utilizzo di mezzi informatici diventa sempre più centrale nel mondo aziendale, effettuare penetration test di qualità diventa fondamentale per evitare danni di immagine o più concretamente perdite monetarie.
Sanzioni da parte del garante della privacy, compromissione di servizi basati su web o accesso a segreti industriali da parte di terzi sono solo alcune delle possibili conseguenze di un attacco informatico; gli scenari in cui una breccia di sicurezza possa portare a perdite pecuniarie sono infiniti.
Per questo motivo effettuare penetration test è da considerarsi un investimento.
Quali fattori valuta un pentest?
È bene sapere che esistono molti tipi di pentest e che non tutti si concentrano sulla sicurezza di computer e reti.
Il manuale OSSTMM accennato in precedenza, prevede come canali da testare, oltre a quello della sicurezza delle comunicazioni ed informazioni, anche quelli della sicurezza dello spettro elettromagnetico e quello della sicurezza fisica.
Diversi tipi di penetration test valutano diversi aspetti della sicurezza di un’infrastruttura. Sempre più spesso il penetration testing è associato esclusivamente nell'accezione informatica del termine, tuttavia testing di tipo "ethical hacking" prevedono che i tester vestano i panni di un hacker malevolo e quindi a seconda del target possono interessare tutti gli aspetti di di questa pratica.
Sebbene l’ethical hacking possa essere limitato all’ambito informatico, non è raro vedere test che comprendono strumenti fisici di intercettazioni radio o veri e propri tentativi di intrusione in edifici per portare a termine un attacco.
Una pratica spesso associata a questi test è quella del social engineering ovvero la manipolazione delle persone allo scopo di ottenere informazioni o accesso a infrastrutture critiche.
Per tornare alla domanda: Quali fattori valuta un pentest?
La risposta dipende pesantemente dai penetration tester a cui ci si rivolge e da framework e metodologie di penetration testing che impiegano.
È importante valutare la metodologia che più si adatta al testing di sicurezza che si vuole ottenere e quindi rivolgersi a professionisti in grado di assicurare un testing di qualità secondo le specifiche che si desidera adottare.
Bisogna specificare comunque che, in caso si necessiti di specifici test, è possibile ottenerli anche al di fuori delle metodologie classiche di penetration testing. Si pensi ad esempio al penetration testing di infrastrutture IoT o al penetration testing di applicazioni mobile per cui non sono ancora stati sviluppati veri e propri standard.
Conclusioni
Il penetration testing comprende diverse pratiche anche molto differenti tra di loro, non si limita all’informatica e prevede differenti metodologie per valutare la sicurezza di reti, sistemi, infrastrutture ed edifici.
Nonostante esistano manuali che descrivono esaustivamente i passi da seguire per effettuare un penetration test, è possibile che nuove tecnologie o nuovi tipi di infrastruttura non siano trattati negli standard a disposizione in un dato periodo. Per questo motivo, è importante rivolgersi ad un penetration tester competente che sia in grado di valutare la sicurezza secondo i requisiti del committente per quanto "inusuali".
Per procedere con un penetration test è quindi consigliabile:
-
Capire le proprie esigenze di testing
Scegliere dunque una metodologia di testing che si adatti alle proprie necessità.
Se una metodologia si rivelasse essere incompleta o non adatta, stilare i propri requisiti e confrontarsi con un penetration tester per quanto riguarda la fattibilità;
-
Valutare le modalità con cui si vuole portare a compimento il testing;
-
Iniziare la fase di Pre-Engagement Interactions per valutare al meglio i requisiti e dare il via al testing.
Un penetration test può permettere ad un’azienda di evitare incidenti di sicurezza informatica che possono rivelarsi costosi in termini economici e che possono rovinare il nome dell’azienda. Per questo motivo è bene considerare il testing di sicurezza come un investimento.
Riferimenti:
The CISSP® and CAPCM Prep Guide: Platinum Edition, John Wiley & Sons, ISBN 978-0-470-00792-1