Discover and explore top open-source AI tools and projects—updated daily.
epicosyCode vulnerability detection via graph neural networks
Top 99.4% on SourcePulse
Devign: Vulnerability Identification via Graph Neural Networks
This project addresses the challenge of effective software vulnerability identification by leveraging graph neural networks (GNNs) to learn comprehensive program semantics. It targets researchers and engineers developing tools for static code analysis and vulnerability detection, offering a novel approach that moves beyond traditional methods by analyzing code structure as graphs.
How It Works
Devign utilizes Code Property Graphs (CPGs) generated by the Joern tool to represent code. The core approach involves embedding graph nodes, currently focusing on Abstract Syntax Trees (ASTs), to capture program semantics. These embeddings are then fed into a GNN model for vulnerability classification. This graph-based representation allows the model to learn complex relationships within the code structure, aiming for more effective vulnerability detection than methods relying solely on sequential or simpler structural analysis.
Quick Start & Requirements
python main.py with flags (e.g., -c for Create, -e for Embed, -p for Process).Highlighted Details
main.py script to orchestrate the Create, Embed, and Process tasks.Maintenance & Community
The project is explicitly stated as "under development." The roadmap can be found in the open issues. Key authors include Yaqin Zhou, Shangqing Liu, Jingkai Siow, Xiaoning Du, and Yang Liu. Contact is via Eduard Pinconschi.
Licensing & Compatibility
Distributed under the MIT License, which is generally permissive for commercial use and integration into closed-source projects.
Limitations & Caveats
The project is currently under active development. The GNN model's input is limited to AST embeddings, not the full CPG semantics (including CFG and PDG). Joern's CPG generation can be slow and resource-intensive. The project is not yet available as a pip-installable package.
2 years ago
Inactive
src-d