Modeling and Discovering Vulnerabilities with Code Property Graphs
By Fabian Yamaguchi, Nico Golde, Daniel Arp, Konrad Rieck. IEEE Symposium on Security and Privacy, 2014
917 citations recorded by the source corpus.
Subfields: Information Systems, Software, Signal Processing
View Paper: https://www.semanticscholar.org/paper/07c4549be429a52274bc0ec083bf5598a3e5c365
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Information Systems
- Shaohua Wang
- Yi Li
- Tien Nhut Nguyen
- Christopher Krügel
- Giovanni Vigna
- Xinyun Chen
- Baishakhi Ray
- Saikat Chakraborty
In Software
In Signal Processing
- Christopher Krügel
- Engin Kirda
- Giovanni Vigna
- Heng Yin
- Tien Nhut Nguyen
- Shaohua Wang
- Yi Li
- William K. Robertson
Citations in the corpus
- Software Vulnerability Analysis and Discovery Using Machine-Learning and Data-Mining Techniques (2017, background): “A few works such as Yamaguchi et al. (2014, 2015) utilize the graphical representation, incorporating syntactic, control-flow, and data-flow information about the program under analysis.”
- CoCoMIC: Code Completion by Jointly Modeling In-file and Cross-file Context (2022, neutral): “, 1987) and code property graph (Yamaguchi et al., 2014), which are built to estimate and analyze the program execution behaviors statically.”
- LAVA: Large-Scale Automated Vulnerability Addition (2016, background): “Automated bug discovery systems can work on source code [1], [8], [9], [24] or on binaries [3], [21]; we can easily test binary analysis tools by simply compiling the modified source.”
- Retrieval-Augmented Generation for AI-Generated Content: A Survey (2024, neutral): “It filters out lower-quality data to maintain a high standard of information mapping, offering a variety of retrieval system options like TF-IDF, DPR, RAG, and BLINK + flair to support evidence-based predictions or citations according to task requirements.”
- Combining Graph Neural Networks With Expert Knowledge for Smart Contract Vulnerability Detection (2021, background): “(ii) Code property graph [62], [63] models statements as nodes, and represents the control flow between statements as edges.”
- SySeVR: A Framework for Using Deep Learning to Detect Software Vulnerabilities (2018, methodology): “2) Transforming SyVCs to SeVCs: When using Algorithm 2 to transform SyVCs to SeVCs, we use Joern [36] to extract PDGs.”
- Devign: Effective Vulnerability Identification by Learning Comprehensive Program Semantics via Graph Neural Networks (2019, methodology): “…properties and design errors that are hard to model without details on the intended design of a program) Though the vulnerability templates in [17] are manually crafted in the form of graph traversals, it conveyed the key insight and proved the feasibility to learn a broader range of…”
- Software Vulnerability Detection Using Deep Neural Networks: A Survey (2020, methodology): “Particularly, an approach provided by Yamaguchi et al. [119] combined AST, CFG, and PDG into a joint representation called the code property graph (CPG) to provide a more comprehensive graph structure to depict the properties of code.”
- A C/C++ Code Vulnerability Dataset with Code Changes and CVE Summaries (2020, background): “Recently, the detection of security vulnerabilities has been a crucial topic of interest to the research community [3, 4, 7, 10, 11].”
- SOK: (State of) The Art of War: Offensive Techniques in Binary Analysis (2016, methodology): “Initially applied to source code [60], [61], related techniques have since been extended to binaries [45].”
- Deep Learning Based Vulnerability Detection: Are We There Yet? (2020, methodology): “The final step in preprocessing is to aggregate all the vertex embedding x v to create a single vector representing the whole CPG denoted by x g , i.e. : Note that R E V EAL uses a simple element-wise summation as the aggregation function, but in practice it is a configurable parameter in the pipeline”
- DiverseVul: A New Vulnerable Source Code Dataset for Deep Learning Based Vulnerability Detection (2023, methodology): “ReVeal [4] used features obtained from code property graph [29]; and VulChecker [17] proposed a new enriched program dependence graph.”
- <inline-formula><tex-math notation="LaTeX">$\mu$</tex-math><alternatives><mml:math><mml:mi>μ</mml:mi></mml:math><inline-graphic xlink:href="zou-ieq1-2942930.gif"/></alternatives></inline-formula>VulDeePecker: A Deep Learning-Based System for Multiclass Vulnerability Detection (2019, positive): “Rather than relying on human experts for defining vulnerability rules, this approach is intended to define features and use machine learning techniques to automatically learn vulnerability patterns [9], [11], [12], [47], [48], [49], [50].”
- discovRE: Efficient Cross-Architecture Identification of Bugs in Binary Code (2016, background): “, the abstract syntax tree or the program dependence graph [62].”
- Semantics-Aware Android Malware Classification Using Weighted Contextual API Dependency Graphs (2014, background): “[31] introduced a novel representation of source code, called a “code property graph”, that merges concepts of classic program analysis (abstract syntax trees, control flow graphs, and program dependence graphs) into a joint data structure.”