Questo lavoro di tesi riassume i risultati della nostra ricerca sull‟applicabilità degli algoritmi evolutivi nell‟ambito del fuzz testing, ovvero una tecnica di test di tipo black-box, utilizzata per la verifica della sicurezza delle applicazioni, che prevede la generazione di dati semi-malformati con cui indurre crash nel software testato. Vengono innanzitutto presentate le differenti tecniche di fuzzing esistenti, evidenziandone caratteristiche e limiti. Si procede poi con la descrizione degli aspetti teorici della tecnica ideata: proponiamo una metodologia di fuzzing evolutivo che sfrutta un algoritmo genetico parallelo di tipo island model tramite cui evolvere delle popolazioni di test case e realizzare, nell‟insieme di tutte le generazioni, una copertura del codice che sia il più elevata possibile. La generazione dei sample, su cui opera l‟algoritmo, è basata sull‟utilizzo di una grammatica libera dal contesto, tramite cui viene descritto il formato degli input di un software. Grazie a questa peculiarità, il nostro metodo consente il test di formati di file altamente strutturati. Infine, vengono presentati gli esperimenti condotti sul prototipo realizzato che hanno permesso l‟individuazione di valori ottimali dei parametri del processo evolutivo, e la realizzazione di una comparazione del metodo ideato con la tecnica di fuzz testing basato su specifica.

Chaos : un framework basato su algoritmi evolutivi per il fuzzing di input file complessi

DE FULGENTIS, LUCA
2009/2010

Abstract

Questo lavoro di tesi riassume i risultati della nostra ricerca sull‟applicabilità degli algoritmi evolutivi nell‟ambito del fuzz testing, ovvero una tecnica di test di tipo black-box, utilizzata per la verifica della sicurezza delle applicazioni, che prevede la generazione di dati semi-malformati con cui indurre crash nel software testato. Vengono innanzitutto presentate le differenti tecniche di fuzzing esistenti, evidenziandone caratteristiche e limiti. Si procede poi con la descrizione degli aspetti teorici della tecnica ideata: proponiamo una metodologia di fuzzing evolutivo che sfrutta un algoritmo genetico parallelo di tipo island model tramite cui evolvere delle popolazioni di test case e realizzare, nell‟insieme di tutte le generazioni, una copertura del codice che sia il più elevata possibile. La generazione dei sample, su cui opera l‟algoritmo, è basata sull‟utilizzo di una grammatica libera dal contesto, tramite cui viene descritto il formato degli input di un software. Grazie a questa peculiarità, il nostro metodo consente il test di formati di file altamente strutturati. Infine, vengono presentati gli esperimenti condotti sul prototipo realizzato che hanno permesso l‟individuazione di valori ottimali dei parametri del processo evolutivo, e la realizzazione di una comparazione del metodo ideato con la tecnica di fuzz testing basato su specifica.
MATTEUCCI, MATTEO
ING V - Facolta' di Ingegneria dell'Informazione
22-ott-2010
2009/2010
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2010_10_DeFulgentis.pdf

non accessibile

Descrizione: Testo della tesi
Dimensione 2.37 MB
Formato Adobe PDF
2.37 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/5481