BackREST:一种用于 Web 应用的基于模型的反馈驱动灰盒模糊测试器
密码学与安全
2021-08-20 v1
摘要
继 American Fuzzy Lop(AFL)出现之后,模糊测试(fuzzing)人气激增,当今的模糊测试器从简单的黑盒随机输入生成器,到能够进行深度程序内省(introspection)的复杂白盒 concolic 框架不一而足。然而,Web 应用模糊测试器并未从二进制程序模糊测试的巨大进展中受益,且在本质上仍多为黑盒。本文介绍 BackREST,一种全自动、基于模型、由覆盖率和污点(taint)驱动的模糊测试器,其利用反馈回路更快(加速比介于 7.4x 与 25.9x 之间)地发现更多严重漏洞。为对 Web 应用的服务器端建模,BackREST 通过定向状态感知爬取自动推断 REST 规范。在五个大型(>500 KLOC)Node.js 应用上将 BackREST 与其他三种 Web 模糊测试器比较,表明它始终能达到可比的覆盖率,同时比现有最优方法报告更多漏洞。最后,使用 BackREST,我们发现了九个 0-day 漏洞,其中六个未被任何其他模糊测试器报告。所有 0-day 均已披露,且多数现已公开,包括两个在极流行的 Sequelize 与 Mongodb 库中的漏洞。
引用
@article{arxiv.2108.08455,
title = {BackREST: A Model-Based Feedback-Driven Greybox Fuzzer for Web Applications},
author = {François Gauthier and Behnaz Hassanshahi and Benjamin Selwyn-Smith and Trong Nhan Mai and Max Schlüter and Micah Williams},
journal= {arXiv preprint arXiv:2108.08455},
year = {2021}
}