Learning to Repair Software Vulnerabilities with Generative Adversarial Networks
By Jacob A. Harer, Onur Ozdemir, Tomo Lazovich, Christopher P. Reale, Rebecca L. Russell, Louis Y. Kim, Peter Chin. 2018
83 citations recorded by the source corpus.
Motivated by the problem of automated repair of software vulnerabilities, we propose an adversarial learning approach that maps from one discrete source domain to another target domain without requiring paired labeled examples or source and target domains to be bijections. We demonstrate that the proposed adversarial learning approach is an effective technique for repairing software vulnerabilities, performing close to seq2seq approaches that require labeled pairs. The proposed Generative Adversarial Network approach is application-agnostic in that it can be applied to other problems similar to code repair, such as grammar correction or sentiment translation.
Subfields: Information Systems, Software, Code Generation & Program Synthesis, Program Analysis & Verification, Signal Processing
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
- Sheng Wen
- Qing-Long Han
- Guanjun Lin
- Peter Chin
- Jun Zhang
- Jacob A. Harer
- Christopher P. Reale
- Yang Xiang
In Software
- Sheng Wen
- Qing-Long Han
- Guanjun Lin
- Peter Chin
- Jun Zhang
- Jacob A. Harer
- Christopher P. Reale
- Yang Xiang
In Program Analysis & Verification
In Signal Processing
Citations in the corpus
- Vulnerability detection with fine-grained interpretations (2021, unknown): “For example, some approaches train a DLmodel on different code representations to detect vulnerabilities, such as the lexical representations of functions in a synthetic codebase [14], code snippets related to API calls to detect two types of vulnerabilities [20], syntax-based, semantics-based, and ”
- Tree-Transformer: A Transformer-Based Method for Correction of Tree-Structured Data (2019, methodology): “Additionally, Harer et al. [28] use a Generative Adversarial Network to train an NMT model for code correction in the absence of paired data.”
- Automated Vulnerability Detection in Source Code Using Deep Representation Learning (2018, methodology): “[14] trained an RNN to detect vulnerabilities in the lexed representations of functions in a synthetic codebase, as part of a generative adversarial approach to code repair.”
- Software Vulnerability Detection Using Deep Neural Networks: A Survey (2020, background): “The very recent study which applied generative adversarial network (GAN) [37] for repairing vulnerabilities on C/C ++ synthetic code examples has demonstrated the capability of the neural model in understanding code logic and semantics.”