Skip to main content
QUICK REVIEW

[论文解读] DeepTective

Rishi Rabheru, Hazim Hanif|arXiv (Cornell University)|Mar 22, 2021
Web Application Security Vulnerabilities参考文献 6被引用 1
一句话总结

DeepTective 是一种深度学习框架,结合门控循环单元(GRUs)和图卷积网络(GCNs),通过建模代码的语法结构和语义结构,检测 PHP 代码中的 SQL 注入、跨站脚本(XSS)和 OSCI 漏洞。该框架在真实世界的 GitHub 数据集上实现了 88.12% 的 F1 分数,并在 WordPress 插件中发现了四个新型漏洞。

ABSTRACT

This paper presents DeepTective, a deep learning approach to detect vulnerabilities in PHP source code. Our approach implements a novel hybrid technique that combines Gated Recurrent Units and Graph Convolutional Networks to detect SQLi, XSS and OSCI vulnerabilities leveraging both syntactic and semantic information. We evaluate DeepTective and compare it to the state of the art on an established synthetic dataset and on a novel real-world dataset collected from GitHub. Experimental results show that DeepTective achieves near perfect classification on the synthetic dataset, and an F1 score of 88.12% on the realistic dataset, outperforming related approaches. We validate DeepTective in the wild by discovering 4 novel vulnerabilities in established WordPress plugins.

研究动机与目标

  • 为使用深度学习检测 PHP 应用程序中复杂代码漏洞的挑战提供解决方案。
  • 通过联合建模语法结构和代码语义,提升检测准确率。
  • 在合成数据集和真实世界数据集上评估模型,以确保其实际适用性。
  • 通过在广泛使用的软件中发现此前未知的漏洞,验证模型的有效性。

提出的方法

  • DeepTective 使用门控循环单元(GRUs)来建模 PHP 源代码的序列结构。
  • 它使用图卷积网络(GCNs)来捕捉以抽象语法树(ASTs)表示的语法和语义关系。
  • 该模型融合 GRUs 和 GCNs 的表示,生成统一的代码嵌入,用于漏洞分类。
  • 它在带标签的代码样本上进行端到端训练,将漏洞分类为 SQLi、XSS 和 OSCI 类别。
  • 该框架利用 AST 中编码的控制流和数据流信息,以提升语义理解能力。
  • 混合架构使模型能够从代码的序列模式和结构依赖关系中联合学习。

实验结果

研究问题

  • RQ1结合 GRUs 和 GCNs 的混合深度学习模型能否有效检测 PHP 代码中的多种 Web 漏洞?
  • RQ2与现有最先进方法相比,DeepTective 在真实、现实世界数据集上的表现如何?
  • RQ3DeepTective 在检测生产环境中先前未知的漏洞方面,其泛化能力如何?

主要发现

  • 在合成数据集上,DeepTective 实现了近乎完美的分类性能,表明其在受控数据上的强大学习能力。
  • 在真实世界的 GitHub 数据集上,DeepTective 达到了 88.12% 的 F1 分数,优于先前的方法。
  • 该模型成功在流行的 WordPress 插件中发现了四个新型漏洞,验证了其实际检测能力。
  • GRUs 和 GCNs 的集成能够有效建模代码的序列特征和结构特征,从而提升检测准确率。
  • 结果表明,结合语法和语义代码表示显著优于仅依赖单一模态的方法。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。