La Cybersecurity è un aspetto cruciale della progettazione e dell’implementazione dei Sistemi IT. Esiste infatti un’ampia gamma di rischi che potrebbero rendere vulnerabile l’intera infrastruttura. I cracker sono alla ricerca proprio di questi punti deboli per ottenere il controllo dell’applicazione e accedere, alterare o rubare i dati. Considerando quanto le aziende dipendono dalla tecnologia, le conseguenze di un attacco informatico potrebbero essere letali per l’organizzazione. Testare la sicurezza delle applicazioni è essenziale, perché permette di identificare rischi, minacce e vulnerabilità che i cyber criminali potrebbero sfruttare per addentrarsi nel sistema.
Il Penetration Test (PT), chiamato anche Pen Test, è una tecnica di sicurezza informatica utilizzata per identificare ed esaminare le vulnerabilità del sistema e le possibili conseguenze derivabili da un’intrusione. I PT sono eseguiti da Hacker Etici che utilizzano mentalità e tecniche degli attaccanti, sfruttando quelle che vengono definite tecniche di Ethical Hacking. Gli esperti di sicurezza si servono quindi delle strategie e delle azioni solitamente messe in atto dagli aggressori per valutare l’hackability dei sistemi informatici, della rete o delle applicazioni web di un’organizzazione. Il Penetration Test sfrutta la prospettiva degli hacker per identificare i rischi e mitigarli prima che vengano sfruttati. Il termine “Penetration” si riferisce al grado in cui un ipotetico cracker, può penetrare nelle misure e nei protocolli di sicurezza informatica di un’organizzazione.
Gli hacker etici sono quindi esperti di tecnologia dell’informazione (IT) che utilizzano metodi di hacking per aiutare le aziende ad identificare possibili punti di ingresso nella loro infrastruttura. Utilizzando diverse metodologie, strumenti e approcci, le aziende possono eseguire questi attacchi informatici simulati per testare i punti di forza e di debolezza dei loro sistemi di sicurezza. Ciò aiuta i leader IT ad implementare aggiornamenti, pratiche e soluzioni alternative, di sicurezza informatica per ridurre al minimo la possibilità di successo degli attacchi. Ricorrendo ad abili hacker etici, le organizzazioni possono identificare, aggiornare/modificare e sostituire in modo rapido ed efficace le parti esposte e vulnerabili del loro sistema.
Penetration Test: che cos’è?
[ Torna all’indice ]
Questo tipo di analisi si focalizza sull’individuazione delle vulnerabilità. Innanzitutto, raccoglie informazioni dalle fonti disponibili per l’esecuzione del Penetration Test, quindi si concentra su una serie di analisi finalizzate ad individuare le vulnerabilità del software di destinazione. Il Pen Test è considerato una misura proattiva di sicurezza informatica perché comporta miglioramenti coerenti, auto-avviati, che si basano sui report generati dal test. Ciò differisce dagli approcci non proattivi, che mancano della lungimiranza per migliorare le debolezze man mano che si presentano. Un approccio non proattivo alla sicurezza informatica, ad esempio, implicherebbe che un’azienda aggiorni il proprio firewall solo dopo che si verifica una violazione dei dati. L’obiettivo delle misure proattive, come il PT invece, è quello di ridurre al minimo il numero di aggiornamenti retroattivi e massimizzare la sicurezza di un’organizzazione.
Il lavoro deve essere attentamente documentato con dei report, che tangano traccia dei mezzi utilizzati dai Pen Tester per ottenere le informazioni, dei passaggi e dei processi effettivi utilizzati per eseguire i test e, infine, dei risultati osservati. In questo modo, gli sviluppatori possono riprodurre in un secondo momento le vulnerabilità e sfruttarle, nell’ottica di studiarle e risolverle.
In definitiva, i Penetration Test richiedono che i professionisti della sicurezza pensino e agiscano come veri hacker, comportandosi in modo tale da supportare gli interessi aziendali.
Differenze tra PT e VA
[ Torna all’indice ]
I PenTest differiscono dai Vulnerability Assessment soprattutto per un elemento importante: forniscono un elenco prioritario dei punti deboli della sicurezza e suggerimenti su come modificarli. Spesso questi PT e VA vengono eseguiti insieme. Il Penetration Test viene spesso condotto con un obiettivo particolare, solitamente:
- Identificare i sistemi hackerabili
- Tentare di hackerare un sistema specifico
- Effettuare una violazione dei dati
Ciascun obiettivo si concentra su micro-obiettivi specifici che i leader IT vogliono raggiungere. I risultati di un PenTest daranno un riscontro rispetto alla validità degli attuali protocolli di sicurezza informatica di un’organizzazione, ma presenteranno anche i metodi di hacking utilizzabili per penetrare nei sistemi.
Rischi per la Sicurezza Informatica
[ Torna all’indice ]
I difetti che possono mettere a rischio un’applicazione e minacciare la sicurezza delle informazioni sono innumerevoli. Le vulnerabilità maggiormente individuate dai Pen Tester si ritrovano a livello di:
- Sistema operativo
- Codice dell’applicazione
- File di configurazione
- Esposizione dei propri sistemi e software
Le applicazioni fanno affidamento sul sistema operativo per le risorse, l’interfaccia utente, l’accesso allo storage e l’interfaccia di rete. I punti deboli del sistema operativo possono potenzialmente fornire ad un cyber criminale il controllo del comportamento dell’applicazione o un accesso allo storage. Il PT permette di analizzare la modalità con cui il sistema operativo gestisce le porte per la comunicazione, da e verso la rete. Un cracker può utilizzare la scansione delle porte per rilevare le porte aperte ed attaccare sistema e software. Per questo, si consiglia sempre di installare tutte le patch di sicurezza del sistema operativo per proteggere applicazioni e dati.
Le sviste dello sviluppo e i difetti involontari nel codice dell’applicazione possono interrompere la produttività, esporre i dati e persino bloccare il software.
Infine, i file di configurazione del software spesso descrivono in dettaglio variabili importanti, come le directory di archiviazione dati e le informazioni di comunicazione di rete. Gli aggressori solitamente cercano i file di configurazione per identificare le vie di attacco o addirittura utilizzano le loro informazioni per apportare modifiche al software, in modo da aprire la porta a un’intrusione.
Tipi di Penetration Test
[ Torna all’indice ]
Attraverso i Penetration Test le organizzazioni testano la loro infrastruttura, facendo lavorare i Pen Tester direttamente sul sistema o sul software. Queste analisi possono essere strutturate su diversi livelli di consapevolezza: la conoscenza degli hacker rispetto al sistema o al software da attaccare può variare notevolmente. Si può decidere di strutturare l’analisi da diversi punti di vista di un hacker, ad esempio senza alcuna consapevolezza dei controlli di sicurezza di un’applicazione oppure decidere di fornire informazioni sulla struttura e sulla misura di sicurezza su cui si interviene. A seconda del livello di informazioni di cui il team è in possesso nel momento dell’intervento, si distinguono tre diversi tipi di Pen Test.
Black Box Penetration Test: In uno scenario “Black Box” (Scatola nera), gli hacker non hanno a disposizione nessuna informazione sul sistema o sul software che attaccano. Non sono disponibili informazioni sull’hardware del server, sulla rete, sulla configurazione dello storage o sull’applicazione software in esecuzione sull’infrastruttura. Questo scenario identifica il bersaglio come una scatola nera, cioè un’entità sconosciuta. Solitamente vengono utilizzate tecniche di scansione automatiche per una prima analisi ed un successivo implemento di tecniche manuali specifiche.
I Penetration tester, esattamente come i cracker, in genere si affidano a un approccio per tentativi ed errori con la finalità di individuare difetti e vulnerabilità. Tra tutti i metodi di Penetration Test del software, i tentativi manuali di Black Box richiedono più tempo per essere completati.
White Box Penetration Test: In un approccio White Box, al team del PT vengono fornite tutte le informazioni e i dettagli sul sistema o sul software sottoposto a test. Le informazioni possono includere il codice sorgente del software, i diagrammi dell’architettura del server e della rete. A differenza dei cracker che attaccano nella realtà, i Penetration Tester White Box hanno una visione quasi completa del sistema, che facilita la loro ricerca di difetti e vulnerabilità.
Essere in possesso di maggiori informazioni, permette di eseguire PT manuali specifici, che accelerano il processo di testing, poiché maggiormente mirati. Tuttavia, spesso diventa difficile trovare vulnerabilità più nascoste, quando si è in possesso di tutte le informazioni.
Gray Box Penetration Test: L’approccio Gray Box Testing fornisce ad un team di penetration testing una conoscenza incompleta o parziale del sistema o del software sottoposto a test. Gli Hacker Etici impegnati in un test Gray Box potrebbero ottenere il codice sorgente o i dettagli di configurazione del sistema, ma solitamente non entrambi.
Queste informazioni parziali richiedono l’attuazione di tecniche di test miste. I penetration tester di solito concentrano i loro attacchi simulati dapprima sulle informazioni conosciute, espandendo poi sistematicamente gli attacchi per cercare vulnerabilità e difetti meno noti.
Come eseguire un Penetration Test
[ Torna all’indice ]
Il Pen Test è unico rispetto ad altri metodi di valutazione della sicurezza informatica, in quanto può essere adattato a qualsiasi settore o organizzazione, selezionando tecniche e strumenti di hacking efficaci per lo specifico caso. I PenTest raramente sono attività solitarie. Alcuni progetti software più ampi potrebbero richiedere l’intervento sinergico di diversi team, concorrenti in una fase di test. Ad esempio, un team di hacker per eseguire l’attacco e i test di penetrazione (Red Team), ed un team di sicurezza IT che identifica e risponde ai loro attacchi (Blue Team).
L’organizzazione del Pen Test in genere segue un processo in quattro fasi che include:
- Pianificazione
- Scoperta
- Attacco
- Segnalazione
Il ciclo di vita del test di penetrazione potrebbe ripetersi per ogni target, o semplicemente quando è richiesta una prospettiva diversa.
Pianificazione. La pianificazione del Pen Test definisce l’ambito, l’approccio, gli obiettivi e i limiti del progetto. Immagina come un team di sviluppo eseguirà il test su una versione del software pre-rilascio, per garantire che aderisca alle politiche di sicurezza esistenti e soddisfi anche le esigenze di conformità. A seconda delle esigenze dell’organizzazione, questo passaggio può essere una procedura semplice o elaborata. Se l’organizzazione non ha deciso quali vulnerabilità valutare, una quantità significativa di tempo e risorse dovrebbero essere dedicati a setacciare il sistema per individuare possibili punti di ingresso.
Scoperta. In questa fase, i Penetration Tester raccolgono e valutano quante più informazioni possibili sul software e sui relativi sistemi. Scansionano le porte aperte, controllano le vulnerabilità e utilizzano tecniche di social engineering per raccogliere nomi utente e password.
La fase di scoperta è particolarmente importante per i Black Box PT, dove i tester non hanno molte informazioni per iniziare la valutazione.
Attacco. Questa fase, di durata limitata, si verifica nel momento in cui un team utilizza le informazioni ricavate per convalidare e sfruttare i difetti del software. L’obiettivo è imitare le azioni di un potenziale cracker per addentrarsi nel sistema sfruttando le vulnerabilità rilevate. I Pen tester tentano così di accedere a risorse, funzionalità e dati. Sebbene i test di penetrazione non siano intenzionalmente dannosi, l’attacco potrebbe provocare conseguenze indesiderate, come l’interruzione del software e la perdita di dati.
Segnalazione. I PT forniscono feedback sull’infrastruttura, utili per i team di sviluppo software e per altre parti interessate. La segnalazione delle vulnerabilità rilevate è una conclusione fondamentale per il ciclo di Penetration Test. I report restituiscono risultati dettagliati e informazioni importanti relativamente a:
- L’entità della scoperta;
- Vulnerabilità e difetti individuati;
- Exploit convalidati/scritti/modificati;
- Raccomandazioni dettagliate per le mitigazioni.
Tools per Penetration Test
[ Torna all’indice ]
Il Penetration Test è un’attività che comprende un’ampia gamma di tecniche, in particolare tecniche di Ethical Hacking. Questa modalità di intervento si basa sull’utilizzo della mentalità e delle modalità di azione utilizzate anche dai cracker nella realtà.
Esistono numerosi strumenti e servizi di Vulnerability Assessment e Penetration Test, tra cui:
- Esempi di Strumenti per Analisi delle vulnerabilità sulle Web App
Burp Suite: strumenti PortSwigger in grado di scansionare le app Web alla ricerca di vulnerabilità e mappare contenuti e funzionalità;
Nikto: Progetto Open Source per scansioni di app Web e firewall, oltre a certificati SSL digitali e test di sicurezza mobile;
w3af: uno scanner di vulnerabilità della sicurezza open source e uno strumento di sfruttamento per le app web.
- Esempi di Scanner di rete e vulnerabilità
Nmap: software open source fra i più popolari, che rappresenta la base anche di molti strumenti a pagamento.
Wireshark: software open source di sniffing e packet analyze
Nessus: prodotto commerciale di scansione delle vulnerabilità;
- Esempi di strumenti per l’ SQL Injection
sqlmap: strumento open source che automatizza l’SQL Injection
sqlninja: strumento per sfruttare SQL injection per app che utilizzano Microsoft SQL Server.
- Esempi di tool per il Password Cracking
Hashcat: password recovery tool, o più esplicitamente un password cracker.
John the Ripper: password recovery tool, o più esplicitamente un password cracker.
- Un esempio di un motore di ricerca per la sicurezza informatica
Spyse: un motore di ricerca per la sicurezza informatica che fornisce dettagli sui componenti web.
- Un Esempio di Framework, completi di exploit database e post exploitation tool
Cobalt Strike: Un software di penetration test a pagamento.
Metasploit: un framework di penetration testing open source – Rapid7 produce anche una versione commerciale a pagamento.
Se hai dubbi o vuoi saperne di più, contattaci dalla nostra pagina di Consulenza Informatica.