Black box
Il tester parte senza informazioni interne, come un attaccante esterno. Mostra cosa è raggiungibile da fuori, ma può richiedere più tempo per arrivare alle aree più profonde.
Guida · Test di penetrazione · Pentest
Un test di penetrazione, o penetration test, simula un attacco autorizzato contro un sistema per capire se una debolezza è davvero sfruttabile e quale danno potrebbe causare. Questa guida spiega come funziona, che tipi esistono, quando serve, cosa deve contenere un buon report e come scegliere un fornitore.
È un test di sicurezza autorizzato e controllato, in cui un tester prova a sfruttare le debolezze di un sistema, entro limiti concordati, per dimostrarne l'impatto reale e indicare come correggerle.
La parola chiave è "sfruttabile". Un elenco di possibili problemi dice che qualcosa potrebbe andare male. Un penetration test dice che cosa può andare male, come, e con quale conseguenza.
Sono attività complementari, spesso confuse. La differenza sta nell'obiettivo, nel metodo e nel tipo di risultato.
| Aspetto | Vulnerability assessment | Penetration test |
|---|---|---|
| Obiettivo | Individuare e classificare le vulnerabilità | Verificare cosa è sfruttabile e quale impatto ha |
| Metodo | Prevalentemente automatico, ampio | Prevalentemente manuale, mirato |
| Falsi positivi | Possibili, da verificare | Ridotti dalla verifica di sfruttabilità |
| Frequenza tipica | Periodica o a ogni cambiamento | Annuale o dopo cambiamenti significativi |
| Risultato | Elenco prioritizzato | Prova di sfruttamento e piano di correzione |
Il tipo di test dipende da quante informazioni e accessi il tester riceve. Non esiste un tipo migliore in assoluto: dipende dalla domanda a cui serve rispondere.
Il tester parte senza informazioni interne, come un attaccante esterno. Mostra cosa è raggiungibile da fuori, ma può richiedere più tempo per arrivare alle aree più profonde.
Il tester riceve informazioni parziali, ad esempio un account di prova o una mappa delle funzioni. È il tipo più usato per le applicazioni web, perché copre bene il controllo tra utenti.
Il tester conosce il codice, l'architettura e la configurazione. Trova più problemi in meno tempo, ed è utile prima di un rilascio importante o per una revisione approfondita.
Il tipo di test va scritto nello scope. Se non è definito, è difficile capire cosa il report copra davvero.
Non esiste una frequenza unica. Ci sono però situazioni in cui il test è quasi sempre opportuno, e altre in cui è già richiesto.
Una nuova applicazione o un sito che tratta dati sensibili dovrebbe essere testato prima di andare online, quando correggere costa ancora poco.
Molte richieste di offerta chiedono una verifica di sicurezza documentata come requisito di partecipazione o di esecuzione.
Per PCI DSS, NIS2, GDPR art. 32 o ISO/IEC 27001 il test è una delle evidenze tecniche richieste, insieme ai processi.
Un cambio di infrastruttura, un nuovo sistema di login o un'integrazione di pagamento sono buoni motivi per ripetere il test.
Un test ben condotto segue un percorso riconoscibile. Ogni fase deve produrre un output, altrimenti il lavoro non è verificabile.
Si definiscono obiettivi, perimetro, tipo di test, finestre temporali, contatti e regole di ingaggio, con autorizzazione firmata.
Si mappano host, servizi, tecnologie, endpoint e flussi applicativi. Più accurata è questa fase, più completo sarà il test.
Si cercano debolezze e si verifica se possono essere sfruttate, in modo controllato, senza azioni distruttive e senza uscire dal perimetro.
Si scrive il report, si discute con il team e, dopo le correzioni, si verifica che le vulnerabilità siano chiuse.
Se manca una di queste voci, il report non è utile né per il team né per il committente. Si può controllare un report ricevuto da un fornitore proprio con questa lista.
Sistemi testati, date, tipo di test e metodo dichiarato, per esempio OWASP WSTG o PTES.
Per ogni vulnerabilità: passi di riproduzione, evidenza e impatto. Chi legge deve poter rifare il test.
Gravità, sfruttabilità ed esposizione reale, con una priorità di correzione chiara e motivata.
Azioni correttive con responsabili suggeriti, e una verifica finale che chiude il ciclo con lo stato delle vulnerabilità.
Un esempio di voce ben scritta: "Endpoint di dettaglio ordine, parametro identificatore. Un utente autenticato con ruolo cliente può leggere l'ordine di un altro cliente cambiando l'identificatore. Prova: richiesta e risposta allegate. Impatto: dati personali e di pagamento di altri clienti. Correzione: verificare che l'ordine appartenga all'utente nella richiesta. Riverifica: confermata chiusa."
Alcune domande da fare prima di firmare, valide per qualsiasi fornitore.
Il fornitore deve chiederti un'autorizzazione firmata prima di iniziare il test. Se non lo fa, è un segnale di allarme.
Perimetro, limiti e finestre devono essere scritti, non lasciati a un accordo verbale.
Chiedi quale metodologia usano e chi esegue il lavoro, con referenze verificabili e, se previste, certificazioni del personale.
Chiedi per iscritto se è attiva una polizza di responsabilità civile professionale che copra il lavoro svolto.
L'accesso a un sistema informatico senza autorizzazione può configurare reati, come l'accesso abusivo previsto dall'art. 615-ter del codice penale. Per questo l'autorizzazione del proprietario del sistema è il primo documento da firmare, e il perimetro deve coincidere con quello autorizzato.
Anche il trattamento dei dati eventualmente incontrati durante il test deve essere concordato: il tester accede ai dati solo nella misura necessaria a dimostrare un'esposizione.
Il costo dipende da perimetro e profondità, e confrontare preventivi è utile solo se lo scope è lo stesso. Per un dominio web esterno, il nostro piano Perimetro singolo costa €490 una tantum, IVA esclusa. Il listino completo è nella home.
Solo con l'autorizzazione scritta del proprietario del sistema. Senza autorizzazione, l'accesso a un sistema può configurare il reato di accesso abusivo (art. 615-ter c.p.).
Lavoriamo con limiti concordati e finestre definite prima di iniziare, per ridurre al minimo l'impatto sul servizio.
Il red team simula un attaccante con obiettivi e tempi più ampi, spesso senza avvisare il personale. Un penetration test ha un perimetro e regole definiti in anticipo.
Per un dominio web esterno consegniamo il report in 5 giorni lavorativi dalla firma dell'autorizzazione.
No. Un test dimostra cosa è sfruttabile nel perimetro, con il tipo di accesso e il tempo concordati. Non garantisce l'assenza di altre vulnerabilità, per questo serve ripeterlo e affiancarlo ad altri controlli.
Mandaci un dominio: in 24 ore ti diciamo per iscritto se serve, su quale perimetro e cosa guarderemmo.
Leggi il perimetro gratis