Quante iterazioni di fuzzing sono sufficienti?

9

Il fuzzing è un modo conveniente e relativamente economico per rilevare alcuni tipi di vulnerabilità, in particolare nel codice C / C ++.

La mia domanda: quanto è sufficiente la fuzzing? Esistono standard o best practice?

Esempio: SDL di Microsoft richiede l'applicazione di fuzzing al codice sensibile alla sicurezza che analizza l'input basato su file. SDL richiede almeno 500.000 iterazioni di test fuzz e almeno 250.000 iterazioni "pulite". ( Ecco una citazione. Qualsiasi iterazione di fuzz che trova un bug di sicurezza reimposta il conteggio di "clean" iterazioni di nuovo a zero.) L'SDL richiede anche che tutti i dati di rete siano confusi per almeno 100.000 iterazioni. ( Ecco una citazione. )

Qualcuno conosce altre linee guida o i criteri utilizzati da altre organizzazioni?

    
posta D.W. 07.08.2011 - 06:31
fonte

1 risposta

7

Non ho numeri per te, o linee guida specifiche, ma penso che una questione importante da sottolineare, ma non sufficientemente enfatizzata in quei link, è la copertura del codice.

Non ha molto senso eseguire un numero enorme di iterazioni di fuzz, se sono tutte simili - dal punto di vista del percorso del codice.
Cioè, "dumb fuzzing" può generare molti input diversi (file / network / RPC / qualunque), che look sufficientemente diversi, ma tutti hanno lo stesso effetto sul codice, facendo sì che il programma prenda il stessi percorsi di codice. Ovviamente, questo non è molto efficace.

Microsoft ha anche sviluppato strumenti interni (io conosco FuzzGuru) che implementano "smart fuzzing". (Vedi questo discorso di alcuni anni fa che lo discute ). Ciò consente alla MS di eseguire una fuzzing molto più efficiente, con un numero molto inferiore di iterazioni (non ufficiali, ovviamente) - semplicemente perché possono garantire percentuali molto più elevate di copertura del codice ad ogni iterazione.

In ogni caso, è importante fare la tua confusione - sia "intelligente" o "stupida" - in combinazione con gli strumenti di copertura del codice, per assicurarti di ottenere il giusto valore dai tuoi sforzi di sfocatura.

    
risposta data 10.08.2011 - 12:15
fonte

Leggi altre domande sui tag