Programvara sårbarheter utgör fortfarande en hög säkerhetsrisk och det finns en pågående kapplöpning för att lappa kända buggar. Men, särskilt i programvara med stängd källkod, det finns inget enkelt sätt (i motsats till källkodsanalys) att hitta felkodsdelar, även om felet avslöjades offentligt. För att ta itu med detta problem föreslår vi en metod som heter Tree Edit Distance based Equaration Matching (TEDEM) för att automatiskt identifiera binära kodregioner som är "liknande" till kodregioner som innehåller ett referensfel. Vi strävar efter att hitta fel både i samma binär som referensfelet och i helt orelaterade binärer (även kompilerade för olika operativsystem). Vår metod fungerar även på egenutvecklade mjukvarusystem, som saknar källkod och symboler. Analysuppgiften är uppdelad i två faser. I en förbehandlingsfas kondenserar vi semantiken hos en given binär körbar genom symbolisk förenkling för att göra vår strategi robust mot syntaktiska förändringar över olika binärer. För det andra använder vi träd redigera avstånd som en grundläggande blockcentrisk metriska för kod likhet. Detta gör att vi kan hitta exempel på samma fel i olika binärer och även hitta dess varianter (ett koncept som kallas sårbarhet extrapolering). För att visa den föreslagna metodens praktiska genomförbarhet har vi implementerat en prototyp av TEDM som kan hitta verkliga säkerhetsfel över binärer och till och med över OS-gränser, t.ex. i MS Word och de populära budbärarna Pidgin (Linux) och Adium (Mac OS).
TEDEM REF identifierar automatiskt binära kodregioner som liknar kodregioner som innehåller ett känt fel.
Leveraging semantic signatures for bug search in binary programs
{'venue': "ACSAC '14", 'journal': None, 'mag_field_of_study': ['Computer Science']}