Upptäckten av sårbarheter i källkoden är en nyckel för att säkra datorsystem. Även om specifika typer av säkerhetsbrister kan identifieras automatiskt, i det allmänna fallet processen för att hitta sårbarheter inte kan automatiseras och sårbarheter främst upptäcks genom manuell analys. I detta dokument föreslår vi en metod för att bistå en säkerhetsanalytiker vid revisionen av källkoden. Vår metod fortskrider genom att extrahera abstrakta syntaxträd ur koden och bestämma strukturmönster i dessa träd, så att varje funktion i koden kan beskrivas som en blandning av dessa mönster. Denna representation gör det möjligt för oss att bryta ner en känd sårbarhet och extrapolera den till en kodbas, så att funktioner som potentiellt lider av samma fel kan föreslås till analytikern. Vi utvärderar vår metod på källkoden för fyra populära open-source-projekt: LibTIFF, FFmpeg, Pidgin och Asterisk. För tre av dessa projekt kan vi identifiera noll-dagars sårbarheter genom att endast inspektera en liten del av kodbaserna.
Yamaguchi m.fl. REF utvidgade denna idé genom att fastställa strukturella mönster i abstrakta syntaxträd, så att varje funktion i koden kan beskrivas som en blandning av dessa mönster.
Generalized vulnerability extrapolation using abstract syntax trees
{'venue': "ACSAC '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}