Saved in:
Bibliographic Details
Main Authors: Zhang, Tiehua, Xu, Rui, Zhang, Jianping, Liu, Yuze, Chen, Xin, Yin, Jun, Zheng, Xi
Format: Preprint
Published: 2023
Subjects:
Online Access:https://arxiv.org/abs/2306.01376
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911906736898048
author Zhang, Tiehua
Xu, Rui
Zhang, Jianping
Liu, Yuze
Chen, Xin
Yin, Jun
Zheng, Xi
author_facet Zhang, Tiehua
Xu, Rui
Zhang, Jianping
Liu, Yuze
Chen, Xin
Yin, Jun
Zheng, Xi
contents Vulnerability detection is a critical problem in software security and attracts growing attention both from academia and industry. Traditionally, software security is safeguarded by designated rule-based detectors that heavily rely on empirical expertise, requiring tremendous effort from software experts to generate rule repositories for large code corpus. Recent advances in deep learning, especially Graph Neural Networks (GNN), have uncovered the feasibility of automatic detection of a wide range of software vulnerabilities. However, prior learning-based works only break programs down into a sequence of word tokens for extracting contextual features of codes, or apply GNN largely on homogeneous graph representation (e.g., AST) without discerning complex types of underlying program entities (e.g., methods, variables). In this work, we are one of the first to explore heterogeneous graph representation in the form of Code Property Graph and adapt a well-known heterogeneous graph network with a dual-supervisor structure for the corresponding graph learning task. Using the prototype built, we have conducted extensive experiments on both synthetic datasets and real-world projects. Compared with the state-of-the-art baselines, the results demonstrate promising effectiveness in this research direction in terms of vulnerability detection performance (average F1 improvements over 10\% in real-world projects) and transferability from C/C++ to other programming languages (average F1 improvements over 11%).
format Preprint
id arxiv_https___arxiv_org_abs_2306_01376
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle DSHGT: Dual-Supervisors Heterogeneous Graph Transformer -- A pioneer study of using heterogeneous graph learning for detecting software vulnerabilities
Zhang, Tiehua
Xu, Rui
Zhang, Jianping
Liu, Yuze
Chen, Xin
Yin, Jun
Zheng, Xi
Software Engineering
Machine Learning
Vulnerability detection is a critical problem in software security and attracts growing attention both from academia and industry. Traditionally, software security is safeguarded by designated rule-based detectors that heavily rely on empirical expertise, requiring tremendous effort from software experts to generate rule repositories for large code corpus. Recent advances in deep learning, especially Graph Neural Networks (GNN), have uncovered the feasibility of automatic detection of a wide range of software vulnerabilities. However, prior learning-based works only break programs down into a sequence of word tokens for extracting contextual features of codes, or apply GNN largely on homogeneous graph representation (e.g., AST) without discerning complex types of underlying program entities (e.g., methods, variables). In this work, we are one of the first to explore heterogeneous graph representation in the form of Code Property Graph and adapt a well-known heterogeneous graph network with a dual-supervisor structure for the corresponding graph learning task. Using the prototype built, we have conducted extensive experiments on both synthetic datasets and real-world projects. Compared with the state-of-the-art baselines, the results demonstrate promising effectiveness in this research direction in terms of vulnerability detection performance (average F1 improvements over 10\% in real-world projects) and transferability from C/C++ to other programming languages (average F1 improvements over 11%).
title DSHGT: Dual-Supervisors Heterogeneous Graph Transformer -- A pioneer study of using heterogeneous graph learning for detecting software vulnerabilities
topic Software Engineering
Machine Learning
url https://arxiv.org/abs/2306.01376