计算机科学
源代码
机器学习
人工智能
软件质量
图形
静态程序分析
概率逻辑
抽象语法树
控制流程图
Java
控制流程
程序理解
软件
编码(集合论)
理论计算机科学
程序设计语言
软件系统
语法
软件开发
集合(抽象数据类型)
作者
Huanting Wang,Guixin Ye,Zhanyong Tang,Shin Hwei Tan,Songfang Huang,Dingyi Fang,Yansong Feng,Lizhong Bian,Zheng Wang
标识
DOI:10.1109/tifs.2020.3044773
摘要
This paper presents FUNDED (Flow-sensitive vUl-Nerability coDE Detection), a novel learning framework for building vulnerability detection models. Funded leverages the advances in graph neural networks (GNNs) to develop a novel graph-based learning method to capture and reason about the program's control, data, and call dependencies. Unlike prior work that treats the program as a sequential sequence or an untyped graph, Funded learns and operates on a graph representation of the program source code, in which individual statements are connected to other statements through relational edges. By capturing the program syntax, semantics and flows, Funded finds better code representation for the downstream software vulnerability detection task. To provide sufficient training data to build an effective deep learning model, we combine probabilistic learning and statistical assessments to automatically gather high-quality training samples from open-source projects. This provides many real-life vulnerable code training samples to complement the limited vulnerable code samples available in standard vulnerability databases. We apply Funded to identify software vulnerabilities at the function level from program source code. We evaluate Funded on large real-world datasets with programs written in C, Java, Swift and Php, and compare it against six state-of-the-art code vulnerability detection models. Experimental results show that Funded significantly outperforms alternative approaches across evaluation settings.
科研通智能强力驱动
Strongly Powered by AbleSci AI