Abstract-Memory korruption sårbarheter är en ständigt närvarande risk i programvara, som angripare kan utnyttja för att få obehörig tillgång till konfidentiell information. Eftersom produkter med tillgång till känsliga data blir allt vanligare ökar också antalet potentiellt exploaterbara system, vilket leder till ett större behov av automatiserade verktyg för granskning av programvara. DARPA finansierade nyligen en tävling, med miljontals dollar i prispengar, till ytterligare forskning med fokus på automatiserad sårbarhetssökning och lappning, vilket visar vikten av forskning på detta område. Nuvarande tekniker för att hitta potentiella fel inkluderar statiska, dynamiska och konkoliska analyssystem, som var och en har sina egna fördelar och nackdelar. En vanlig begränsning av system utformade för att skapa ingångar som utlöser sårbarheter är att de bara hittar ytliga buggar och kämpar för att träna djupare vägar i körbara. Vi presenterar Driller, en hybrid sårbarhet utgrävning verktyg som utnyttjar fuzzing och selektiv konkolisk utförande på ett kompletterande sätt, för att hitta djupare buggar. Dyr fuzzing används för att utöva delar av en applikation, medan konkolisk körning används för att generera ingångar som uppfyller de komplexa kontroller som separerar delarna. Genom att kombinera styrkan i de två teknikerna lindrar vi deras svagheter, undviker den vägexplosion som ingår i konkolisk analys och ofullständigheten i fuzzing. Driller använder selektiv konkolisk avrättning för att utforska endast de vägar som anses intressanta av fuzzer och för att generera ingångar för villkor som fuzzer inte kan tillfredsställa. Vi utvärderar Driller på 126 program som släpps i kvalet av DARPA Cyber Grand Challenge och visar dess effektivitet genom att identifiera samma antal sårbarheter, på samma gång, som topp-scoring laget för kvalificeringsevenemanget.
Driller REF är en hybrid sårbarhet utgrävning verktyg, som utnyttjar fuzzing och selektiv konkolisk utförande på ett kompletterande sätt, för att hitta buggar djupt.
Driller: Augmenting Fuzzing Through Selective Symbolic Execution
{'venue': 'NDSS', 'journal': None, 'mag_field_of_study': ['Computer Science']}