SENEMar 7, 2017

End-to-End Prediction of Buffer Overruns from Raw Source Code via Neural Memory Networks

arXiv:1703.02458v168 citations
Originality Incremental advance
AI Analysis

This addresses a common challenge in program analysis for software developers, but it is incremental as it builds on existing neural network models.

The paper tackles the problem of detecting buffer overruns in source code by proposing an end-to-end data-driven approach using neural memory networks, which accurately detects simple buffer overruns without handcrafted features.

Detecting buffer overruns from a source code is one of the most common and yet challenging tasks in program analysis. Current approaches have mainly relied on rigid rules and handcrafted features devised by a few experts, limiting themselves in terms of flexible applicability and robustness due to diverse bug patterns and characteristics existing in sophisticated real-world software programs. In this paper, we propose a novel, data-driven approach that is completely end-to-end without requiring any hand-crafted features, thus free from any program language-specific structural limitations. In particular, our approach leverages a recently proposed neural network model called memory networks that have shown the state-of-the-art performances mainly in question-answering tasks. Our experimental results using source codes demonstrate that our proposed model is capable of accurately detecting simple buffer overruns. We also present in-depth analyses on how a memory network can learn to understand the semantics in programming languages solely from raw source codes, such as tracing variables of interest, identifying numerical values, and performing their quantitative comparisons.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes