Penetration test (pen test): di cosa si tratta?
Con i penetration test, abbreviati anche in pen test, si può determinare la vulnerabilità della rete dei singoli sistemi o persino delle singole applicazioni. Come viene eseguito esattamente un test di questo tipo e cosa comporta per la rete esistente?
Che cos’è un pen test?
In informatica un penetration test indica un attacco programmato a una rete di qualsiasi dimensione o ai singoli computer con l’obiettivo di rilevare le vulnerabilità dell’oggetto del test preso in esame. A questo scopo, con l’aiuto di diversi strumenti, vengono registrati diversi schemi di attacco che imitano quelli più conosciuti. I componenti tipici che fanno parte di un pen test sono:
- Elementi di collegamento di rete come router, switch o gateway
- Gateway di sicurezza come firewall hardware e software, filtri di pacchetti, antivirus, load balancer, IDS e IPS, ecc.
- Server come server web, server database, file server, ecc.
- Impianti di telecomunicazione
- Ogni tipo di applicazioni web
- Configurazioni di infrastrutture come meccanismi di controllo per l’accesso
- Uso di reti senza fili, come Wi-Fi o Bluetooth
In genere si distingue tra test black box, white box e grey box: i primi mettono a disposizione per i penetration test solo le informazioni dell’indirizzo della rete e del sistema o della rete di destinazione, mentre nel penetration test white box le persone che effettuano il test hanno già una conoscenza approfondita sui sistemi da testare, per esempio sugli indirizzi IP e i componenti software e hardware utilizzati. Nei test grey box, la variante più frequentemente utilizzata, sono combinati gli altri due metodi. È disponibile una conoscenza iniziale dell’infrastruttura IT, ad esempio per cosa vengono utilizzati i sistemi e in che cosa consistono approssimativamente.
Come eseguire un penetration test
Come puoi utilizzare i penetration test per i tuoi scopi? Nelle sezioni seguenti abbiamo riassunto gli aspetti più importanti per svolgere un penetration test secondo le tue esigenze.
Requisiti del pen test
Per fare in modo che un pen test vada a buon fine, è necessario innanzitutto creare una struttura chiara. Chiarisci quali componenti devono essere testati, il periodo da usare per un singolo test o per l’intera revisione della rete e assicurati di aver a disposizione tutti gli strumenti necessari.
Questa fase di preparazione è ancora più importante se il controllo di sicurezza viene affidato a tester esterni e se deve essere realizzato un test white box. In questo caso, è necessario comunicare tutte le informazioni sulla tua rete e sui sistemi partecipanti e trasmettere la documentazione esistente. La situazione è diversa nel caso di un test black box, per il quale è sufficiente comunicare l’indirizzo di destinazione dei rispettivi oggetti di test.
Solitamente, si consiglia che un team di test sia composto da almeno due persone per garantire il mantenimento del principio dei quattro occhi. Le aree centrali e specializzate in cui i tester dovrebbero essere competenti comprendono: amministrazione di sistema, protocolli di rete, linguaggi di programmazione, prodotti di sicurezza informatica, sistemi applicativi e componenti di rete.
I migliori strumenti da utilizzare per i penetration test
Data la varietà di forme di attacco della rete, sono messi a disposizione di tutti coloro che eseguono i pen test tutta una serie di diversi strumenti. Tra questi i più importanti sono:
- Le scansioni delle porte: il port scanning utilizza strumenti speciali per individuare le porte aperte su un sistema informatico.
- Scanner di vulnerabilità: gli scanner di vulnerabilità (conosciuti in inglese come “Vulnerability Scanner”) controllano i sistemi per individuare eventuali falle di sicurezza, configurazioni errate e politiche inadeguate in materia di password e utenti.
- Sniffer: uno sniffer può essere utilizzato per analizzare il traffico di dati di una rete. Più questo è criptato, meno informazioni si ottengono.
- Generatori di pacchetti: i generatori di pacchetti sono strumenti per generare o simulare il traffico di dati di rete. In questo modo, nell’ambito di un penetration test, viene imitato il traffico di dati di rete reale.
- Password cracking: con la violazione delle password si tentano di ottenere password insicure.
Molti degli strumenti menzionati sono stati sviluppati esplicitamente per svolgere test di sicurezza nelle reti e sono quindi realizzati su misura per specifici ambiti di test. Mentre la maggior parte dei programmi proviene dal settore open source, si trovano comunque alcune applicazioni commerciali per la sicurezza, che sono solitamente meglio documentate e offrono un supporto completo.
Nel frattempo, sono state progettate delle raccolte di strumenti complete per i penetration test, che sono stati messi insieme da esperti della sicurezza e funzionano spesso su una distribuzione di Linux stabile. Tra le soluzioni più famose si annovera Kali Linux, rilasciata per la prima volta nel 2007.
Svolgimento di un penetration test
Lo svolgimento di un penetration test si può suddividere in particolar modo nei seguenti quattro ambiti:
Verifica della strategia di rete
Già nella fase di preparazione, un penetration test può rivelare anomalie o vulnerabilità concrete nella realizzazione della rete o dei singoli componenti. Se ad esempio sono configurate diverse applicazioni con differenti gruppi di permessi, ciò può ben presto portare a complicazioni e rappresentare un rischio per la sicurezza dell’intera rete, anche se questa e i singoli programmi ospitati sono sufficientemente protetti. Alcuni di questi casi si possono chiarire preliminarmente, mentre altri sono riscontrabili solo tramite un test pratico.
Test delle misure di rafforzamento
Un aspetto centrale per la creazione di una rete aziendale sicura è quello che i sistemi coinvolti risultino rafforzati al meglio. Nel pen test si tratta, di conseguenza, anche di verificare le misure di rafforzamento intraprese. Qui si trova il software installato, come il sistema operativo, i servizi del sistema o le applicazioni che dovrebbero sempre essere aggiornate. Se per motivi di compatibilità con altre applicazioni sono in uso delle versioni più vecchie, è obbligatorio prendere delle misure di protezione alternative. Inoltre, ricoprono un ruolo importante anche i prerequisiti di accesso e di autenticazione per i singoli sistemi e programmi. A questo punto il penetration test si occupa di tematiche come:
- Gestione degli accessi
- Uso e crittografia delle password
- Uso delle interfacce esistenti e delle porte aperte
- Una serie di regole definite (ad esempio quelle del firewall)
Ricerca di vulnerabilità conosciute
In generale, non ci si mette molto a scoprire le falle di sicurezza, perciò sono solitamente risaputi alle persone che eseguono penetration test i punti di attacco degli oggetti esaminati. Grazie alle versioni e alle patch rilasciate, che si sono imposte durante le ricerche per accertare il grado di rafforzamento dei componenti di rete, si scoprono perciò in fretta quali applicazioni rappresentano un rischio per la sicurezza. Se devono essere esaminati in breve tempo molti sistemi, vale la pena di impiegare degli scanner per le vulnerabilità, anche se non portano sempre a un risultato esatto.
Uso mirato di exploit
Chi esegue il test sa con certezza se le vulnerabilità trovate si possono realmente sfruttare, solo nel momento in cui impiega a sua volta un apposito exploit. In una simile sequenza di comandi si tratta solitamente di script, che vengono messi a disposizione da diverse fonti su internet, ma che non sono tuttavia sempre programmati in modo sicuro. Se si esegue un simile exploit poco sicuro, si corre il rischio che l’applicazione testata o il sistema si arresti e, nel peggiore dei casi, che vengano persino sovrascritte delle sezioni di memoria importanti. Quindi, in questo caso chi svolge il pen test dovrebbe avere l’accortezza di impiegare solo script comprovatamente non pericolosi provenienti da fonti serie o rinunciare a testare le falle di sicurezza.
Tutti i passaggi e i risultati del pen test devono essere riportati per iscritto. In questo modo disponi delle basi ottimali per comprendere i singoli passaggi e valutare la situazione che si verifica. Basandovi sulle liste di priorità proposte, puoi ottimizzare la protezione del sistema passo dopo passo. Si consiglia di rieseguire una nuova verifica ogni due-tre anni.
Vantaggi e svantaggi dei pen test
Le grandi strutture omogenee di computer appartengono ormai al passato. Le architetture odierne IT decentrate sono una fonte giornaliera di nuove falle di sicurezza ed errori, che i produttori di software risolvono in maniera più o meno veloce. È qui che i penetration test spiccano con i seguenti vantaggi:
- nel caso della verifica dei sistemi, i pen test vanno molto più a fondo rispetto a un classico controllo della sicurezza;
- la finalità di base consiste nel controllare l’interazione dei singoli componenti tra di loro;
- i tester esterni danno un’opinione aggiuntiva e un’altra prospettiva sulla strategia di sicurezza di base;
- I penetration tester professionisti sono opportunamente specializzati per svolgere questi test e procedono alla stessa maniera di un criminale informatico.
I penetration test e in particolare la collaborazione con tester esterni comporta anche alcuni svantaggi:
- durante lo svolgimento del test il team avrà accesso al sistema interno;
- c’è sempre la possibilità che il penetration test causi dei danni che non si possono più risolvere;
- i pen test forniscono quindi solo la situazione momentanea dei tuoi sistemi di rete e non dovrebbero mai essere considerati come un’occasione per rinunciare a prendere le misure di sicurezza classiche.
Infine, si corrono anche dei rischi con l’ingegneria sociale, le cui vulnerabilità non rientrano nel campo di analisi di un classico penetration test. Molti fornitori di servizi offrono la verifica di queste vulnerabilità umane nelle aziende, offrendo dei corsi appositi, che sono però opzionali.