中文

foREST:一种用于模糊测试 RESTful API 的基于树的方法

软件工程 2022-03-08 v1

摘要

表述性状态转移(REST)是被 Web 应用和云广泛采用的架构。用户可根据其应用接口(即 RESTful API)的规范调用此类服务。现有的 RESTful API 模糊测试方法通常基于经典的 API 依赖图。然而,由于 API 间依赖的爆炸式增长,此类依赖对 REST 服务效率低下。本文提出一种新颖的基于树的方法,能更好地捕获本质依赖并大幅提升 RESTful API 模糊测试的效率。具体而言,跨多个 API 的端点的层次信息使我们能够构建 API 树,且树节点的关系可指示资源依赖的优先级,\textit{例如},节点更可能依赖于其父节点而非子节点或兄弟节点。在评估部分,我们首先确认这种基于树的方法比传统的基于图的方法更高效。随后我们将工具应用于对两个真实世界 RESTful 服务进行模糊测试,并与两个前沿工具 EvoMaster 和 RESTler 比较性能。我们的结果表明,foREST 在所有实验中均提升了代码覆盖率,幅度从 11.5\% 到 82.5\%。此外,我们的工具发现了 11 个此前未知的新漏洞。

关键词

引用

@article{arxiv.2203.02906,
  title  = {foREST: A Tree-based Approach for Fuzzing RESTful APIs},
  author = {Jiaxian Lin and Tianyu Li and Yang Chen and Guangsheng Wei and Jiadong Lin and Sen Zhang and Hui Xu},
  journal= {arXiv preprint arXiv:2203.02906},
  year   = {2022}
}

备注

11 pages