Fuzz testning har haft stor framgång med att upptäcka säkerhetskritiska buggar i verklig programvara. Nyligen har forskare ägnat betydande ansträngningar åt att ta fram nya fuzzing tekniker, strategier och algoritmer. Sådana nya idéer utvärderas i första hand experimentellt, så en viktig fråga är: Vilken experimentell uppställning behövs för att åstadkomma tillförlitliga resultat? Vi undersökte den senaste forskningslitteraturen och utvärderade de experimentella utvärderingar som gjorts av 32 fuzzinguppsatser. Vi fann problem i varje utvärdering vi övervägde. Vi utförde sedan vår egen omfattande experimentella utvärdering med hjälp av en befintlig fuzzer. Våra resultat visade att de allmänna problem som vi fann i befintliga experimentella utvärderingar verkligen kan översättas till faktiska felaktiga eller vilseledande bedömningar. Vi avslutar med några riktlinjer som vi hoppas kommer att bidra till att förbättra experimentella utvärderingar av fuzz testning algoritmer, vilket gör rapporterade resultat mer robust. • Säkerhet och integritet → Programvara och program säkerhet; En fuzz testare (eller fuzzer) är ett verktyg som iterativt och slumpmässigt genererar ingångar som det testar ett målprogram. Trots att de verkar "naiva" jämfört med mer sofistikerade verktyg som involverar SMT-lösare, symboliskt utförande och statisk analys, är fuzzers förvånansvärt effektiva. Till exempel har den populära fuzzer AFL använts för att hitta hundratals buggar i populära program [1]. Jämföra AFL head-to-head med den symboliska executor angr, AFL hittade 76% fler buggar (68 vs 16) i samma corpus under en 24-timmars period [50]. Framgången för fuzzers har gjort dem till ett populärt ämne för forskning.
Fuzz Testing Fuzz testers REF mutera ingångar icke-deterministiskt i ett försök att utvärdera korrekthet, säkerhet och täckning av program.
Evaluating Fuzz Testing
{'venue': "CCS '18", 'journal': None, 'mag_field_of_study': ['Computer Science']}