Fuzzing är en populär teknik för att hitta programvara buggar. Men prestandan hos de toppmoderna fuzzers lämnar en hel del att önska. Fuzzers baserade på symbolisk körning producerar kvalitetsingångar men kör långsamt, medan fuzzers baserade på slumpmässiga mutation körs snabbt men har svårt att producera kvalitetsingångar. Vi föreslår Angora, en ny mutationsbaserad fuzzer som överträffar toppmoderna fuzzers med stor marginal. Det främsta målet med Angora är att öka filialtäckningen genom att lösa vägbegränsningar utan symbolisk avrättning. För att lösa vägbegränsningar effektivt, introducerar vi flera nyckeltekniker: skalbar byte-nivå föroreningsspårning, sammanhangskänslig grenräkning, sökning baserad på lutning nedstigning, och inmatningslängd prospektering. På LAVA-M datauppsättning, Angora hittade nästan alla injicerade buggar, hittade fler buggar än någon annan fuzzer som vi jämfört med, och hittade åtta gånger så många buggar som den näst bästa fuzzer i programmet som. Angora hittade också 103 fel som LAVA-författare injicerade men inte kunde utlösa. Vi testade också Angora på åtta populära, mogna öppen källkodsprogram. Angora hittade 6, 52, 29, 40 och 48 nya fel i fil, jhead, nm, objdump respektive storlek. Vi mätte täckningen av Angora och utvärderade hur dess nyckeltekniker bidrar till dess imponerande prestanda.
Angora REF är en förlängning av AFL för att förbättra sin täckning som utför sökning baserat på lutning nedstigning för att lösa vägtillstånd utan symbolisk körning.
Angora: Efficient Fuzzing by Principled Search
{'venue': '2018 IEEE Symposium on Security and Privacy (SP)', 'journal': '2018 IEEE Symposium on Security and Privacy (SP)', 'mag_field_of_study': ['Computer Science']}