DocumentCode :
153577
Title :
Modeling and Discovering Vulnerabilities with Code Property Graphs
Author :
Yamaguchi, Fabian ; Golde, Nico ; Arp, Daniel ; Rieck, Konrad
Author_Institution :
Univ. of Gottingen, Göttingen, Germany
fYear :
2014
fDate :
18-21 May 2014
Firstpage :
590
Lastpage :
604
Abstract :
The vast majority of security breaches encountered today are a direct result of insecure code. Consequently, the protection of computer systems critically depends on the rigorous identification of vulnerabilities in software, a tedious and error-prone process requiring significant expertise. Unfortunately, a single flaw suffices to undermine the security of a system and thus the sheer amount of code to audit plays into the attacker´s cards. In this paper, we present a method to effectively mine large amounts of source code for vulnerabilities. To this end, we introduce a novel representation of source code called a code property graph that merges concepts of classic program analysis, namely abstract syntax trees, control flow graphs and program dependence graphs, into a joint data structure. This comprehensive representation enables us to elegantly model templates for common vulnerabilities with graph traversals that, for instance, can identify buffer overflows, integer overflows, format string vulnerabilities, or memory disclosures. We implement our approach using a popular graph database and demonstrate its efficacy by identifying 18 previously unknown vulnerabilities in the source code of the Linux kernel.
Keywords :
computational linguistics; graphs; source code (software); trees (mathematics); Linux kernel; abstract syntax trees; buffer overflows; classic program analysis; code property graphs; computer systems; control flow graphs; data structure; discovering vulnerabilities; error-prone process; format string vulnerabilities; graph traversals; insecure code; integer overflows; memory disclosures; modeling; popular graph database; program dependence graphs; rigorous identification; security breaches; single flaw suffices; source code; Abstracts; Databases; Joints; Kernel; Security; Syntactics; Graph Databases; Static Analysis; Vulnerabilities;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Security and Privacy (SP), 2014 IEEE Symposium on
Conference_Location :
San Jose, CA
ISSN :
1081-6011
Type :
conf
DOI :
10.1109/SP.2014.44
Filename :
6956589
Link To Document :
بازگشت