Nell’industria del web esistono numerose procedure di Quality Assurance, consolidate negli anni e in continuo aggiornamento. Testare un codice al fine di individuarne criticità è una di queste tecniche.

Esistono tre principali tipi di Penetration test, differenziate in base

  • alla quantità di informazioni
  • ai privilegi forniti al Pen-tester

In base a questi criteri possiamo distinguere i servizi i pentest in:

black box penetration testing

Per ottenere un livello di sicurezza elevato, occorre testare il codice assumendo vari punti di vista, compreso quello dell’attaccante. In questo articolo verranno trattate le tecniche di tipo Black Box, così denominato in quanto cerca di simulare il comportamento di un attaccante che

  • non conosca il codice sorgente
  • non possieda i privilegi di un end-user.

Black box: uno speciale punto di vista

Come le altre tipologie di test (White Box, Grey Box), anche i Black Box Penetration test hanno lo scopo di evidenziare le eventuali debolezze strutturali di un software. Pertanto, la loro peculiarità consiste nell’essere utilizzati per esaminare un sistema da un punto di vista ‘esterno’, cioè quello di un possibile attaccante outsider.

Non avendo idea della struttura del codice, il Pen-tester non può adottare una strategia lineare come nei test White Box, dove per un input ci si aspetta un determinato output. Nei test Black Box il professionista fa il percorso a ritroso:

  • interagisce con l’applicativo attraverso l’interfaccia utente o comunque con la parte pubblica del servizio.
  • una volta immesso l’input, ne analizza l’output per cercare di capire come è stata implementata una funzionalità
  • sulla base di ciò, deduce se nel software in analisi siano presenti vulnerabilità sfruttabili da un hacker

In effetti un attaccante, prima di lanciare un vero e proprio attacco, deve cercare di capire come è stata implementata una certa funzionalità. L’unico modo che ha è sollecitarla e osservare in che modo risponde. Da lì, attraverso tecniche di reverse engineering ed eventualmente si intercettano delle debolezze.

Quali vantaggi

Per garantire maggiori standard di sicurezza è opportuno non limitarsi a una sola tipologia di test. Questo perché ognuno di essi ha bias o limitazioni pratiche che ne specializzano il campo di azione.

Ad esempio, i soli test Black Box non possono scandagliare la totalità del sistema, come invece può avvenire con i White Box test.

Potrebbero verificarsi casi in cui il codice sorgente non presenta anomalie di sorta, mentre testando il funzionamento dell’applicazione si  potrebbero riscontrare criticità. Oppure potrebbe verificarsi esattamente il contrario: ovvero una simulazione dinamica che non causa problemi, a fronte, però, di vistose lacune logiche o di sicurezza all’interno del codice. Insomma: i punti che un test non è riuscito a cogliere verranno analizzati dall’altro, rendendoli di fatto complementari.

Doppia valenza

Da un lato, il fatto che i test vengano eseguiti da dei Pen-tester che ignorano la struttura del sistema in esame elimina il bias che invece è presente nei test White Box, dove è difficile immedesimarsi nel punto di vista di un outsider, avendo già a disposizione cospicue informazioni. Dall’altro, operando anche dal punto di vista dell’utente, aiutano ad identificare possibili carenze ed inefficienze nella UI/UX (user interface/user experience).

Fare pulizia
Grazie a questi test è possibile venire a conoscenza di comportamenti inaspettati dell’applicativo, non solo in un’interazione criminale ma anche in una semplice esperienza utente.
Correggere o eliminare il codice responsabile di questi comportamenti anomali rende più sicuro ma anche più fruibile il servizio.

Correggere l’input validation

I test Black Box intercettano le tecniche di hacking web più diffuse, come le SQL Injection e le XSS che di solito sono imputabili a imperizie

  • nella validazione degli input
  • dei parametri URL.

Inoltre, dato che gli applicativi più complessi utilizzano pacchetti software di terzi, è possibile individuare quelli ormai vetusti o non aggiornati e quindi agire implementando patch di aggiornamento al fine di migliorarne

  • prestazioni
  • sicurezza.

Gli strumenti del Pen-tester

Dato che i Black Box test simulano un attacco esterno, c’è bisogno di coprire tutte quelle tecniche che potrebbero essere adottate da un hacker.

Si deve operare per prevenire Injections e XSS, ma si sollecitano anche ambiti quali

  • la gestione delle sessioni e dei cookie
  • autorizzazioni e accessi.

Per mettere ordine e aiutare i pen-tester ad essere efficaci, esistono numerosi strumenti (in gergo tools) dotati di diverse funzionalità e direttamente  pronti all’uso. Ne esistono di proprietari, come

  • IBM Rational Functional Tester
  • HP QTP

oppure si può decidere di optare per soluzioni open source. La scelta degli strumenti è varia, ognuna con le sue peculiarità e offerte. Tuttavia, è possibile individuare delle procedure standard nella progettazione dei test che ogni tool aiuta a portare a compimento, consentendo ai professionisti di efficientare il flusso di lavoro.

Valutazione dei campi di input

I vantaggi nell’utilizzo di questi strumenti sono molteplici. Tra tutti, il più rilevante consiste nell’automatizzare l’analisi

  • degli edge cases
  • dei corner cases.

I primi sono relativi ai singoli campi di input (Esempio: nome, e-mail…) e valutano la reazione all’immissione di input minimi e massimi in lunghezza. I secondi, corner case, valutano la reazione ai casi limite dell’intera combinazione degli input (ad esempio quando si invia un form con i dati). Una tecnica di penetrazione, chiamatafuzzing, prevede proprio un uso forzoso di input limite per indurre un comportamento non gestito e dunque potenzialmente sfruttabile dall’hacker.

Richiedi il penetration test per la tua azienda

CONTATTACI ORA