Penetration test: come scoprire le vulnerabilità nella rete
Chi amministra una rete locale di computer, sa bene quanto siano faticosi i compiti che ne derivano, inerenti la configurazione e l’aggiornamento del sistema. È infatti necessario configurare tutti i componenti in modo tale che risultino funzionanti e aggiornati. Per tutti i dispositivi degli utenti deve essere installato il software desiderato e devono essere definiti i giusti permessi di accesso. Ma il compito più importante consiste nel mettere a punto una strategia di sicurezza adeguata, per proteggere così la propria rete da attacchi dannosi.
A seconda delle dimensioni della rete e degli standard di sicurezza richiesti vengono prese in considerazione diverse misure ed elementi costitutivi: si va dai classici firewall software e antivirus, passando per i più complessi firewall hardware, fino ad arrivare a soluzioni con componenti aggiuntivi come gli Intrusion Detection e gli Intrusion Prevention Systems.
Una volta scelta una strategia per la protezione del sistema, il compito non è però ancora concluso: infatti, nelle grandi aziende e nelle istituzioni pubbliche condurre test di sicurezza regolari per verificare la protezione della rete rientra nelle normali operazioni di routine. Così con i penetration test, abbreviati anche in pen test, si può determinare la vulnerabilità della rete dei singoli sistemi o persino delle singole applicazioni. Sulla base dei risultati del test si possono infine mettere in atto le giuste misure di ottimizzazione. Ma come viene eseguito esattamente un test di questo tipo e cosa comporta per la rete esistente?
Che cos’è un pen test?
Nell’Information Technology 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. Per questo scopo, con l’aiuto di diversi tool, 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, filtri di pacchetti, antivirus, load balancer, IDS e IPS, 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 e white box: i primi mettono a disposizione per i penetration test solo le informazioni dell’indirizzo della rete e del sistema di destinazione, mentre negli altri i tester hanno già una conoscenza approfondita sui sistemi da testare, per esempio sugli indirizzi IP e i componenti software e hardware utilizzati. Così i pen test di tipo white box coprono anche quegli scenari di attacco che non possono essere considerati dai pen test di tipo black box, come eventuali attacchi sferrati da un ben informato hacker presente nelle proprie fila.
Motivazione e premesse per effettuare un pen test
Principalmente il rischio che la vostra rete venga attaccata aumenta in base al valore dei vostri dati. Le istituzioni e le banche, che gestiscono una grande varietà di informazioni personali dei clienti, sono nel mirino dei cyber criminali così come lo sono le aziende di successo, che dispongono sui loro server di un vasto e prezioso know-how.
Se amministrate dati o progetti di bassa portata nella vostra rete, non dovreste comunque rinunciare alla vostra sicurezza, indipendentemente che gestiate uno shop online, che facciate funzionare un sistema di gestione delle merci su un server nella rete, che offriate un progetto web informativo con una varietà di post ben curati o che utilizziate la rete solo come piattaforma di lavoro. Anche in tutti questi casi gli hacker vi possono arrecare dei danni e ad esempio riuscire a
- paralizzare i progetti web o gli ambienti di lavoro gestiti da voi,
- ottenere password preziose degli utenti della rete,
- inserire dei malware nel sistema,
- rubare i dati di login degli account dei clienti
- o usare indebitamente i sistemi dei computer della vostra rete.
Al di là delle conseguenze economiche, spesso non è neanche da escludere un danneggiamento di immagine, nel caso in cui i clienti risultino direttamente coinvolti o l’attacco diventi di dominio pubblico.
Se decidete di eseguire un pen test per la vostra rete, non dovreste però iniziare degli attacchi autonomamente contro i vostri sistemi di computer e applicazioni, bensì dovreste prendere in considerazione i servizi offerti dagli esperti nell’ambito. Questi test prevedono infatti una competenza tecnica nel settore: i penetration test possono possedere un’intensità diversa e portare velocemente, nel caso di esecuzioni errate, a complicazioni o danni seri.
Si deve perciò trovare il giusto compromesso tra il metodo di attacco necessario e l’evitabile sfruttamento della relativa vulnerabilità. Inoltre un tester esterno, che non fa parte o non è stato coinvolto nella concezione, nella strutturazione e nella gestione della rete, garantisce dei migliori risultati dei test per via della sua estraneità ai fatti e poiché è in grado di fornirvi un’altra prospettiva.
Ogni tipo di penetration test prevede che siate i proprietari della rete testata o che disponiate delle necessarie autorizzazioni. La collaborazione con un tester esterno richiede perciò assolutamente la stesura di un contratto, in cui sono stabilite la durata e l’intensità dei pen test, oltre che le misure per la protezione dei dati, ecc.
Pen test: gli strumenti da utilizzare
Data la varietà di forme di attacco della rete, sono messi a disposizione dei penetration tester tutta una serie di diversi strumenti. Tra questi rientrano ad esempio Port Scanner, scanner delle vulnerabilità, sniffer, generatori di pacchetto o password cracker. Molti strumenti vengono sviluppati esplicitamente per i test di sicurezza nelle reti e sono perciò ideati su misura per degli ambiti di test specifici.
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 utente completo. Questo fatto può così risultare vantaggioso perché, per via dei ben definiti scenari di utilizzo e delle possibilità offerte dai singoli strumenti, è molto importante che il tester abbia già dimestichezza con le funzioni degli strumenti utilizzati.
Nel frattempo sono state progettate delle raccolte di tool complete per i penetration test, che sono stati messi insieme da esperti della sicurezza. Queste collezioni funzionano spesso su una distribuzione di Linux stabile che si può eseguire attraverso un supporto di archiviazione esterno, come un DVD o una pen drive USB. In questo modo una simile distribuzione di pen test ha il vantaggio di risultare rafforzata, di riunire tutti i tool più importanti in un’interfaccia, di essere preconfigurata e pronta per l’uso. Tra le soluzioni più famose ricordiamo la distribuzione Linux Kali, rilasciata per la prima volta nel 2007.
Svolgimento di un penetration test
Per portare a compimento un pen test, dovreste prima di tutto ideare una strategia chiara ed efficace. Chiarite quali sono i componenti da testare, quanto deve durare un singolo test e la verifica totale della vostra rete e se avete a disposizione tutti gli strumenti necessari. Questa fase di preparazione risulta molto importante, specialmente nel momento in cui incaricate un tester esterno di fare il check-up della sicurezza e di effettuare un test white box. In questo caso è necessario che comunichiate tutte le informazioni sulla vostra rete e sui sistemi comunicanti e che passiate in rassegna la documentazione già esistente. Un test black box per il quale rivelate esclusivamente l’indirizzo di destinazione dei relativi oggetti del test si svolgerà, invece, in maniera diversa.
La procedura di test vera e propria si può suddividere in particolar modo nei seguenti quattro ambiti:
- Verifica della strategia di rete: già nella fase di preparazione un penetration tester può riscontrare 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 hostati 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 penetration 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 degli utenti 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 autentificazione per i singoli sistemi e programmi. A questo punto il pen test si occupa di temi, come permessi di accesso, uso e crittografia delle password, oltre che di accertarsi se l’accesso è vietato alle persone non autorizzate. Un altro compito è quello di verificare l’uso delle interfacce esistenti e delle porte aperte, oltre che di 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 del software, perciò sono solitamente risaputi ai penetration tester 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, scoprite 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 comunque sempre ad un risultato esatto.
- Uso mirato di exploit: il tester sa con certezza se le vulnerabilità trovate si possono realmente sfruttare, solo nel momento in cui impiega lui stesso 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 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 il penetration tester 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 dal tester. Su quali ambiti si concentrerà viene chiarito prima. In questo modo disponete delle basi ottimali per comprendere i singoli passaggi e valutare la situazione che si verifica. Solitamente i tester sono anche in grado di fornirvi delle stime precise su quale mancanza rilevata in ambito della sicurezza rappresenti il più grave rischio per la vostra rete. Basandovi su liste di priorità, potete ottimizzare la protezione del sistema passo dopo passo.
Vantaggi e svantaggi dei test complessi di sicurezza
Le grandi strutture omogenee di computer appartengono ormai al passato. Le architetture odierne IT decentrate, rafforzate ulteriormente tramite connessione diretta su Internet di partner commerciali e clienti, sono una fonte giornaliera di nuove falle di sicurezza ed errori, che i produttori di software risolvono in maniera più o meno veloce. Per alcuni programmi non è prevista alcuna forma di supporto, perciò rinunciando a utilizzarli si va sul sicuro. Infatti i firewall e gli antivirus permettono di proteggersi da molte vulnerabilità e attacchi esterni, ma il sorgere di nuove falle può ribaltare la situazione in fretta. Anche gli scanner di sicurezza sono uno strumento utile per sistemi complessi connessi in rete, ma alla fine non sono sufficienti.
Proprio qui un penetration test dimostra i suoi punti di forza: da una parte, nel caso della verifica dei sistemi va molto più a fondo rispetto ad un check di sicurezza, dall’altra va controllata la finalità di base di un test simile, per controllare l’interazione dei singoli componenti tra di loro. Se ci si affida ad un tester esterno per il pen test, si guadagna inoltre 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 hacker. I risultati vi mostrano spesso delle vulnerabilità che altrimenti, probabilmente, non avreste mai scoperto.
Collaborare con un tester esterno porta comunque con sé un certo rischio. Dovete partire dal presupposto che questa persona avrà accesso al sistema interno durante l’esecuzione del test. Inoltre c’è sempre la possibilità che il penetration test causi dei danni che non si possono più risolvere, anche nel caso in cui abbiate volto il test personalmente. Invece, rispetto ad altre misure di sicurezza, i pen test hanno lo svantaggio di lavorare sempre in background e forniscono quindi solo la situazione momentanea dei vostri sistemi di rete. Per questo motivo non dovreste mai affidarvi esclusivamente a strategie di sicurezza ottimizzate sulla base di penetration test, rinunciando così 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.