I test di penetrazione possono essere definiti come un tentativo legittimo e autorizzato di trovare esfruttare le vulnerabilità di sicurezza nei sistemi informatici per migliorare la sicurezza di questi sistemi. Questo processo include il test delle vulnerabilità e la fornitura di prove complete di un cosiddetto attacco di "vulnerabilità". POC (proof of concept). Questo per confermare che gli errori di sicurezza segnalati sono utilizzabili. Inoltre, i test di penetrazione terminano con raccomandazioni specifiche. Questi includono come correggere gli errori rilevati durante un test. In sintesi, questo processo è progettato per proteggere computer e reti da attacchi futuri. I test di penetrazione sono anche noti sotto nomi come pentesty, PT, Hacking,Ethical Hacking,White Hat Hacking. Una selezione importante è vedere la differenza tra i test di penetrazione e la valutazione del rischio o gli audit. L'auditor chiede " hai dei backup?" e il pentester ti informa " abbiamo i tuoi backup" ????. Molte persone (e aziende) nella comunità della sicurezza usano queste nozioni in modo intercambiabile.La valutazione dei rischi è un processo di revisione di servizi e sistemi incentrati su potenziali problemi di sicurezza, mentre i test di penetrazione attraverso lo sfruttamento e gli attacchi reali indicano errori di sicurezza effettivamente esistenti. Condurre test di penetrazione va oltre la valutazione delle vulnerabilità simulando l'attività degli hacker e fornendo vettori di attacco già pronti. I test di penetrazione possono essere suddivisi in diverse categorie, tenendo conto dei seguenti fattori:
- il livello di conoscenza disponibile;
- l'ambito della prova;
- la composizione del gruppo di prova;
- come vengono eseguiti i test;
- ubicazione delle prove;
- posizione nel ciclo SDLC (ciclo di vita dello sviluppo);
Di seguito è riportata una classificazione delle prove di penetrazione basata sui criteri di cui sopra: a) il livello di conoscenze disponibili:
- blackbox – un metodo in cui il tester ha una quantità minima di informazioni sul sistema attaccato. In genere, si tratta solo di informazioni sull'ambito dei test. Questo per simulare un attacco hacker dall'esterno (l'attaccante cerca di hackerare un sistema di cui non sa nulla);
- greybox – un metodo in cui il tester ha un certo livello di conoscenza del sistema, ma senza accesso ai codici sorgente. In genere ha visibilità sulla struttura dei dati, ad esempio attraverso un account utente con privilegi bassi condiviso con esso. Questo attacco ha lo scopo di simulare un attacco di hacking dall'interno della società (l'utente malintenzionato è un dipendente della società o ha un account nel sistema);
- whitebox – un metodo in cui il test person ha pieno accesso alla documentazione tecnica. Questo test ha principalmente lo scopo di rivedere il codice sorgente e individuare gli errori di sicurezza in esso;
b l'ambito di applicazione della prova:
- test invasivi, che consistono nel simulare un attacco reale, ad esempio modificando i dati o bloccando il servizio. Esse incidono quindi sul funzionamento del sistema;
- test non invasivi, che sono l'opposto dei test invasivi, quindi non influenzano il funzionamento del sistema. Si basano sulla ricerca di vulnerabilità senza verifica pratica, ad esempio rivedendo il codice sorgente.
c la composizione del gruppo di prova:
- test effettuati dai dipendenti interni dell'azienda;
- ricerca di terze parti;
- prove effettuate per composizione mista, cioè dipendenti interni dell'azienda e dipendenti di terzi;
d) modalità di s effettuato:
- test esperti, eseguiti manualmente, cioè manualmente da uno specialista qualificato;
- test automatizzati effettuati utilizzando strumenti dedicati, ad esempio scanner di rete, analizzatori di codice sorgente;
- le prove miste hanno comportato test manuali e automatizzati;
e) luoghi di prova:
- i test interni, consistono nel simulare un attacco dall'interno dell'azienda bypassando la sicurezza come i firewall, il più delle volte utilizzando intranet;
- test esterni, consistono in simulazioni su un attacco esterno, ad esempio via Internet. In questo caso, l'utente malintenzionato ha la sua strada per superare i meccanismi firewall o i filtri dell'applicazione;
f ciclo di vita dello sviluppodel sistema (SDLC):
- test durante lo sviluppo del software. il cosiddetto sviluppo basato sui test;
- test di accettazione, eseguiti sul software già creato.