![32b25fb7c6450503212bd04d55555fd8.png](https://i-blog.csdnimg.cn/blog_migrate/c81e478f83c83045d29ac643bc0b718e.jpeg)
论文摘要:
随着Amazon Web Services和Microsoft Azure的出现,云服务在最近的几年中增长迅速。大多数云服务,不管是SaaS,PaaS还是IaaS,都是通过REST API访问的,而Swagger可以说是最受欢迎的REST API描述语言。
通过REST API自动测试云服务并检查这些服务是否可靠和安全的工具仍处于起步阶段。本文介绍了一个自动化智能REST API安全测试工具REST-ler,它分析Swagger规格说明并生成通过REST API执行的相应服务的测试。与其他REST API测试工具不同,REST-ler对整个Swagger规格说明执行轻量级静态分析,然后生成并执行通过其REST API执行相应云服务的测试。REST-ler生成测试的智能化体现在两个方面:(1)推断Swagger规格说明中声明的请求类型之间的依赖关系(例如,由于请求B要将请求A返回的一个资源ID x作为输入,因此推断请求B应该在请求A后面执行);(2)分析在先前测试执行期间观察到的响应的动态反馈,生成新的测试(例如,发现请求C在请求A之后执行,请求B被服务拒绝,因此在后续的测试中避免把二者组合起来)。我们发现这两种技术对于在缩小搜索空间的同时执行更全面的测试是必要的。通过REST-ler工具测试GitLab,我们还发现了新的bug。