...
首页> 外文期刊>ACM transactions on software engineering and methodology >DeepWukong: Statically Detecting Software Vulnerabilities Using Deep Graph Neural Network
【24h】

DeepWukong: Statically Detecting Software Vulnerabilities Using Deep Graph Neural Network

机译:DeepWukong:使用深图形神经网络静态检测软件漏洞

获取原文
获取原文并翻译 | 示例

摘要

Static bug detection has shown its effectiveness in detecting well-defined memory errors, e.g., memory leaks, buffer overflows, and null dereference. However, modern software systems have a wide variety of vulnerabilities. These vulnerabilities are extremely complicated with sophisticated programming logic, and these bugs are often caused by different bad programming practices, challenging existing bug detection solutions. It is hard and labor-intensive to develop precise and efficient static analysis solutions for different types of vulnerabilities, particularly for those that may not have a clear specification as the traditional well-defined vulnerabilities.This article presents DEEPWUKONG, a new deep-learning-based embedding approach to static detection of software vulnerabilities for C/C++ programs. Our approach makes a new attempt by leveraging advanced recent graph neural networks to embed code fragments in a compact and low-dimensional representation, producing a new code representation that preserves high-level programming logic (in the form of control-and data-flows) together with the natural language information of a program. Our evaluation studies the top 10 most common C/C++ vulnerabilities during the past 3 years. We have conducted our experiments using 105,428 real-world programs by comparing our approach with four well-known traditional static vulnerability detectors and three state-of-the-art deep-learning-based approaches. The experimental results demonstrate the effectiveness of our research and have shed light on the promising direction of combining program analysis with deep learning techniques to address the general static code analysis challenges.
机译:静态错误检测在检测定义良好的内存错误时,例如内存泄漏,缓冲区溢出和空解密的效力。但是,现代软件系统具有各种各样的漏洞。这些漏洞极其复杂的编程逻辑非常复杂,这些错误通常由不同的不良编程实践引起,具有挑战性的现有错误检测解决方案。它是努力和劳动密集型的,为不同类型的漏洞开发精确和高效的静态分析解决方案,特别是对于那些可能没有明确规格作为传统定义的脆弱性的人来说。这篇文章提出了深度,一个新的学习 - 基于C / C ++程序的软件漏洞静态检测的嵌入方法。我们的方法通过利用先进的最近图形神经网络来实现新的尝试,以在紧凑且低维表示中嵌入代码片段,从而产生一个保留高级编程逻辑的新代码表示(以控制和数据流的形式)与程序的自然语言信息一起。我们的评估在过去3年中,研究了前10名最常见的C / C ++漏洞。我们通过将我们的方法与四种知名的传统静态漏洞探测器和三种最新的深学习的方法进行比较,使用105,428个现实世界计划进行了实验。实验结果展示了我们的研究的有效性,并阐明了与深层学习技术相结合的计划分析的有希望,以解决一般静态代码分析挑战。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号