Tutorial sui Penetration Test: cos'è PenTest?
⚡ Riepilogo intelligente
Il penetration testing simula un attacco reale contro un'applicazione, una rete o un sistema, consentendo ai team di sicurezza di individuare le vulnerabilità sfruttabili, misurarne l'impatto sul business e risolverle prima che un malintenzionato esterno scopra le stesse falle.
Che cos'è il test di penetrazione?
Test di penetrazione o Pen Testing è un tipo di Test di sicurezza Utilizzato per scoprire vulnerabilità, minacce e rischi che un aggressore potrebbe sfruttare in applicazioni software, reti o applicazioni web. Lo scopo del penetration testing è identificare e testare tutte le possibili vulnerabilità di sicurezza presenti nell'applicazione software. Il penetration testing è anche chiamato Pen Test.
Il diagramma seguente mostra come una vulnerabilità non corretta in un'applicazione diventi la porta d'accesso per un aggressore.
La vulnerabilità è il rischio che un aggressore possa interrompere o ottenere l'accesso non autorizzato al sistema o a qualsiasi dato in esso contenuto. Le vulnerabilità vengono solitamente introdotte accidentalmente durante la fase di sviluppo e implementazione del software. Le vulnerabilità più comuni includono errori di progettazione, errori di configurazione e bug del software. L'analisi di penetrazione si basa su due meccanismi: la valutazione della vulnerabilità e il penetration testing (VAPT).
Le due componenti di un VAPT (Vulnerability Assessment and Penetration Test) vengono spesso confuse. Una valutazione delle vulnerabilità elenca le debolezze note su larga scala e si ferma lì, mentre un penetration test sfrutta in modo sicuro una selezione di esse per dimostrare l'impatto reale. Eseguiti insieme, distinguono i risultati teorici da quelli che mettono effettivamente a rischio i dati.
Perché i test di penetrazione?
Il penetration testing è essenziale in un'azienda perché:
- I settori finanziari come banche, banche d'investimento e borse valori desiderano che i propri dati siano protetti, e i test di penetrazione sono essenziali per garantire la sicurezza.
- Se il sistema software è già stato violato, l'organizzazione desidera determinare se sono ancora presenti minacce al suo interno, per evitare futuri attacchi.
- I test di penetrazione proattivi rappresentano la migliore protezione contro gli hacker.
- I framework di conformità lo prevedono. Il requisito 11.4 del PCI DSS, ad esempio, richiede test di penetrazione interni ed esterni almeno una volta all'anno e dopo ogni modifica significativa.
Tipi di test di penetrazione
Il tipo di penetration test selezionato dipende solitamente dall'ambito e dal fatto che l'organizzazione voglia simulare un attacco da parte di un dipendente o di un amministratore di rete (fonti interne) o da fonti esterne. Esistono tre tipi di penetration test, che sono:
Nel penetration testing black-box, il tester non ha alcuna conoscenza dei sistemi da testare. Il suo compito è quello di raccogliere informazioni sulla rete o sul sistema target.
Nei test di penetrazione white-box, al tester vengono solitamente fornite informazioni complete sulla rete o sui sistemi da testare, inclusi lo schema degli indirizzi IP, il codice sorgente e i dettagli del sistema operativo. Questo può essere considerato una simulazione di un attacco da parte di una qualsiasi fonte interna, come ad esempio un dipendente dell'organizzazione.
Nel penetration testing grey-box, al tester viene fornita una conoscenza parziale del sistema. Può essere considerato un attacco da parte di un hacker esterno che ha ottenuto un accesso illegittimo alla documentazione dell'infrastruttura di rete di un'organizzazione.
La tabella sottostante mette a confronto i tre tipi di interazione, consentendoti di abbinarli alla minaccia che desideri effettivamente simulare.
| Aspetto | Nero Box | Bianco Box | Grigio Box |
| Informazioni fornite al tester | Nona | Completo: codice sorgente, schema IP, dettagli del sistema operativo | Parziale: credenziali o documenti limitati |
| Simula un attaccante | Un estraneo senza accesso | Un insider o uno sviluppatore | Un estraneo che ha già preso piede |
| Tempo impiegato in ricognizione | Alto | Basso | Moderato |
| Copertura tipica della base di codice | Solo ciò che è raggiungibile dall'esterno | Più profondo, perché le strutture interne sono visibili | Concentrandosi sul percorso di attacco esposto |
Come eseguire il Penetration Test
Per eseguire un penetration test è necessario svolgere le seguenti attività. L'immagine sottostante riassume le quattro fasi, prima che ciascuna di esse venga descritta singolarmente.
Passaggio 1) Fase di pianificazione
- L'ambito e la strategia dell'incarico vengono determinati
- Le politiche e gli standard di sicurezza esistenti vengono utilizzati per definire l'ambito
Passaggio 2) Fase di scoperta
- Raccogli quante più informazioni possibili sul sistema, inclusi i dati presenti nel sistema, i nomi utente e persino le password. Questa operazione è anche chiamata fingerprinting.
- Scansiona e sonda le porte
- Verificare le vulnerabilità del sistema
Passaggio 3) Fase di attacco
- Trova gli exploit per le varie vulnerabilità. Hai bisogno dei privilegi di sicurezza necessari per sfruttare il sistema.
Passaggio 4) Fase di reporting
- Una relazione deve contenere risultati dettagliati
- Rischi derivanti dalle vulnerabilità individuate e il loro impatto sul business
- Raccomandazioni e soluzioni, se presenti
Il compito principale nel penetration testing è raccogliere informazioni sul sistema. Esistono due modi per raccogliere informazioni:
- Modello 'uno a uno' o 'uno a molti' rispetto all'host: un tester esegue tecniche in modo lineare su un host target o su un gruppo logicoping degli host di destinazione (ad esempio una sottorete).
- Modello "da molti a uno" o "da molti a molti": il tester utilizza più host per eseguire tecniche di raccolta dati in modo casuale, con frequenza limitata e non lineare.
Esempi di strumenti per test di penetrazione
Esiste un'ampia varietà di strumenti utilizzati nei test di penetrazione e il importanti strumenti Pentest siamo:
1) Teramind
Teramind offre una suite completa per la prevenzione delle minacce interne e il monitoraggio dei dipendenti. Migliora la sicurezza attraverso l'analisi del comportamento e la prevenzione della perdita di dati, garantendo la conformità e ottimizzando i processi aziendali. La sua piattaforma personalizzabile si adatta a varie esigenze organizzative, fornendo informazioni utili incentrate sull'aumento della produttività e sulla salvaguardia dell'integrità dei dati.
Caratteristiche:
- Prevenzione delle minacce interne: rileva e previene le azioni degli utenti che potrebbero indicare minacce interne ai dati.
- Ottimizzazione dei processi aziendali: utilizza l'analisi comportamentale basata sui dati per ridefinire i processi operativi.
- Produttività della forza lavoro: monitora la produttività, la sicurezza e la conformità dei comportamenti della forza lavoro.
- Gestione della conformità: Aiuta a gestire la conformità con un'unica soluzione scalabile, adatta a piccole imprese, grandi aziende e agenzie governative.
- Analisi forense degli incidenti: fornisce prove a supporto della risposta agli incidenti, delle indagini e dell'intelligence sulle minacce.
- Prevenzione della perdita di dati: monitora e protegge dalla potenziale perdita di dati sensibili.
- Monitoraggio dei dipendenti: offre funzionalità per monitorare le prestazioni e le attività dei dipendenti.
- Analisi comportamentale: analizza dati dettagliati sul comportamento dei clienti all'interno dell'app per ricavarne informazioni utili.
- Impostazioni di monitoraggio personalizzabili: consente di personalizzare le impostazioni di monitoraggio per adattarle a casi d'uso specifici o per implementare regole predefinite.
- Analisi del dashboard: Fornisce visibilità e informazioni utili sulle attività della forza lavoro attraverso un dashboard completo.
- nmap – Questo strumento viene utilizzato per eseguire la scansione delle porte, l'identificazione del sistema operativo, trace la scansione del percorso e delle vulnerabilità.
- Nessus – Si tratta di uno strumento tradizionale per l'individuazione di vulnerabilità di rete.
- Pass-The-Hash: questo strumento viene utilizzato principalmente per il cracking delle password.
Ruolo e responsabilità dei Penetration Tester
Il lavoro di un penetration tester consiste nel:
- Raccogli le informazioni necessarie dall'organizzazione per consentire i test di penetrazione.
- Trova difetti che potrebbero consentire agli hacker di attaccare una macchina bersaglio
- Pensa e agisci come veri hacker, seppur in modo etico.
- Rendi il lavoro riproducibile, in modo che sia facile per gli sviluppatori correggerlo.
- Concordare in anticipo la data di inizio e la data di fine dell'esecuzione del test.
- Assumersi la responsabilità di qualsiasi perdita nel sistema o di informazioni durante il test del software
- Mantenere riservati i dati e le informazioni.
Test di penetrazione manuale vs. test di penetrazione automatizzato
Nella maggior parte dei casi reali, entrambi gli approcci vengono combinati. Il confronto seguente mostra in quali situazioni ciascuno di essi si rivela più efficace.
| Test di penetrazione manuale | Test di penetrazione automatizzato |
| Test manuale richiede professionisti esperti per eseguire i test | Gli strumenti di test automatizzati forniscono report chiari con professionisti meno esperti |
| Il test manuale richiede Excel e altri strumenti per trackit | Test di automazione dispone di strumenti centralizzati e standard |
| Nel test manuale, i risultati dei campioni variano da test a test | Nel caso dei test automatizzati, i risultati non variano da test a test |
| La pulizia della memoria dovrebbe essere ricordata dagli utenti | I test automatizzati avranno pulizie complete. |
Svantaggi del Penetration Test
I test di penetrazione non possono individuare tutte le vulnerabilità del sistema. Esistono limitazioni di tempo, budget, ambito e competenze dei tester.
I seguenti saranno gli effetti collaterali che si possono verificare durante i test di penetrazione:
- Perdita e corruzione dei dati
- Down Time
- Aumentare i costi
L'infografica qui sotto raccoglie gli stessi compromessi, insieme ai motivi per cui le organizzazioni decidono comunque di eseguire il test.
Questi limiti sono il motivo per cui un penetration test funziona meglio se integrato in una politica di sicurezza ben implementata, piuttosto che in sostituzione di essa. I tester dovrebbero comportarsi come veri hacker, verificare che il codice sia scritto in modo sicuro e ripetere l'esercizio secondo una pianificazione documentata.





