REST-ler:自动智能 REST API 模糊测试
软件工程
2018-06-27 v1
摘要
随着 Amazon Web Services 与 Microsoft Azure 等强大云计算平台的出现,云服务近期呈爆发式增长。如今,大多数云服务通过 REST API 访问,而 Swagger 可谓是 REST API 最流行的接口描述语言。Swagger 规范描述了如何通过其 REST API 访问云服务(例如,服务可处理的请求与可能预期的响应)。本文介绍 REST-ler,首个自动智能 REST API 安全测试工具。REST-ler 分析 Swagger 规范并生成通过 REST API 对相应云服务进行测试的测试例。每个测试例定义为请求与响应序列。REST-ler 通过以下方式智能生成测试:(1) 推断 Swagger 规范中声明的请求类型间依赖关系(例如,推断“请求 B 不应在请求 A 之前执行”,因为 B 以 A 返回的 resource-id x 作为输入参数);以及 (2) 分析先前测试执行中观察到的响应动态反馈以生成新测试(例如,获知“请求序列 A;B 后的请求 C 被服务拒绝”,从而未来避免该组合)。我们表明,为彻底演练被测服务同时剪除可能请求序列的巨大搜索空间,这两种技术是必要的。我们还讨论了将 REST-ler 应用于测试 GitLab(一个大型流行开源自托管 Git 服务)及所发现的新缺陷。
引用
@article{arxiv.1806.09739,
title = {REST-ler: Automatic Intelligent REST API Fuzzing},
author = {Vaggelis Atlidakis and Patrice Godefroid and Marina Polishchuk},
journal= {arXiv preprint arXiv:1806.09739},
year = {2018}
}