• 中国计算机学会会刊
  • 中国科技核心期刊
  • 中文核心期刊

Computer Engineering & Science ›› 2024, Vol. 46 ›› Issue (10): 1775-1792.

• Computer Network and Znformation Security • Previous Articles     Next Articles

A survey of source code vulnerability detection research based on graph neural networks

CHEN Zi-xiong1,CHEN Xu1,JING Yong-jun1,SONG Ji-fei2   

  1. (1.School of Computer Science and Engineering,North Minzu University,Yinchuan 750021;
    2.National (Zhongwei) New-type Internet Exchange Point,Zhongwei 755000,China)
  • Received:2024-01-03 Revised:2024-03-06 Accepted:2024-10-25 Online:2024-10-25 Published:2024-10-29

Abstract: With the widespread application of open-source software across various domains, source code vulnerabilities have led to a series of serious security issues. Given the potential threats these vulnerabilities pose to computer systems, detecting source code vulnerabilities in software to prevent network attacks is a crucial research area. To achieve automated detection and reduce human labor costs, researchers have proposed numerous traditional deep learning-based methods. However, these methods mostly treat source code as natural language sequences and do not adequately consider the structural information of the code, limiting their detection effectiveness. In recent years, methods for detecting source code vulnerabilities based on code graph representation and graph neural networks have emerged. This paper provides a comprehensive review of the application of graph neural networks in source code vulnerability detection and proposes a general framework for source code vulnerability detection based on graph neural networks. Starting from three levels of vulnerability detection granularity: file-level, function-level, and slice-level, the existing methods and relevant datasets are systematically summarized and elucidated. Finally, the challenges faced by this field are discussed, and potential research directions for the future are outlined.

Key words: graph neural networks, vulnerability detection, datasets, data flow graph, control flow graph