计算机研究与发展2023,Vol.60Issue(7) :1501-1513.DOI:10.7544/issn1000-1239.202220771

HeapAFL:基于堆操作行为引导的灰盒模糊测试

HeapAFL:Heap-Behavior Guided Greybox Fuzzing

余媛萍 苏璞睿
计算机研究与发展2023,Vol.60Issue(7) :1501-1513.DOI:10.7544/issn1000-1239.202220771

HeapAFL:基于堆操作行为引导的灰盒模糊测试

HeapAFL:Heap-Behavior Guided Greybox Fuzzing

余媛萍 1苏璞睿2
扫码查看

作者信息

  • 1. 中国科学院软件研究所可信计算与信息保障实验室 北京 100190;中国科学院大学计算机科学与技术学院 北京 100190
  • 2. 中国科学院软件研究所可信计算与信息保障实验室 北京 100190;中国科学院大学网络空间安全学院 北京 100190
  • 折叠

摘要

随着软件开发环境和业务逻辑的复杂度不断增加,大量的堆内存对象生命周期及其引用关系造成堆内存操作行为错综复杂,极易引发程序错误造成漏洞.模糊测试作为高效的软件代码错误检测技术,常用于漏洞挖掘.然而,目前最先进的模糊测试工具专注于代码全覆盖功能测试,忽略了执行时堆内存操作状态信息,从而错过堆内存漏洞发现机会.针对上述问题,提出了一种基于堆操作行为引导的灰盒模糊测试方法HeapAFL,在不依赖漏洞先验知识的情况下,其通过静态分析插桩基础堆操作函数及其参数监测执行时控制流和数据流变化,反馈堆操作行为信息,指导模糊测试中种子优先变异阶段,探索多样化堆操作行为从而更高概率触发堆内存错误类漏洞.在 6个真实应用程序上验证方法效果,并与 6个最先进的模糊测试工具进行比较,实验中的CPU总共测试了 4 032 h.实验结果表明,HeapAFL在漏洞挖掘效果和崩溃发现效率上优于对比工作.在漏洞挖掘数量上,HeapAFL相比于基准模糊测试方法AFL,AFLFast,PathAFL,TortoiseFuzz,Angora,Memlock分别提升了 1.32倍,1.39倍,1.92倍,1.56倍,2.78倍,2.08倍.最终,HeapAFL在数据集上挖掘到了 25个堆内存错误类漏洞,其中包括 19个已知的漏洞(即 1 day)和 6个未知的漏洞(即 0 day),并报告给CVE(common vulnerabilities and exposures)官方漏洞库后已经获得了 2个CVE漏洞编号,其余漏洞正在等待审核.

关键词

模糊测试/堆操作行为/漏洞挖掘/开源软件/优先变异

引用本文复制引用

基金项目

国家自然科学基金(62232016)

国家自然科学基金(62102406)

国家自然科学基金(61902384)

前沿科技创新专项(2019QY1403)

出版年

2023
计算机研究与发展
中国科学院计算技术研究所 中国计算机学会

计算机研究与发展

CSTPCDCSCD北大核心
影响因子:2.649
ISSN:1000-1239
参考文献量1
段落导航相关论文