
Questo progetto contiene il codice sorgente per il CERT Basic Fuzzing Framework (BFF) e il CERT Failure Observation Engine (FOE).
Questo progetto contiene il codice sorgente per il CERT Basic Fuzzing Framework (BFF)
BFF per Windows era precedentemente noto come CERT Failure Observation Engine (FOE).
A seconda del tuo livello di difficoltà ed esperienza preferiti, scegli tra le opzioni seguenti.
La maggior parte del codice BFF si trova nel pacchetto certfuzz src/certfuzz. Per provare il codice certfuzz in un'installazione esistente di BFF, sostituisci la directory certfuzz nella tua installazione con la directory certfuzz trovata in questo repository.
Alcune cose specifiche della piattaforma si trovano in src/windows e src/linux. BFF per OSX usa src/linux anche. Vedi src/linux/README e src/windows/README.txt per readme specifici della piattaforma, e src/linux/INSTALL se ti senti particolarmente avventuroso.
Utilizziamo effettivamente un sistema di integrazione continua con alcuni strumenti specifici della piattaforma insieme al codice nella directory build/ per costruire le release trovate nei link sopra. Tuttavia, al momento, il codice di build non dovrebbe funzionare al di fuori di quell'ambiente. Infatti, il codice nel ramo master è incentrato su svn, quindi non funzionava nemmeno quando siamo passati a git. Lo abbiamo corretto nel nostro sistema di sviluppo interno, ma non lo abbiamo ancora integrato con il codice pubblicato qui.
Inoltre, gli script di build modificano alcuni file e spostano cose qua e là per comporre i pacchetti di release e creare gli installer. I nomi dei file (ma non necessariamente le posizioni) nelle directory src/ di solito rimangono intatti, quindi dovresti essere in grado di capire dove vanno le cose se stai cercando al di fuori della directory src/certfuzz. (Come menzionato nella sezione Facile sopra, src/certfuzz dovrebbe essere un semplice sostituto.)
Se tutto ciò sembra più una sfida che un avvertimento, vai avanti.
Vedi src/experimental/README.md per alcuni vicoli ciechi che potrebbero essere marginalmente utili.
Il CERT Basic Fuzzing Framework (BFF) è uno strumento di test software che trova difetti in applicazioni eseguite su Linux, Mac OS X e Windows.
BFF esegue fuzzing mutazionale su software che consuma input di file. Raccoglie automaticamente casi di test che causano crash del software in modi unici, insieme a informazioni di debug associate ai crash. L'obiettivo di BFF è ridurre al minimo lo sforzo richiesto a fornitori di software e ricercatori di sicurezza per scoprire e analizzare efficientemente le vulnerabilità di sicurezza trovate tramite fuzzing.
Il fuzzing mutazionale è l'atto di prendere dati di input ben formati e corrotti in vari modi, cercando casi che causano crash. BFF raccoglie automaticamente casi di test che causano crash del software in modi unici, insieme a informazioni di debug associate ai crash. L'obiettivo di BFF è ridurre al minimo lo sforzo richiesto a fornitori di software e ricercatori di sicurezza per scoprire e analizzare efficientemente le vulnerabilità di sicurezza trovate tramite fuzzing.
Tradizionalmente, il fuzzing è stato molto efficace nel trovare vulnerabilità di sicurezza, ma a causa della sua natura intrinsecamente stocastica, i risultati possono dipendere fortemente dalla configurazione iniziale del sistema di fuzzing. BFF applica tecniche di machine learning e computazione evolutiva per ridurre al minimo la quantità di configurazione manuale necessaria per avviare e completare una campagna di fuzzing efficace. BFF regola i suoi parametri di configurazione in base a ciò che trova (o non trova) nel corso di una campagna di fuzzing. In questo modo può aumentare notevolmente sia l'efficacia che l'efficienza della campagna. Di conseguenza, non è richiesta conoscenza esperta per configurare una campagna di fuzzing efficace, e sia i principianti che gli esperti possono iniziare a trovare e analizzare vulnerabilità molto rapidamente.
Di seguito sono elencate alcune delle caratteristiche specifiche disponibili in BFF:
Presso il CERT/CC, abbiamo utilizzato l'infrastruttura BFF per trovare numerose vulnerabilità critiche in prodotti come Adobe Reader e Flash Player; Foxit Reader; Apple QuickTime, Preview e Mac OS X; Xpdf; Poppler; FFmpeg; JasPer; Wireshark; il codec video VMware VMnc; il codec video Indeo; e molti altri. Vedi Vulnerabilità pubbliche scoperte usando BFF.
BFF e FOE sono nati come due progetti separati ma correlati all'interno del team di Analisi delle Vulnerabilità del CERT/CC. Con il tempo, le loro architetture hanno converguto al punto che BFF 2.7 e FOE 2.1 condividevano gran parte del loro codice. A partire da BFF 2.8, questa integrazione è completa e abbiamo ritirato il nome FOE a favore di BFF.
I post del blog su BFF e FOE si trovano nella categoria Vulnerabilità CERT/CC sul SEI Blog.