Questo tipo di test mira a identificare eventuali vulnerabilità e a fornire soluzioni per migliorare la sicurezza
Il penetration test (PT) è una forma di valutazione della sicurezza informatica che simula un attacco al sistema o alla rete di un’azienda. Questo tipo di test mira a identificare eventuali vulnerabilità e a fornire soluzioni per migliorare la sicurezza. Attraverso l’uso di tecniche avanzate e metodologie specifiche, i penetration tester lavorano per replicare gli scenari che potrebbero essere sfruttati da un attaccante malintenzionato. Esploriamo in dettaglio i penetration test, il loro scopo e l’importanza di questa pratica nella protezione dei dati e della sicurezza informatica.
I penetration test possono essere eseguiti su diversi obiettivi, quali reti, sistemi singoli, applicazioni web, database, dispositivi IoT e OT. Essi rappresentano una parte importante nella gestione della sicurezza informatica, poiché forniscono una valutazione obiettiva e affidabile. I risultati di un test di penetrazione possono aiutare a individuare e correggere eventuali debolezze, prima che diventino un problema reale.
In più, i penetration test, possono verificare la risposta dei sistemi di difesa in caso di attacchi. Un aspetto importante, perché gli attacchi informatici sono sempre più comuni e sofisticati.
Il Regolamento Generale sulla Protezione dei Dati (General Data Protection Regulation, GDPR) stabilisce standard rigorosi per la protezione dei dati personali dei cittadini dell’Unione Europea e richiede alle aziende di adottare misure adeguate per garantire la sicurezza.
Il PT è uno strumento valido anche dal punto di vista della compliance normativa. Le aziende che eseguono regolarmente i test di penetrazione sono in grado di dimostrare il loro impegno per la protezione dei dati e possono avere maggiori probabilità di evitare sanzioni in caso di violazioni.
Come è articolato un penetration test
La durata e la difficoltà del test possono variare in base alla dimensione e alla complessità del sistema o della rete che si desidera verificare.
Le fasi in cui si articola sono:
- Pianificazione: vengono definiti gli obiettivi, il perimetro e le restrizioni del test, nonché le informazioni generali sul sistema o la rete che saranno testati.
- Scoperta: si effettua la raccolta di informazioni sul sistema target, come l’identificazione dei dispositivi e delle applicazioni, elenchi di nominativi ed indirizzi e-mail ed ogni informazione possa essere utile per le successive fasi. Possono essere utilizzate fonti Open Source (Open Source Intelligence), strumenti di scansione e altre informazioni rilevate nel corso della stessa attività di scanning iniziale.
- Individuazione delle vulnerabilità: si procede, anche con metodi automatici e semiautomatici, alla ricerca di eventuali vulnerabilità ed alla loro analisi, per discernere opportunità di accesso.
- Sfruttamento: In questa fase viene eseguito il tentativo di sfruttare le vulnerabilità identificate, per accedere al sistema o alla rete.
- Post sfruttamento: se si è riusciti ad entrare nel sistema, si svolge l’analisi degli asset compromessi, si raccolgono le prove, si valuta la possibilità di effettuare movimenti laterali verso altri hosts o reti e, ove richiesto, si stabilisce un metodo per mantenere permanentemente l’accesso, per future attività.
- Analisi dei risultati: vengono valutati i risultati delle attività di sfruttamento e viene determinata l’estensione della compromissione.
- Reporting: si prepara un rapporto che descrive obiettivi e risultati del PT, incluse le vulnerabilità identificate e le soluzioni proposte per correggerle. Tipicamente il report è diviso in due parti: Executive Summary e Technical Summary. Il primo è sintetico e di facile lettura ed è utile per rappresentare i risultati al management aziendale.
- Correzione: Questa fase non è in carico ai tester. Gli addetti ai lavori implementano le soluzioni proposte, per correggere le vulnerabilità identificate nel rapporto.
Tipicamente un PT non causa alcun danno o interruzione ai sistemi ed ai suoi utenti e, il tester, si attiene scrupolosamente alle indicazioni concordate con il committente ad inizio lavori.
Quanti tipi di Penetration Test esistono?
In base alla quantità di informazioni disponibili sul target, il nome attribuito al test può essere:
- Black Box: in questo tipo di test, il tester non ha alcuna conoscenza del sistema o della rete che sta testando. L’obiettivo è quello di identificare le vulnerabilità utilizzando solo informazioni pubblicamente disponibili ed il range di indirizzi IP o domini comunicati dal committente.
- White Box: il tester ha accesso a informazioni dettagliate sul sistema o sulla rete, come la documentazione tecnica e l’accesso ai codici sorgente. Questo tipo di test è più dettagliato e approfondito rispetto a quello black box.
- Gray Box: rappresenta una via di mezzo tra il black box e il white box. Il tester dispone di alcune informazioni sul sistema o sulla rete, ma non ha accesso completo.
Inoltre, in riferimento al punto da cui viene eseguito il test, si parla di PT:
- Interno: effettuato dalla Local Area Network, viene simulato un attacco da parte di un utente interno o di un dipendente. L’obiettivo è quello di identificare le vulnerabilità che possono essere sfruttate da un collaboratore malintenzionato (insider threat).
- Esterno: simula un attacco da parte di un utente esterno alla rete. L’obiettivo è quello di identificare le vulnerabilità che possono essere sfruttate da un hacker che agisca da remoto.
Il Blind Penetration Test viene eseguito senza che il team di sicurezza o l’amministratore di sistema sappiano che il test sta avvenendo. Simula un attacco vero e proprio e consente di valutare la sicurezza del sistema in condizioni reali.
Il blind penetration test viene eseguito senza alcuna conoscenza preventiva del sistema o della rete che viene testata. Il tester si basa solo su informazioni pubblicamente disponibili.
A differenza del Blind Penetration Test, il Double-Blind Penetration Test viene eseguito senza che nessuno all’interno dell’organizzazione sappia che il test sta avvenendo, inclusi il gruppo di sicurezza e l’amministratore di sistema.
L’obiettivo del Web Application Penetration Test è quello di identificare eventuali debolezze nella sicurezza delle applicazioni web, come vulnerabilità nel codice, problemi di configurazione, falle di sicurezza nella gestione dei dati e altri problemi che potrebbero essere sfruttati da un attaccante per accedere ai dati sensibili o compromettere il sistema.
Questo tipo di test viene eseguito utilizzando strumenti automatizzati e metodi manuali. Il tester può utilizzare tecniche come SQL Injection, cross-site scripting (XSS) e cross-site request forgery (CSRF).
È chiaro che ogni tipologia di test presenta i propri pro e contro, la selezione dipende dagli obiettivi specifici di sicurezza dell’organizzazione e dal contesto del test. In generale, il black-box è considerato il più rappresentativo e utile per simulare gli attacchi provenienti dal mondo esterno.
Standards e metodologie di riferimento
Esistono vari standard e metodologie che garantiscono che il test di penetrazione sia autentico e copra ogni aspetto importante. La scelta del metodo più adatto dipende dalle esigenze specifiche di ogni organizzazione:
- OSSTMM (Open Source Security Testing Methodology Manual): una metodologia aperta che descrive un processo completo per la valutazione della sicurezza dei sistemi informatici.
- NIST SP 800-115: una guida, pubblicata dal National Institute of Standards and Technology (NIST), che fornisce indicazioni per la valutazione della sicurezza dei sistemi informatici e della tecnologia dell’informazione.
- PTES (Penetration Testing Execution Standard): una metodologia che descrive un processo dettagliato per la pianificazione, esecuzione e presentazione dei risultati dei test di penetrazione.
- ISSAF (Information Systems Security Assessment Framework): una metodologia, sviluppata dal SANS Institute, che descrive un processo per la valutazione della sicurezza dei sistemi informatici.
- OWASP (Open Web Application Security Project): un’iniziativa internazionale open source no-profit che fornisce linee guida e metodologie per la sicurezza delle applicazioni web.
Possiamo evitare di condurre dei Penetration Test?
Le organizzazioni che trattano informazioni personali di cittadini Europei devono ottemperare ai dettami del GDPR (Regolamento generale sulla protezione dei dati personali EU 679/2016).
L’articolo 24 definisce le responsabilità del titolare del trattamento e impone la necessità di implementare misure tecniche e organizzative adeguate a garantire che il trattamento dei dati personali sia effettuato in conformità con i principi del GDPR. Inoltre, richiede esplicitamente che il titolare del trattamento sia in grado di dimostrarlo.
I test di vulnerabilità sono elencati anche tra le misure di sicurezza elencate dall’articolo 32.
L’articolo 74 recita che il titolare del trattamento, nel mettere in atto le misure adeguate alla propria specifica situazione, è tenuto a dimostrare la loro efficacia.
Per queste ragioni, è appropriato e fortemente consigliato sottoporre le infrastrutture IT a verifiche periodiche.
I Penetration Tests costituiscono un investimento importante per la valutazione e il miglioramento della sicurezza dei sistemi informatici. Per riportare risultati attendibili, è importante che vengano condotti da professionisti esperti. Dovrebbero essere considerati una parte integrante delle misure di sicurezza delle organizzazioni.
Autore: Marco Marra