L’attuale industria dei software si avvale dell’utilizzo di avanzati sistemi di produzione e sviluppo dei propri prodotti. L’iter produttivo sta dunque affinando i suoi meccanismi ed è in quest’ottica che sono stati introdotti differenti tipi di penetration test. Si tratta di verifiche che hanno lo scopo di andare a stabilire la solidità e affidabilità di un codice prima che venga rilasciato in commercio.
Tali tecniche di controllo si distinguono principalmente per la quantità di informazioni a disposizione del tester e ai privilegi che gli vengono forniti dal committente del test. L’obiettivo è sempre quello di individuare ipotetiche falle e vulnerabilità prima che a farlo siano i cybercriminali.
Andando nello specifico, una delle metodologie più diffuse di software testing è il cosiddetto white box test o test della scatola bianca che presuppone di poter disporre delle specifiche del software e dei meccanismi con i quali la funzione è stata poi implementata.
La metafora della scatola trasparente significa che è possibile vederne il contenuto, ma anche capire i metodi con cui è stato inserito all’interno. Proviamo quindi a comprendere come funziona il white box testing e in cosa si differenzia dal suo opposto, cioè dal black box testing.
Il white box testing è una particolare metodologia di test del software che si basa sul controllo della progettazione e struttura interna di un software, diversamente dagli output esterni oppure dalla user experience che vengono invece testati dal black box testing.
In realtà l’espressione white box test raccoglie tutta una serie di altri test, tra i quali quelli più frequenti sono i test di integrazione e i test unitari. I white box test in genere si occupano di verificare il codice del programma e dunque la loro esecuzione necessita di una elevata conoscenza della programmazione informatica.
Come già accennato, questo tipo di test sono condotti da personale specializzato per sollecitare un sistema e scovare eventuali difetti e vulnerabilità che potrebbero essere sfruttare da hacker e malintenzionati. A svolgere i white box test sono i penetration tester, ai quali vengono date informazioni sulla struttura interna del software.
Si tratta quindi non di un attacco frontale simulato in senso stretto, ma piuttosto di un’analisi ragionata del comportamento del programma da analizzare. È possibile monitorare il funzionamento del codice, assicurandosi che gli input producano gli output previsti.
Oggi ad occuparsi del white box testing sono soprattutto ingegneri del software e sviluppatori perché è richiesta una notevole competenza in materia di codici informatici e tecniche di codifica. Come per altre categorie di test del software, anche in questo caso ci si può affidare all’automazione. Volendo si può scegliere tra test manuale e automatizzato, ma sempre più spesso le aziende preferiscono automatizzare il tutto per ridurre le tempistiche e abbattere i costi.
Esistono molti generi differenti di white box test e ogni categoria è pensata per controllare dettagli e aspetti diversi della composizione interna del codice. Ecco quali sono i principali white box test da poter condurre:
I white box test permettono agli sviluppatori di poter testare più elementi del codice e dunque sono una categoria di testing mediamente più completa in quanto possiamo conoscere molte più informazioni su come funziona il codice. Infatti, un codice efficiente e preciso è fondamentale per sviluppare un programma di qualità. Vediamo quali sono i vantaggi più importanti dell’affidarsi al white box testing.
Quando si parla di white box testing è indispensabile capire con precisione in cosa si distingue rispetto al black box testing. Quest’ultimo è una tipologia di test del software che si differenzia soprattutto per il fatto di non avere nessuna conoscenza o informazione sulla struttura interna del codice o di come implementarlo.
Il termine black box si riferisce al fatto che il tester è all’oscuro sulle nozioni di base del codice e si limiterà semplicemente a controllare le uscite esterne del programma, ovvero a verificare quello che l’utente finale andrà a sperimentare. Il black box testing non avviene con accessi privilegiati, ma simula in maniera più veritiera un attacco esterno al software.
Questi test sono conosciuti come test comportamentali in quanto analizzano il comportamento del software in precise situazioni e sono impiegati per essere certi che il sistema funzioni a dovere quando agisce nel suo complesso.
Altro elemento distintivo è che i black box test hanno bisogno di minori conoscenze tecniche in ambito di programmazione rispetto ai white box test che sono più complessi e lunghi e di conseguenza possono essere svolti anche da chi non è sviluppatore. Infine, è bene dire che i test black box sono più difficili da automatizzare di quelli white box perché necessitano di strumenti di automazione del software.