Skip to main content
QUICK REVIEW

[论文解读] Towards security defect prediction with AI

Carson D. Sestili, William Snavely|arXiv (Cornell University)|Aug 29, 2018
Industrial Vision Systems and Defect Detection被引用 34
一句话总结

本文提出了 s-bAbI,一个具有非平凡控制流和行级缓冲区溢出缺陷标签的合成 C 代码数据集。该研究在该数据集上评估了记忆网络 AI 模型和静态分析工具,发现尽管 AI 模型的性能与静态分析器相当,但其需要大量训练数据,凸显了改进代码表示和具备算术感知能力的深度学习架构以提升安全缺陷预测能力的必要性。

ABSTRACT

In this study, we investigate the limits of the current state of the art AI system for detecting buffer overflows and compare it with current static analysis tools. To do so, we developed a code generator, s-bAbI, capable of producing an arbitrarily large number of code samples of controlled complexity. We found that the static analysis engines we examined have good precision, but poor recall on this dataset, except for a sound static analyzer that has good precision and recall. We found that the state of the art AI system, a memory network modeled after Choi et al. [1], can achieve similar performance to the static analysis engines, but requires an exhaustive amount of training data in order to do so. Our work points towards future approaches that may solve these problems; namely, using representations of code that can capture appropriate scope information and using deep learning methods that are able to perform arithmetic operations.

研究动机与目标

  • 调查最先进 AI 系统在检测源代码中缓冲区溢出方面的极限。
  • 开发一个合成代码生成器(s-bAbI),能够生成大规模、语法正确的 C 程序,具备非平凡控制流和标注的安全缺陷。
  • 在精度和召回率方面,比较 AI 模型与静态分析工具在该新数据集上的性能表现。
  • 识别当前 AI 和静态分析方法在安全缺陷预测中的关键缺陷。
  • 通过指明代码表示和模型架构方面必要的改进,为未来研究提供指导。

提出的方法

  • 作者开发了 s-bAbI,一个代码生成器,可生成具有受控复杂度的语法正确 C 程序,包括条件语句和循环。
  • 该数据集包含针对安全和不安全缓冲区写入的行级标签,支持细粒度的缺陷检测评估。
  • 基于 Choi 等人 [1] 的工作,训练了一个记忆网络模型,用于将缓冲区写入操作分类为安全或不安全。
  • 使用标准指标(精度和召回率)将 AI 模型的性能与多种静态分析工具进行比较。
  • 研究采用最小化、受控的代码复杂度,以隔离控制流和算术推理对模型性能的影响。
  • 通过分析 AI 系统达到可接受性能所需的数据量,评估了模型的泛化能力。

实验结果

研究问题

  • RQ1最先进的 AI 模型(具体为记忆网络)能否在具有非平凡控制流的合成 C 代码中检测缓冲区溢出?
  • RQ2在 s-bAbI 数据集上,AI 模型的性能与现有静态分析工具在精度和召回率方面的对比如何?
  • RQ3AI 模型要达到与静态分析器相当的性能,所需的最少训练数据量是多少?
  • RQ4AI 模型能否在控制流和算术表达式的变化中实现泛化,还是仅依赖于对训练样本的记忆?
  • RQ5为了有效推理代码中的作用域和算术运算以实现安全缺陷检测,AI 模型需要哪些架构改进?

主要发现

  • 评估的静态分析工具在 s-bAbI 数据集上表现出高精度但召回率较低,仅有一款声名远扬的分析器实现了高精度与高召回率的双重表现。
  • 最先进的记忆网络 AI 模型性能与静态分析工具相当,但需要大量训练数据才能实现这一表现。
  • AI 模型的性能表明,其可能依赖于对训练样本的记忆而非学习可泛化的缓冲区溢出检测模式。
  • 研究结果表明,当前 AI 模型在推理代码中的作用域和算术运算方面存在困难,而这些能力对实现稳健的安全缺陷检测至关重要。
  • 结果表明,未来 AI 模型必须整合更优的代码表示方式(如 AST 路径编码)并支持算术运算,以提升泛化能力。
  • s-bAbI 数据集成功揭示了当前 AI 和静态分析方法的局限性,为未来研究建立了最小基准。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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