Abstract-De allra flesta säkerhetsöverträdelser idag är ett direkt resultat av osäker kod. Därför är skyddet av datorsystem avgörande beroende av en strikt identifiering av sårbarheter i programvara, en tråkig och felbenägen process som kräver betydande sakkunskap. Tyvärr räcker en enda brist för att undergräva säkerheten i ett system och därmed den rena mängden kod för att granska spelar in angriparens kort. I detta dokument presenterar vi en metod för att effektivt minera stora mängder källkod för sårbarheter. I detta syfte introducerar vi en ny representation av källkod som kallas en kod egenskapsgraf som slår samman koncept för klassisk programanalys, nämligen abstrakta syntaxträd, kontrollflödesgrafer och programberoende grafer, till en gemensam datastruktur. Denna omfattande representation gör det möjligt för oss att elegant modellera mallar för gemensamma sårbarheter med graf traversals som, till exempel, kan identifiera buffertspill, heltalsspill, formatsträng sårbarheter, eller minnesutlämningar. Vi implementerar vår strategi med hjälp av en populär grafdatabas och visar dess effektivitet genom att identifiera 18 tidigare okända sårbarheter i källkoden för Linuxkärnan.
En kort tid senare, Yamaguchi et al. REF lade fram konceptet Code Property Graphs (CPGs) som är en gemensam representation av ett programs syntax, kontrollflöde och dataflöde.
Modeling and Discovering Vulnerabilities with Code Property Graphs
{'venue': '2014 IEEE Symposium on Security and Privacy', 'journal': '2014 IEEE Symposium on Security and Privacy', 'mag_field_of_study': ['Computer Science']}