In questo editoriale approfondiremo le caratteristiche e le differenze degli standard più autorevoli, e ad oggi rilevanti, per la progettazione e l’esecuzione di Penetration Test:
Il Penetration Testing è un argomento serio
La crescita di un’azienda, piccola o grande che sia, passa oggi attraverso l’informatica. Le reti, il web ed i computer sono strumenti potenti in grado di supportare i processi aziendali.
Queste tecnologie devono ricevere un trattamento preferenziale, perché il beneficio che portano supera di gran lunga il loro costo. L’errore che però viene spesso commesso è credere che una volta implementate, le reti di computer, le applicazioni ed i gestionali non necessitino di manutenzione e verifica della sicurezza informatica (che negli ultimi anni chiamiamo Cyber Security).
È fondamentale che l’imprenditore ed suo team di management richieda l’esecuzione di penetration test, un tipo di verifica della qualità in grado di identificare errori di progettazione e le vulnerabilità.
Solo in questo modo si può comprendere il rischio a cui si è esposti ed avere quelle informazioni necessarie ad agire di conseguenza.
Una breccia nella sicurezza informatica di un’azienda è causa di perdite economiche dovute all’impossibilità di operare normalmente, ma anche di costi dovuti alle ore lavoro necessarie a riportare la situazione alla normalità.
Inoltre, la compromissione dei sistemi può portare alla violazione delle leggi di protezione della privacy del cliente (si veda il GDPR ad esempio) e, con l’obbligo di segnalazione dei Data Breach che queste norme introducono, rovinare la reputazione dell’azienda.
È possibile mitigare i rischi relativi alla sicurezza scoprendo le vulnerabilità della propria infrastruttura attraverso Penetration Test e Vulnerability Assessment (VA/PT).
Rivolgersi ad un team esperto di CyberSecurity in grado di svolgere Penetration Test completi ed efficaci, permetterà di conoscere i rischi che si corrono e apprendere come mitigarli.
L’importanza delle metodologie di Penetration Test
Il processo di Penetration Testing deve produrre risultati fondati, completi e strutturati. Con il diffondersi di questa pratica, si è reso necessario sviluppare delle metodologie per standardizzare il processo e renderlo affidabile e completo.
Sono quindi nati diversi standard, alcuni con l’obiettivo di dettare le linee guida per il test della sicurezza di un’azienda sotto tutti gli aspetti, altri con il focus su domini di applicazione più ristretti.
Queste metodologie sono adottate a livello mondiale da professionisti e aziende per la gestione delle loro necessità in fatto di CyberSecurity e Pentest e rappresentano lo standard de facto per le procedure di testing della sicurezza e di sviluppo sicuro.
OSSTMM (Open Source Security Testing Methodology Manual)
La metodologia OSSTMM è una metodologia “peer-reviewed” (ovvero sottoposta ad un processo di revisione paritaria) per testare la sicurezza aziendale. Questa metodologia, distribuita sotto forma di manuale, come suggerisce il nome, è mantenuta dal Institute for Security and Open Methodologies (ISECOM) ed aggiornata con cadenza semestrale, così da rimanere al passo con le nuove tecnologie disponibili sul mercato.
L’OSSTMM è riconosciuto a livello internazionale e viene utilizzato soprattutto per le attività di Network Penetration Test, nonostante l’ambito di applicazione non si limiti a questo, come vedremo in seguito.
Lo scopo di questa metodologia è quello di applicare il metodo scientifico a qualunque tipo di test di sicurezza applicabile in azienda. Questo per fornire alle aziende che impiegano la metodologia OSSTMM la sicurezza di aver intrapreso un processo concreto.
Come anticipato, l’OSSTMM non copre solo ethical hacking e penetration testing, di fatto detta le linee guida per tre classi di verifica della sicurezza:
-
Physical Security (PHYSSEC)
-
Spectrum Security (SPECSEC)
-
Communications Security (COMSEC)
Queste classi sono suddivise a loro volta in canali, che dettano regole più capillari per il testing.
Fanno parte della classe PHYSSEC:
-
Human Security
Ovvero il testing della sicurezza umana. Lo scopo di questo tipo di testing è quello di valutare la sicurezza delle interazioni tra persone e tra persone e tecnologia. -
Physical Security
È il testing della parte tangibile dell’azienda. Questo tipo di test di sicurezza si occupa di valutare la sicurezza degli elementi fisici di sicurezza come porte ed altre vie d’ingresso.
La SPECSEC prevede solamente un canale:
-
Wireless Security
Testing di sicurezza relativo alle comunicazioni per via di mezzi senza fili. Più generalmente, questo tipo di test valuta la sicurezza di tutti i tipi di segnale sullo spettro elettromagnetico considerati comunicazione, ad esempio i segnali radio.
I canali parte della COMSEC sono:
-
Telecommunications Security
Testing atto a valutare la sicurezza delle comunicazioni analogiche e digitali che passano per via telefonica o rete cablata. -
Data Network Security
È il testing della sicurezza delle reti. Si tratta della valutazione della sicurezza dei sistemi elettronici che si occupano di distribuire o smistare dati. Questo testing include componenti con il cavo e wireless.
OWASP (Open Web Application Security Project)
Il progetto OWASP offre standard e strumenti gratuiti ed open source per il testing della sicurezza e lo sviluppo sicuro di applicativi web.
L’obiettivo di questo progetto è quello di sensibilizzare alla sicurezza sul web e di permettere alle aziende e a chiunque offra un servizio sul web di fare scelte ponderate per quanto riguarda la sicurezza.
Come anticipato, OWASP offre diversi software e strumenti gratuiti. Particolarmente importanti sono il framework per lo sviluppo sicuro di applicativi web e una metodologia per il penetration testing di applicativi web basati su HTTP (ovvero siti e applicazioni web).
Lo standard OWASP prevede i seguenti passi per il testing degli applicativi web:
-
Information gathering
Ovvero il processo di raccolta di informazioni dell’applicazione interessata. -
Configuration management testing
Raccolta di dati tecnici sul funzionamento dell’applicazione, come versione dei protocolli impiegati, metodi di autenticazione ed affini. -
Authentication testing
Testing dei processi di autenticazione degli utenti. Questo step comprende l’auditing della sicurezza delle password e l’enumerazione degli utenti. -
Session management testing
Valutazione delle modalità con cui il sito interagisce con l’utente. -
Authorization testing
Fase in atta a valutare il modo in cui un utente può interagire con il servizio e quali azioni può compiere. -
Business logic testing
Test per valutare se le logiche implementate nell’applicativo funzionano come atteso o contengono vulnerabilità. -
Data validation testing
Valutazione dei metodi di validazione dei dati inseriti dall’utente.
Questo test è particolarmente rilevante perché incentrato a scoprire alcune tra le più comuni vulnerabilità come le SQL injection e il Cross Site Scripting (XSS). -
Denial of service attacks testing
Test per la valutazione del comportamento del sito sotto attacchi di tipo DoS non solo basati su l'eccessiva quantità di traffico inviata al server. -
Web services testing
Testing di vulnerabilità sugli standard adottati dalla piattaforma web. -
AJAX testing
Test di vulnerabilità nei metodi di impiego di AJAX per le richieste asincrone.
Come si può notare lo standard OWASP è estremamente dettagliato e ricco di linee guida per il Penetration Testing di applicativi web.
Questo genere di testing può essere utile ad aziende con una forte presenza sul web al fine di verificare la sicurezza dei loro portali e-commerce, applicazioni e gestionali accessibili da web, aree riservate.
NIST
La metodologia NIST offre linee guida specifiche per il penetration testing e si occupa di mantenere in sicurezza infrastrutture critiche.
I target tipo per il Pentest secondo la metodologia NIST sono solitamente nel settore del banking, in quello energetico o nelle comunicazioni.
Per capire cos'è lo standard NIST, è possibile vedere in figura gli step fondamentali del framework di CyberSecurity NIST:
PTES
Il PTES è una metodologia di penetration testing leggermente differente da quelle descritte fino ad ora.
Di fatto, secondo questo standard, il test dovrebbe cominciare con una fase di comunicazione tra penetration tester e azienda in cui vengono comunicati i dettagli dell’infrastruttura.
Questo permetterà al penetration tester di concentrarsi sulle fasi di exploitation e post exploitation, utili all’azienda per capire quali sono i rischi concreti in caso di un attacco informatico.
Sebbene i tester siano influenzati dalla conoscenza dell’infrastruttura, i risultati ottenuti possono essere simili a quelli di un attacco da parte di un dipendente e quindi non inverosimili.
Un aperto dialogo sulle tecnologie da impiegare inoltre permette di definire precisamente il perimetro su cui i penetration tester devono concentrarsi, limitando eventualmente l’esposizione di dati sensibili.
ISSAF (Information Systems Security Assessment Framework)
Il testing secondo il framework ISSAF si concentra su sistemi, reti ed applicazioni.
In maniera simile a OSSTMM, si propone come standard per il testing di diversi aspetti dell’azienda, con la differenza che ISSAF si concentra solo sugli aspetti informatici della sicurezza.
Gli step del testing ISSAF sono simili a quelli già incontrati in precedenza. È possibile osservare uno schema del testing nell’immagine qui di seguito.
RSA
Il framework RSA è differente rispetto alle metodologie analizzate in precedenza.
Sebbene lo scopo sia simile, ovvero quello di valutare la sicurezza di un’infrastruttura, il framework RSA non detta linee guida su come effettuare il penetration test, piuttosto, data una valutazione della sicurezza dell’azienda stima un modello di maturità della sicurezza in atto.
Il risultato di un test con il framework RSA risulterà in una valutazione della sicurezza, che può evidenziare rischi con uno di questi cinque livelli di gravità:
-
Critical
-
High
-
Medium
-
Low
-
Informational
La metodologia RSA è dunque da intendersi utile ove si voglia valutare la sicurezza nel suo insieme e capire come migliorarla a livello macroscopico.
Conclusioni
Il Penetration Testing è un potente strumento in grado di fornire ad un’azienda indicazioni su come migliorare la propria sicurezza e quella dei propri clienti. L’identificazione del rischio sulla base di evidenze oggettive, con risultati dettagliati e strutturati in un report ufficiale di una parte terza, sono essenziali per rafforzare la sicurezza ed evitare danni economici potenzialmente esorbitanti.
È importante scegliere accuratamente le metodologie di penetration testing più adatte alle proprie esigenze, magari facendosi consigliare, e rivolgersi ad un partner serio.
Riferimenti e citazioni:
(1) Comparative Study of Penetration Test Methods
Yong-Suk Kang , Hee-Hoon Cho , Yongtae Shin and Jong-Bae Kim
https://pdfs.semanticscholar.org/be2d/4acf60ff2a37f196aaef48649eaa89ca36ac.pdf
(2) Study: A Penetration Testing Model
(3) Selection of penetration testing methodologies: A comparison and evaluation
Aleatha Shanley, Michael N. Johnstone
Classi di testing dell'OSSTMM | |||
---|---|---|---|
Categoria | Canale | Oggetto del test | Elementi di verifica |
PHYSSEC | Human Security | Le persone | Rispetto delle policy, Social Engineering, Phishing |
PHYSSEC | Physical Security | I luoghi e le cose | Accesso non autorizzato ai locali, keylogger, spie ed intercettazioni ambientali |
SPECSEC | Wireless Security | Le comunicazioni via radio | Reti aperte, reti non autorizzate, password deboli, errori di architettura e configurazione |
COMSEC | Telecommunications Security | Le comunicazioni digitali | Architetture di rete, Sicurezza degli switch, Regole di Firewall, Crittografia, Autenticazione |
COMSEC | Data Network Security | I sistemi e le applicazioni | Configurazione, Aggiornamento, Vulnerabilità del codice |