Pubblicato: 10 Febbraio 2021  -  Ultimo aggiornamento: 13 Febbraio 2021

Penetration Test: tutto quello che c’è da sapere

Penetration Test: tutto quello che c’è da sapere

Lavorare con la rete significa inevitabilmente esporsi a potenziali attacchi di malintenzionati, intrusioni indesiderate e pericolose perdite di dati o informazioni riservate.

Come prevenire ogni attacco e garantire sicurezza? Uno strumento essenziale è il Penetration Test, utile per testare i sistemi di difesa adottati e capire quanto si è realmente protetti e al sicuro.

Cos’è il Penetration Test?

Il Penetration Test – chiamato anche pentest – è la simulazione di un attacco informatico che ha l’obiettivo di testare la vulnerabilità della rete o sistema operativo che si sta utilizzando.

Si attua vestendo i panni di un vero e proprio hacker e tentando concretamente di entrare nel proprio sistema informatico seguendo ogni passaggio in maniera approfondita.
In questo modo si potranno testare sul campo tutti gli strumenti di difesa in dotazione e valutare una volta per tutte se gli accorgimenti adottati sono efficaci, adatti al contesto in esame e di numero sufficiente.

Il pentest riguarda la rete ma non solo: è infatti uno strumento utile anche per sistemi operativi, dispositivi mobili, server, web application, siti web e molto altro.
Basta che sia un sistema esposto su Internet o una piattaforma legata a una rete.

Durante l’analisi l’amministratore può creare un profilo utente apposito per compiere il test, o – ancora meglio – una gamma di utenti rappresentanti ogni tipo di profilo che solitamente ha accesso alla rete. In questo modo si avrà una panoramica completa dei rischi sia esterni che interni e si potrà capire con più chiarezza qual è la fonte del problema.

Pentest: tutti i vantaggi

Il vantaggio principale dell’eseguire un Penetration Test è sicuramente la possibilità di verificare in tempo reale la validità dei sistemi di difesa e correre così ai ripari per sanare ogni falla.

I benefici però sono tanti e una corretta attività di testing, se eseguita correttamente, può davvero aiutare un’azienda a capire che direzione prendere per lavorare sicuri a 360 gradi.

Innanzitutto compiere un’analisi è utile per valutare se le politiche di sicurezza aziendali sono comprese e rispettate da tutti i dipendenti: gli attacchi esterni sono sempre dietro l’angolo, ma spesso i malfunzionamenti partono proprio dall’interno ed è bene educare il personale perché adotti un comportamento adeguato e rispettoso delle norme di sicurezza.

Inoltre il pentest può evidenziare involontarie violazioni alla sicurezza che rischiano di danneggiare irreparabilmente la reputazione di un’azienda. Non essere del tutto in regola può infatti attirare pesanti sanzioni, compromettere l’immagine dell’attività e persuadere i clienti a rivolgersi altrove per mancanza di fiducia.

Un altro vantaggio dell’esame è la capacità di individuare le irregolarità che potrebbero causare interruzioni di servizio, paralizzando l’attività e causando grosse perdite economiche.

Infine il Penetration Test serve per ottenere informazioni preziose e dettagliate riguardanti lo stato della nostra rete: rielaborandole si potrà capire esattamente come sta funzionando il sistema e quali sono i punti forti sfruttabili a proprio vantaggio.

Smart working in sicurezza

Un aspetto importante e da non dimenticare è il boom che ha avuto lo smart working in quest’ultimo anno di pandemia di Covid-19.
I lavoratori si sono trovati a dover improvvisare degli uffici nelle stanze di casa, i device personali sono diventati indispensabili per svolgere le attività e numerosi VAS (i servizi a valore aggiunto) sono stati introdotti per agevolare il lavoro da remoto.

Il risultato? Il perimetro aziendale si è espanso oltre i confini abituali e il controllo sui dispositivi utilizzati è andato perso, rendendo l’organizzazione generale dispersiva e difficoltosa.

I test sulla sicurezza hanno quindi assunto un ruolo ancora più decisivo, dimostrandosi più che mai attuali ed essenziali per non temere attacchi e mantenere la sicurezza in questa delicata e imprevista situazione.
Evidenziando così come il pentest sia un asso nella manica non indifferente per chi desidera davvero creare un ambiente lavorativo sereno e protetto sotto ogni punto di vista.

Come si esegue un Penetration Test?

Per un’analisi completa ed efficace bisogna procedere in modo schematico, seguendo una serie di procedure manuali e automatiche ben definite.
Vediamole nel dettaglio:

  1. Fase preliminare: si sceglie il consulente che eseguirà il test, si decide la modalità da adottare, si definiscono le tempistiche e si delineano degli obiettivi precisi. In questo modo si traccia la strada da percorrere per arrivare alla meta senza intoppi. Inoltre si analizzano le caratteristiche della rete o sistema operativo oggetto del test e si raccolgono tutte le informazioni necessarie, sia tecniche che comportamentali (ingegneria sociale e ricerche online).
  2. Vulnerability assessment: si elencano tutti i problemi e gli errori riscontrati, si stabiliscono i punti deboli e si capisce verso cosa è più utile concentrare l’attacco.
  3. Vulnerability spotting: le informazioni raccolte vengono usate per procedere concretamente all’attacco e penetrare nel sistema, sempre mantenendo le linee guida stabilite nella fase preliminare.
  4. Ripristino: chi ha eseguito l’analisi cancella ogni traccia del proprio passaggio, riportando l’ordine e ristabilendo la situazione iniziale.
  5. Report: si esamina il risultato ottenuto e viene stilato un rapporto completo che comprende ogni informazione riguardante le modalità di attacco, le vulnerabilità, i pericoli e gli effetti delle azioni compiute.
    Vengono dati consigli e suggerimenti su come limitare l’impatto di rischio e mitigare le problematiche riscontrate e, se ritenuto necessario, viene proposto un secondo test per avere conferma dei dati.

È importante ricordare che ogni test ha una validità limitata nel tempo: i risultati ottenuti, infatti, non sono gli stessi che si otterranno dopo il rilascio di un aggiornamento o altre modifiche del sistema, per questo bisogna sempre fare attenzione a ogni nuova possibile vulnerabilità.

Inoltre l’analisi avrà un esito molto diverso in base alla modalità con la quale si decide di procedere al test.
La fase preliminare è cruciale e determina la direzione che prenderà poi tutta la procedura, di conseguenza è utile capire esattamente quale approccio si adatta meglio alla situazione e può portare i risultati più efficaci.

I 3 approcci

Il primo passo per eseguire un pentest è individuare la persona che dovrà compiere l’analisi.

A volte si sceglie il personale IT interno all’azienda, ma più comunemente ci si affida a consulenti professionali esterni, gli ethical hacker: esperti di programmazione, sistemi e sicurezza informatica capaci di introdursi in una rete per aiutarne il proprietario in materia di sicurezza.
Ogni attività deve essere regolata da un preciso contratto e tutto ciò che non rientra nell’accordo è considerato illegale.

Successivamente si decide quanti e quali informazioni fornire e si concorda la modalità con la quale verrà fatto il test.

Penetration Test - 3 approcci - Black Box Testing
Ci sono 3 tipi di approcci per eseguire un Penetration Test: l’approccio Black Box Testing è il più simile a un attacco reale.

Esistono 3 diversi approcci:

  • Black Box Testing: chi simula l’attacco non ha a disposizione alcun tipo di informazione. Come un reale hacker non si conoscono i sistemi di difesa adottati o il codice sorgente e si procede alla cieca. Richiede più tempo perché si deve prima capire quali sono l’architettura e il sistema dei servizi e il risultato è strettamente connesso all’abilità di chi sta compiendo il test.
  • Grey Box Testing: chi simula l’attacco ha una conoscenza parziale della situazione. Si focalizzerà sulle aree di cui si hanno maggiori informazioni.
  • White Box Testing: chi simula l’attacco ha una conoscenza approfondita della struttura da esaminare – dagli schemi di rete ai codici sorgente delle web application – e può così testare nel dettaglio ogni dispositivo senza limitarsi a un’analisi superficiale.

Software e tool utili

Per eseguire un pentest si utilizzano software automatici e si eseguono scan in grado di identificare tutte le vulnerabilità di un sistema informatico. I dati raccolti, grazie a questi strumenti, vengono poi inseriti in un database costantemente aggiornato dalla software house che sviluppa l’applicazione usata durante l’analisi.

I tool migliori per eseguire i test sono:

  • SQL map: spesso considerato il migliore, è in grado di identificare le vulnerabilità di tipo SQL Injection e vanta un ottimo motore interno.
  • Metasploit: framework open source che rileva informazioni sulle vulnerabilità e semplifica le operazioni di testing.
  • Nessus: sotfware per la scansione di ogni tipo di vulnerabilità. Suggerisce soluzioni e fornisce report dettagliati.
  • Nmap: software open source capace di identificare il sistema operativo in uso.
  • Burp Suite: particolarmente adatto ai test sulle web application, è l’ideale per ogni fase di analisi.

A questi si aggiungono OpenVAS, W3af, OWASP ZAP, Kali Linux e molti altri.
Le soluzioni disponibili sono quindi tantissime ed è il consulente, in base al contesto, a individuare qual è la migliore per raggiungere lo scopo.
Inoltre, se tra i software e i tool presenti sul mercato nessuno si dimostra adatto a soddisfare necessità specifiche, non è raro sviluppare un codice ad-hoc per le esigenze del singolo cliente.

Frequenza consigliata

Un singolo pentest può dare utili feedback, ma non è sufficiente per garantire la sicurezza.
Le analisi dovrebbero infatti essere eseguite con regolarità per offrire una panoramica affidabile dello stato della rete o della struttura informatica in generale.

Come già spiegato, i dati rilevati perdono di validità nel momento in cui si verifica un qualsiasi cambiamento o si attua una modifica.
Per questo si consiglia di eseguire un test ogni volta che si aggiungono o modificano infrastrutture o applicazioni di rete, quando si aggiornano le politiche di sicurezza aziendale, nel caso in cui si installino nuove sedi fisiche e qualora si applichi un patch di sicurezza.

In questo modo, con costanza e prevenzione, i rischi possono drasticamente essere mitigati e – all’occasione – affrontati con maggiore consapevolezza.

Tipologie di Penetration Test

Non esiste un solo tipo di Penetration Test: i fattori che entrano in gioco durante un attacco sono molteplici e per ogni situazione è stato delineato un determinato tipo di test con caratteristiche precise.

Le differenze più importanti riguardano il target e lo scenario analizzato. Vediamoli nel dettaglio.

I target

Questa prima suddivisione tiene conto di cosa effettivamente si sta attaccando. Per ogni bersaglio specifico esiste infatti un diverso tipo di test che sa nello specifico quali aspetti prendere in esame.

Ecco i principali:

  • Network pentest: test che verifica la sicurezza di una rete esaminando sia gli host che i dispositivi. È molto importante perché è intorno alla rete che ruota la maggior parte degli aspetti legati alla sicurezza aziendale, ed è proprio la rete che subisce gli attacchi ogni giorno più frequenti e sofisticati.
    Questo tipo di test può essere esterno – e quindi passare attraverso i server o i dispositivi di rete raggiungibili tramite Internet – o interno, accedendo fisicamente o grazie a connessioni remote.
  • Web application pentest: test che verifica la sicurezza delle web application. Apparentemente semplice, ha in realtà un raggio d’azione molto vasto. Esaminando un sito web, infatti, i punti deboli che rischiano di comprometterne la sicurezza possono avere varia natura e provenire dall’interno del software, dall’errore umano da parte dell’utente o dall’uso di componenti non aggiornate o non protette.
  • Mobile app pentest: test che verifica la sicurezza delle applicazioni mobile. Dato l’oggetto in esame, è sicuramente il test di più recente sviluppo e ha degli obiettivi ben precisi. Si concentra infatti sulla sicurezza delle comunicazioni e dei dati salvati sul dispositivo, sulla bontà dell’architettura implementata e sulla sicurezza della piattaforma server.
  • API pentest: test che verifica la sicurezza delle API, ossia l’interfaccia di programmazione delle applicazioni. Verifica che i meccanismi di autenticazione e autorizzazione funzionino correttamente e accerta che il codice sanitizzi l’input.
  • IoT pentest: test che verifica la sicurezza delle infrastrutture IoT (o Internet of Things, letteralmente “Internet delle cose”). Estremamente attuale, esamina la vulnerabilità delle password scelte, dei servizi pubblici e dell’ecosistema IoT, come scarse autorizzazioni e autenticazioni. Inoltre si accerta che gli aggiornamenti avvengano in sicurezza e i dispositivi non siano esposti a pericoli fisici.

Un target però non esclude l’altro: per un’analisi completa e approfondita è utile esaminare tutti gli aspetti del sistema informatico di un’azienda e testare quindi tutti i target che ne fanno parte.

I 5 possibili scenari

Quando si simula un attacco è importante capire qual è lo scenario che si vuole prendere in considerazione.
In base alle premesse, infatti, il grado di realismo e difficoltà del test può essere più o meno alto e influenzare profondamente il procedimento.

Osservando le varianti identifichiamo 5 macrogruppi, ognuno con caratteristiche differenti.

  1. External Testing (Penetration Test esterni)
    Sono test che solitamente adottano un approccio di tipo Black Box. Si procede infatti senza alcuna conoscenza dell’infrastruttura colpita e l’obiettivo è capire se un malintenzionato può effettivamente introdursi nel sistema e quanto a fondo può arrivare.
    Si cercano punti di accesso scoperti e ci si muove sfruttando ricerche sul web e motori di ricerca.
  2. Internal Testing (Penetration Test interni) Sono test eseguiti da una persona appartenente all’azienda e servono per capire l’impatto e i rischi di un eventuale attacco interno. Si ricrea infatti un’intrusione condotta da un dipendente o da qualcuno che è illecitamente in possesso di password e dati di accesso. Si analizzano le conseguenze e si individuano eventuali falle nelle politiche di sicurezza aziendale riservate al personale.
  3. Targeted Testing
    Sono test eseguiti da consulenti esterni – generalmente ethical hacker – insieme al personale IT interno all’azienda.
    Hanno uno scopo principalmente formativo e servono per mostrare ai tecnici informatici qual è il modus operandi di un ipotetico malintenzionato e qual è la prospettiva adottata durante l’attacco.
  4. Blind Testing
    Sono test che si affidano totalmente all’approccio di tipo Black Box e vengono eseguiti avendo come informazione solo il nome dell’azienda.
    Sono molto realistici ma anche molto dispendiosi, e richiedono tempistiche particolarmente lunghe.
  5. Double Blind Testing
    Sono test analoghi ai test di tipo Blind Testing, con la differenza che – in questi casi – il reparto IT dell’azienda non è a conoscenza della simulazione. Il tester può quindi eseguire un attacco assolutamente realistico e verificare non solo il livello di sicurezza del sistema, ma anche la preparazione e la capacità di reazione del personale tecnico.

Esiste quindi un Penetration Test adatto a quasi ogni esigenza ed è importante che le aziende sappiano che, in materia di sicurezza, un’analisi di questo tipo può davvero fornire risposte concrete e una panoramica completa e affidabile.