Il Gray Box Testing rappresenta la perfetta sintesi tra White Box e Black Box Penetration Test.

In un’analisi di tipo Gray Box, gli analisti hanno una conoscenza parziale delle strutture sulle quali eseguire l’indagine.

Tale aspetto,

  • da una parte, aiuta a direzionare i tentativi di penetrazione
  • dall’altra, stimola l’indagine su vulnerabilità ignote.
grey box penetration test

In questo articolo approfondiamo caratteristiche, meccanismi e vantaggi del Grey Box Penetration Test.

  1. L’importanza di testare: panoramica su White, Black, Grey Box Testing
  2. Differenze tra White, Black, Grey Box Testing
  3. Focus sul Grey Box Testing
  4. Considerazioni conclusive sul Grey Box Testing

L’importanza di testare: panoramica su White, Black, Grey Box Testing

Una parte fondamentale della strategia di sicurezza degli applicativi è senza dubbio rappresentata dal Penetration test. Testare la robustezza di un’applicazione è una attività di prevenzione imprescindibile.

Essenzialmente, si tratta di simulare un attacco hacker alla ricerca di vulnerabilità sfruttabili. Nel caso si riesca a violare il sistema, il passo seguente consiste nel cercare di capitalizzare al massimo l’opportunità ottenuta, ad esempio:

  • scalando la gerarchia dei privilegi
  • accedendo a dati e informazioni sensibili.

In sostanza, i professionisti di sicurezza informatica, definiti in questo contesto ethical hacker, mettono in atto schemi d’attacco che potrebbe compiere un potenziale aggressore malintenzionato.

L’obiettivo è notificare gli effetti che sono stati prodotti dai singoli attacchi e fornire delle soluzioni per neutralizzare le vulnerabilità.

Si possono eseguire test da vari punti di vista:

  • i black box test vengono eseguiti simulando l’attacco di un agente esterno che non possiede alcuna informazione sulla struttura interna del sistema
  • i test white box, al contrario, prevedono che il tester conosca già l’infrastruttura da analizzare

Verificare che un sistema non mostri il fianco ad attacchi hacker dai risvolti potenzialmente catastrofici è una valutazione da effettuare regolarmente, di pari passo con l’aggiornamento del sistema stesso.

Stando ai paradigmi della Security-by-design, la verifica della robustezza del codice viene effettuata già in fase di sviluppo, poiché occorre anche

  • immedesimarsi negli utenti
  • sollecitare il sistema

per valutarne il comportamento di  risposta.

Ancora, quando il prodotto è reso fruibile sul mercato, è necessario monitorare costantemente l’applicativo. In tal modo, sarà possibile individuare quelle criticità nascoste che si rendono evidenti solamente quando il prodotto funziona a regime.

A livello strategico, è importante considerare il Pentest non come un costo, ma come un importante e insostituibile investimento preventivo.

Differenze tra White, Black, Grey Box Testing

Come già accennato, esistono varie tipologie di Penetration Test che si differenziano a seconda del livello di conoscenza del sistema di cui gode il pentester.

Tra tutti, riportiamo i Black Box, i White Box e, nel dettaglio, i Grey Box.

Il fine è sempre correggere le falle di sicurezza prima che vengano sfruttate dai malintenzionati.

Per arrivare a questo obiettivo è possibile operare in vari modi, talvolta combinandoli per ottenere una maggiore sicurezza.

  1. Il primo passo di un attaccante è la ricerca di segnali che identifichino una vulnerabilità. L’ approccio con il sistema vittima avviene senza avere contezza dell’infrastruttura.
  2. Sollecitando alcuni componenti ed analizzando la loro risposta, si può intuire se c’è margine per un exploit che faccia breccia nel sistema.

Questo è l’approccio usato nei test Black Box. L’idea è di simulare sia i comportamenti che il punto di vista di un ipotetico attaccante. Interagendo con il sistema si arriva a delineare una mappa (per quanto superficiale), in cui si evidenziano eventuali vulnerabilità.

Il vantaggio è rappresentato da

  • una certa rapidità di esecuzione
  • costi ridotti

Tuttavia, risulta meno accurato di altri test. Venendo, infatti, eseguito su un’infrastruttura di cui non si conoscono i dettagli, è possibile che alcuni di questi vengano trascurati.

I test White Box adottano il punto di vista opposto: chi li esegue ha piena conoscenza del sistema in esame e pieno accesso al codice.

Questo perché anche applicativi che all’apparenza funzionano correttamente potrebbero presentare fallacie logiche o ridondanze nel codice che si traducono poi in punti vulnerabili.

Questo tipo di test previene che errori strutturali possano successivamente essere sfruttati da malintenzionati per corrompere il sistema.

In questo caso, la maggiore profondità e accuratezza  con le quali lo si analizza sono un’arma a doppio taglio, in quanto i tempi di esecuzione e analisi si dilatano.

I due metodi hanno dei grandi vantaggi e sono indubbiamente necessari. Sono, però, anche radicalmente differenti, dato che affrontano il problema da punti di vista diametralmente opposti.

Una sintesi dei due metodi consiste nel testare l’applicazione avendo solamente una parziale conoscenza delle specifiche interne del programma, limitata spesso all’ambiente target del test: questa è l’idea dietro il Grey Box testing.

Focus sul Grey Box Testing

Come già accennato, i Grey Box test sono una sintesi delle due metodologie Black e White Box.

Le informazioni a disposizione del tester sono limitate ma di vario tipo. Ad esempio, possono arrivare anche ad essere legate alla performance dei dispositivi del sistema o all’uso della RAM.

É un passo in più rispetto ai Black Box test, nei quali l’attaccante deve spendere tempo anche solo per cercare di capire come è strutturato il sistema. Nei test Grey Box il tester possiede delle informazioni che possono essere sufficienti a far capire come e dove colpire in modo più mirato.

Test di tipo White Box sono calzanti, in quanto, già in fase di sviluppo, aiutano a implementare delle procedure di analisi. Si tratta però di test statici, che non tengono necessariamente conto della natura interattiva delle applicazioni.

Perciò sarebbe opportuno integrare con test dinamici di tipo Black Box, per verificare, tra le altre cose, che ad una determinata interrogazione il software risponda coerentemente.

La forma più efficiente (ed efficace) di testing per questo scopo è quella dei Grey Box test. Conoscere il funzionamento interno del sistema aiuta a produrre test specifici per il tipo di funzionalità. Inoltre le analisi così prodotte risultano anche più facilmente scalabili con il progresso, e dunque la crescita, del servizio offerto.

In questo caso i Grey Box sono il compromesso perfetto poiché

  • da una parte, permettono di verificare dinamicamente il funzionamento del prodotto durante la sua esecuzione
  • dall’altra, consentono di seguire ogni  fase di sviluppo software e, dunque, testare complessivamente tutto il codice

Questo mette in luce un altro aspetto vantaggioso di questo tipo di test. La continua comunicazione tra sviluppatori e tester consente, infatti, di avviare procedure di sviluppo, testing, rifinitura e rilascio altamente efficienti.

Ciò rimanda ai più recenti e gettonati metodi di produzione software, come CI/CD e DevOps, dove la produzione e la revisione dei prodotti si combinano in un processo fluido e continuo.

Considerazioni conclusive sul Grey Box Testing

Gli sforzi profusi nella prevenzione in ambito informatico non sono mai abbastanza. In quest’ottica, i Penetration test sul software sono essenziali per garantire che un prodotto sia sicuro.

I Grey Box test mettono a disposizione una certa quantità di informazioni grazie alle quali si possono implementare dei test più specifici rispetto a altre metodologie.

Ogni test ha il suo trade-off e il suo campo di applicazione; la peculiarità dei Grey Box è di sintetizzare aspetti vantaggiosi sia dei White che dei Black box test.

Testare la robustezza dei prodotti software seguendo varie metodologie può prevenire costi più onerosi in caso di eventi lesivi come exploit e attacchi informatici.