Penetration Test: simulazione di attacco tramite tecniche di Ethical Hacking
Con il termine Penetration Test, si intende un insieme di metodologie e tecniche messe in atto nel campo della cyber-security offensiva, allo scopo di individuare e sfruttare il maggior numero di vulnerabilità per determinare il grado di rischio di ciascuno di esse. Uno dei punti a favore di un Penetration Test, rispetto ad un normale Vulnerability Assessment, è proprio la sua capacità di validare l’esistenza delle vulnerabilità durante l’esecuzione dello stesso, non richiedendo alcuna azione di verifica a posteriori.
A seconda del grado di profondità che si vuole raggiungere con il test sarà possibile, da parte dei tecnici, cercare di scoprire addirittura nuove vulnerabilità (0-day), tuttavia, comunemente si adotta un approccio più orientato all’individuare vulnerabilità pubblicamente note, ma non per questo meno pericolose. Infatti, al giorno d’oggi, le tecniche e l’esecuzione degli exploit sono accessibili a chiunque, e la loro semplicità di utilizzo, grazie anche al gran numero di materiale didattico disponibile in rete, ha reso alla portata di tutti tecniche più comuni. Purtroppo, queste tecniche, seppur di basso profilo tecnico, sono più che sufficienti a compromettere un sistema o addirittura un’intera infrastruttura, se non adeguatamente protetta e monitorata.
Una volta raggiunto il suo obiettivo, un buon Penetration Tester, non si fermerà, ma continuerà a tentare di individuare altri punti di ingresso, e se necessario tenterà nuove strade combinando diverse tecniche ed attacchi al fine di raggiungere il suo obiettivo.
Tipologie di penetration test
Esistono diverse tipologie di Penetration Test a seconda dell’aspetto che si vuole andare a testare:
- External Penetration Test
Operazione atta a identificare e poi sfruttare le vulnerabilità sul perimetro esterno della rete al fine di guadagnare un accesso interno all’infrastruttura. - Internal Penetration Test
Simulazione di un utente malevolo all’interno stesso dell’organizzazione, come un dipendente malintenzionato. Oppure simulazione di compromissione di un computer o account aziendale da parte di un attore esterno. - Web Application Penetration Test (WAPT)
Assessment effettuato su un’applicazione Web al fine di valutarne le vulnerabilità, accessi non autorizzati o esposizione di informazioni sensibili. - Mobile Assessment
Assessment effettuato su applicazioni per dispositivi mobili. Si compone sia di un’analisi statica del pacchetto dell’applicazione che di un’analisi dinamica al fine di individuare vulnerabilità sul flusso di dati inviati e/o ricevuti dall’applicazione. - IOT Assessment
Tipologia di Assessment che tenta di individuare vulnerabilità nei dispositivi IOT includendo tentativi di exploit del firmware o di alterazione dei dati inviati e/o ricevuti dal dispositivo. - Wireless Assessment
Tipologia di Assessment che copre la sfera delle soluzioni Wireless tra le quali 802.x, Bluetooth e così via.
Fasi del Penetration Test
Un Penetration Test infrastrutturale, nella sua forma più completa che include sia l’External che l’Internal, si compone delle seguenti fasi:
- Reconnaissance and Information Gathering
La prima fase di un attacco consiste nel ricercare sulla rete quante più informazioni possibili riguardo il target. Queste informazioni possono riguardare l’architettura e la tipologia delle piattaforme utilizzate, i servizi attivi o indirizzi e-mail aziendali. Tutte queste informazioni vanno a costruire quella che viene chiamata “Attack Surface” ovvero “Superficie d’attacco”. - Vulnerability Identification and Attack Modeling
Basandosi sulle informazioni raccolte nel punto precedente è possibile procedere alla modellizzazione di un piano d’attacco che potrebbe sfruttare sia falle presenti sul perimetro esterno della rete, sia il Social Engineering il cui fine ultimo è quello di sfruttare il “Fattore Umano” per guadagnare un primo accesso alla rete. - Exploitation / Gaining Access
Fase di compromissione vera e propria durante la quale viene messo in atto l’attacco pianificato nel punto precedente. Lo scopo è quello di guadagnare un primo accesso alla rete bersaglio e per questo motivo è anche la fase più delicata dell’intera operazione. Sarà di conseguenza valutata l’efficacia di tutte le contromisure attive nella rete del cliente quali: Intrusion Detection & Prevention System, Firewall, Antivirus, EDR/XDR, Antispam, SSL Inspection, Proxy e così via. - Post-Exploitation
La fase di Post-Exploitation è a sua volta composta da più sottofasi, ognuna delle quali permette all’attaccante di guadagnare maggiori privilegi e di muoversi all’interno della rete cercando di mantenersi invisibile ai sistemi di difesa e monitoraggio. Alcune di queste sottofasi sono:- Maintaining Access: una volta compromesso un Host è utile garantirsi un accesso persistente all’interno della rete bersaglio.
- Privilege Escalation: insieme di tecniche che permettono all’attaccante di innalzare i propri privilegi all’interno della rete o sui singoli Host.
- Lateral Movement: insieme di tecniche che consentono all’attaccante di muoversi di Host in Host, o di Subnet in Subnet, sfruttando misconfiguration e/o privilegi ottenuti nella fase di Escalation.
- Covering Tracks
Emulando uno scenario reale, questa ultima fase operativa dimostra come un attaccante potrebbe cancellare ogni traccia del suo passaggio all’interno della rete in modo da rendere molto difficile, se non impossibile, un’eventuale analisi a posteriori dell’incidente informatico. Questa operazione è inoltre utile per testare la reale efficienza dei sistemi di analisi dei log e Incident Response. - Reporting
Al termine dell’External Penetration Test sarà a cura del Penetration Tester stilare una reportistica quanto più dettagliata possibile sull’intero itinerario dell’attacco. Tale reportistica sarà poi consegnata e spiegata al cliente in modo che possa essere successivamente mostrata agli amministratori IT della rete per correggere le eventuali criticità emerse.
Le tre metodologie di pentesting: BLACK BOX, GREY BOX e WHITE BOX
Infine, esistono diversi approcci al Penetration Test a seconda del livello di accesso iniziale e conoscenze che il Penetration Tester ha a disposizione prima di iniziare l’analisi:
- Black Box: il Penetration Tester non ha alcuna conoscenza di nessuna informazione interna e non ha a disposizione alcuna credenziale di accesso, neppure con privilegi minimi, per accedere all’infrastruttura o applicazione del cliente. Questo è anche lo scenario più comune in cui si ritrova un vero attaccante.
- Grey Box: a differenza del Black Box, al Penetration Tester sono fornite delle credenziali di accesso al sistema che si vuole testare. Il livello di accesso di queste credenziali è da concordare con il cliente in fase di Engagement. Un Grey-Box tipicamente potrebbe simulare un attacco proveniente dall’interno del perimetro dell’organizzazione ed in questo caso si parla di Internal Penetration Test come già descritto precedentemente.
- White Box: in questo particolare test si presuppone che il consulente / Penetration Tester abbia un accesso completo all’infrastruttura o, nel caso di un’applicazione, al suo codice sorgente. Questo particolare test offre una visione completa e omnicomprensiva, e permette di valutare i rischi da un punto di vista che tipicamente non è a disposizione di un attaccante reale.
ZAIUX® Evo: il software per il penetration test automatizzato
Pikered, grazie alla soluzione software ZAIUX® Evo, ha deciso di rendere disponibile uno strumento guidato dall’intelligenza artificiale in grado di effettuare Internal Penetration Test automatizzati, consentendo di validare tramite un approccio continuativo le vulnerabilità nelle infrastrutture IT. Le modalità di esecuzione di ZAIUX® Evo sono comparabili a quelle di un Penetration Test manuale, rendendo quindi superflua la parte di verifica manuale delle vulnerabilità necessaria dopo un Vulnerability Assessment. Le tecniche messe in atto da ZAIUX® Evo tendono ad emulare quanto più possibile uno scenario reale, il tutto guidato e pianificato da un motore intelligente in grado di ottimizzare tempistiche e risorse. ZAIUX® Evo si pone l’obiettivo di affiancare i Penetration Tester e gli amministratori di sistema nell’individuare quelle vulnerabilità che spesso passano inosservate sia agli occhi di un Vulnerability Assessment che di un Penetration Tester umano. Oltre a questo, la soluzione è stata ideata per essere un follow-up ad attività manuali, siano esse Penetration Test o Red-Team, per una continua validazione della resilienza interna di un’infrastruttura informatica.