Skip to main content
QUICK REVIEW

[论文解读] DeepCheck: A Non-intrusive Control-flow Integrity Checking based on Deep Learning

Jiliang Zhang, Wuqiao Chen|arXiv (Cornell University)|May 6, 2019
Security and Verification in Computing参考文献 39被引用 12
一句话总结

DeepCheck 提出了一种非侵入式的、基于深度学习的控制流完整性(CFI)机制,通过将程序控制流图(CFGs)分解为链状结构以训练深度神经网络(DNN),实现对代码重用攻击(CRAs)的实时检测,且运行时开销为零。该方法在检测精度上达到98.9%的平均值,并对64个ROP利用实现100%的成功率,相较于传统CFI方法在兼容性和效率方面表现更优。

ABSTRACT

Code reuse attack (CRA) is a powerful attack that reuses existing codes to hijack the program control flow. Control flow integrity (CFI) is one of the most popular mechanisms to prevent against CRAs. However, current CFI techniques are difficult to be deployed in real applications due to suffering several issues such as modifying binaries or compiler, extending instruction set architectures (ISA) and incurring unacceptable runtime overhead. To address these issues, we propose the first deep learning-based CFI technique, named DeepCheck, where the control flow graph (CFG) is split into chains for deep neural network (DNN) training. Then the integrity features of CFG can be learned by DNN to detect abnormal control flows. DeepCheck does not interrupt the application and hence incurs zero runtime overhead. Experimental results on Adobe Flash Player, Nginx, Proftpd and Firefox show that the average detection accuracy of DeepCheck is as high as 98.9%. In addition, 64 ROP exploits created by ROPGadget and Ropper are used to further test the effectiveness, which shows that the detection success rate reaches 100%.

研究动机与目标

  • 为解决现有CFI技术的局限性,如编译器和ISA修改,以及高运行时开销。
  • 开发一种适用于现有二进制文件和系统的实用型、非侵入式CFI解决方案。
  • 利用深度学习实现对异常控制流的高精度检测,同时保持低误报/漏报率。
  • 实现实时、零开销的代码重用攻击(CRAs),包括ROP和JOP的检测。
  • 为商业软件提供可扩展且可部署的防御机制,无需修改二进制文件或编译器。

提出的方法

  • 将控制流图(CFG)分解为控制流边的序列链,用于DNN训练。
  • 在这些CFG链上训练深度神经网络(DNN),以学习合法控制流的完整性特征。
  • 在运行时,实时收集分支信息并输入到预训练的DNN中进行异常检测。
  • 该方法使用指令指针跟踪(IPT)提取细粒度CFG,无需修改二进制文件或ISA。
  • DNN模型在良性CFG模式上进行训练,以区分正常与恶意的控制流转换。
  • 该方法避免了运行时插桩或二进制重写,确保零性能开销。

实验结果

研究问题

  • RQ1深度学习模型是否能够在不修改二进制文件、编译器或ISA的前提下检测代码重用攻击?
  • RQ2一种非侵入式、零运行时开销的CFI机制是否能够对多种CRAs实现高检测精度?
  • RQ3基于DNN的方法在实时识别异常控制流转换方面效果如何?
  • RQ4该模型在真实世界ROP利用上的检测性能如何?
  • RQ5该模型是否能在不同应用程序间实现泛化,并保持低误报和漏报率?

主要发现

  • DeepCheck 在四个商业应用(Adobe Flash Player、Nginx、Proftpd 和 Firefox)上实现了98.9%的平均检测准确率。
  • 误报率为0.15%,漏报率为0.60%,表明具有高精度和高召回率。
  • 所有由 ROPGadget 和 Ropper 生成的64个ROP利用均被成功检测,检测成功率达100%。
  • 该方法运行时开销为零,因其未修改二进制文件、编译器,也无需硬件扩展。
  • 该模型与现有软件栈兼容,可无需应用层修改直接部署。
  • 利用IPT进行细粒度CFG提取,可实现对合法控制流路径的精确建模。

更好的研究,从现在开始

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

无需绑定信用卡

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