中文

Matryoshka:模糊测试深度嵌套分支

密码学与安全 2019-10-10 v2

摘要

灰盒模糊测试近年来取得了令人瞩目的进展,从基于启发式的随机变异发展为求解单个路径约束的方法。然而,它们难以求解涉及深度嵌套条件语句的路径约束,这类语句在图像与视频解码器、网络包分析器以及校验和工具中十分常见。我们提出了一种解决该问题的方法。首先,我们识别目标条件语句的所有控制流相关条件语句。接着,我们筛选数据流相关条件语句。最后,我们使用三种策略来寻找同时满足所有条件语句的输入。我们在名为 Matryoshka 的工具中实现了该方法,并在 13 个开源程序上与其他最先进的模糊测试器比较了有效性。Matryoshka 发现的唯一崩溃数显著多于 AFL、QSYM 和 Angora。我们手动将这些崩溃分类为 41 个唯一新缺陷,并获得了 12 个 CVE。我们的评估还揭示了促成 Matryoshka 优异性能的关键技术:它仅收集可能导致目标条件语句不可达的嵌套约束,从而极大简化了所需求解的约束。

关键词

引用

@article{arxiv.1905.12228,
  title  = {Matryoshka: Fuzzing Deeply Nested Branches},
  author = {Peng Chen and Jianzhong Liu and Hao Chen},
  journal= {arXiv preprint arXiv:1905.12228},
  year   = {2019}
}