论文标题

基于堆栈的缓冲区溢流检测使用复发性神经网络

Stack-based Buffer Overflow Detection using Recurrent Neural Networks

论文作者

Dahl, William Arild, Erdodi, Laszlo, Zennaro, Fabio Massimo

论文摘要

检测软件中的漏洞是应用程序开发和部署的关键挑战。最著名和最危险的漏洞之一是基于堆栈的缓冲区溢出,这可能允许潜在的攻击者执行恶意代码。在本文中,我们考虑使用现代机器学习模型,特别是经常性神经网络,以检测程序的汇编代码中基于堆栈的缓冲区溢出漏洞。由于汇编代码是一种通用且常见的表示,因此专注于这种语言,我们可以考虑使用几种不同的编程语言编写的程序。此外,我们相信可以将代码视为自然语言的假设,因此我们使用自然语言处理中常用的标准体系结构处理装配代码。我们执行了一组旨在确认自然语言假设的有效性以及使用复发性神经网络检测脆弱性的可行性的实验。我们的结果表明,我们的体系结构能够捕获强烈取决于上下文的细微堆栈的缓冲溢出漏洞,从而表明该方法可以扩展到现实世界中的设置以及其他形式的脆弱性检测。

Detecting vulnerabilities in software is a critical challenge in the development and deployment of applications. One of the most known and dangerous vulnerabilities is stack-based buffer overflows, which may allow potential attackers to execute malicious code. In this paper we consider the use of modern machine learning models, specifically recurrent neural networks, to detect stack-based buffer overflow vulnerabilities in the assembly code of a program. Since assembly code is a generic and common representation, focusing on this language allows us to potentially consider programs written in several different programming languages. Moreover, we subscribe to the hypothesis that code may be treated as natural language, and thus we process assembly code using standard architectures commonly employed in natural language processing. We perform a set of experiments aimed at confirming the validity of the natural language hypothesis and the feasibility of using recurrent neural networks for detecting vulnerabilities. Our results show that our architecture is able to capture subtle stack-based buffer overflow vulnerabilities that strongly depend on the context, thus suggesting that this approach may be extended to real-world setting, as well as to other forms of vulnerability detection.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源