Prima che inizi un pen test, il team di test e l’azienda stabiliscono l’ambito del test. L'ambito delinea quali sistemi verranno testati, quando avverrà il test e i metodi che i pen tester possono utilizzare. L'ambito determina anche la quantità di informazioni che i pen tester avranno in anticipo:
In un test black box, i pen tester non hanno informazioni sul sistema di destinazione. Devono basarsi sulle proprie ricerche per sviluppare un piano di attacco, come farebbe un hacker del mondo reale.
In un test white-box, i pen tester hanno totale trasparenza nel sistema di destinazione. L'azienda condivide dettagli come diagrammi di rete, codici sorgente, credenziali e altro ancora.
In un test gray-box, i pen tester ottengono alcune informazioni, ma non molte. Ad esempio, l'azienda potrebbe condividere gli intervalli IP per i dispositivi di rete, ma i pen tester devono sondare tali intervalli IP alla ricerca di vulnerabilità per conto proprio.
Con un ambito impostato, inizia il test. I pen tester possono seguire diverse metodologie. Tra le più comuni figurano le linee guida per il collaudo della sicurezza delle applicazioni dell'OWASP (link esterno a ibm.com), il Penetration Testing Execution Standard (PTES) (link esterno a ibm.com) e il National Institute of Standards and Technology (NIST) SP 800-115 (link esterno a ibm.com).
Indipendentemente dalla metodologia utilizzata da un team di test, il processo solitamente segue gli stessi passaggi generali.
1. Ricognizione
Il team di test raccoglie informazioni sul sistema di destinazione. I pen tester utilizzano metodi di ricognizione diversi a seconda dell'obiettivo. Ad esempio, se l'obiettivo è un'app, i pen tester potrebbero studiarne il codice sorgente. Se il target è un'intera rete, i pen tester potrebbero utilizzare un analizzatore di pacchetti per ispezionare i flussi di traffico di rete.
I pen tester spesso attingono anche all'open source intelligence (OSINT). Leggendo la documentazione pubblica, le notizie e i social media e gli account GitHub dei dipendenti, i pen tester possono raccogliere informazioni preziose sui loro obiettivi.
2. Individuazione e sviluppo del target
I pen tester utilizzano le conoscenze acquisite nella fase di ricognizione per individuare le vulnerabilità sfruttabili nel sistema. Ad esempio, i pen tester possono utilizzare un'utilità di scansione di porte come Nmap per cercare porte aperte in cui inviare malware. Per un pen test di ingegneria sociale, il team di test potrebbe sviluppare una storia falsa, o il "pretesto", da usare in un'e-mail di phishing per rubare le credenziali dei dipendenti.
Nell'ambito di questo passaggio, i pen tester possono verificare come le funzioni di sicurezza reagiscono alle intrusioni. Ad esempio, potrebbero inviare traffico sospetto al firewall dell'azienda per vedere cosa accade. I pen tester utilizzeranno ciò che apprendono per evitare il rilevamento durante il resto del test.
3. Sfruttamento
Il team di test inizia l'attacco vero e proprio. I pen tester possono provare diversi attacchi a seconda del sistema di destinazione, delle vulnerabilità rilevate e dell'ambito del test. Alcuni degli attacchi più comunemente testati includono:
Iniezioni SQL: i pen tester cercano di far sì che una pagina web o un'applicazione riveli dati sensibili inserendo codice dannoso nei campi di input.
Cross-site scripting: i pen tester provano a inserire codice dannoso nel sito web di un'azienda.
Attacchi denial-of-service: i pen tester tentano di mettere offline server, app e altre risorse di rete inondandoli di traffico.
Ingegneria sociale: i pen tester utilizzano il phishing, l'adescamento, il pretesto o altre tattiche per indurre i dipendenti a compromettere la sicurezza della rete.
Attacchi Brute force: i Pen tester tentano di entrare in un sistema eseguendo script che generano e testano potenziali password fino a quando una non funziona.
Attacchi man-in-the-middle: i pen tester intercettano il traffico tra due dispositivi o utenti per rubare informazioni sensibili o installare malware.
4. Escalation
Una volta che i pen tester hanno sfruttato una vulnerabilità per ottenere un punto d'appoggio nel sistema, cercano di spostarsi e ampliare la falla. Questa fase è talvolta chiamata "concatenamento delle vulnerabilità" perché i pen tester si spostano da una vulnerabilità all'altra per entrare più in profondità nella rete. Ad esempio, potrebbero iniziare installando un keylogger sul computer di un dipendente. Usando quel keylogger, possono acquisire le credenziali del dipendente. Usando queste credenziali, possono accedere a un database sensibile.
In questa fase, l'obiettivo del pen tester è mantenere l'accesso e aumentare i privilegi eludendo le misure di sicurezza. I pen-tester fanno tutto questo per imitare le minacce persistenti avanzate (APT), che possono nascondersi in un sistema per settimane, mesi o anni prima di essere scoperte.
5. Pulizia e reportistica
Al termine dell'attacco simulato, i pen tester eliminano ogni traccia lasciata, ad esempio i trojan backdoor che hanno installato o le configurazioni modificate. In questo modo, gli hacker del mondo reale non possono utilizzare gli exploit dei pen tester per violare la rete.
Quindi, i pen tester preparano un report sull'attacco. Il report in genere delinea le vulnerabilità che hanno trovato, gli exploit che hanno utilizzato, i dettagli su come hanno evitato le funzionalità di sicurezza e le descrizioni di ciò che hanno fatto mentre si trovavano all'interno del sistema. Il report può anche includere raccomandazioni specifiche sulla correzione delle vulnerabilità. Il team di sicurezza interno può utilizzare queste informazioni per rafforzare le difese contro gli attacchi nel mondo reale.