中文

智能灰盒模糊测试

密码学与安全 2020-05-22 v1

摘要

基于覆盖率的灰盒模糊测试(CGF)是最成功的自动化漏洞检测方法之一。给定一个种子文件(作为比特序列),CGF 随机翻转、删除或插入比特以生成新文件。CGF 通过保留那些提升覆盖率的生成文件,迭代地构建(并模糊化)种子语料库。然而,对于处理复杂文件格式的应用,随机比特翻转不太可能产生有效文件(或文件中的有效块)。本工作中,我们引入智能灰盒模糊测试(SGF),其利用种子文件的高层结构表示来生成新文件。我们定义了作用于虚拟文件结构而非比特层的创新变异算子,使 SGF 能够在保持文件有效性的同时探索全新的输入域。我们引入一种新颖的基于有效性的能量调度,使 SGF 能投入更多时间生成更可能通过程序解析阶段的文件,从而暴露处理逻辑更深层处的漏洞。我们的评估证明了 SGF 的有效性。在数个解析结构复杂文件的库上,我们的工具 AFLSmart 比基线 AFL 探索了显著更多的路径(高达 200%)并暴露了更多漏洞。我们的工具 AFLSmart 已在广泛使用的、经过充分测试的工具有和库中发现 42 个零日漏洞;迄今已分配 17 个 CVE。

关键词

引用

@article{arxiv.1811.09447,
  title  = {Smart Greybox Fuzzing},
  author = {Van-Thuan Pham and Marcel Böhme and Andrew E. Santosa and Alexandru Răzvan Căciulescu and Abhik Roychoudhury},
  journal= {arXiv preprint arXiv:1811.09447},
  year   = {2020}
}

备注

Accepted IEEE Transactions on Software Engineering, 2020