Many web-based services such as Amazon Web Services (AWS), Azure, and GitLab provide their own REST APIs. REST APIs that can access resources in those systems is an important attack vector in terms of security. Meanwhile, existing tools for automated REST API testing rely on the OpenAPI specification describing REST APIs to create effective REST API test cases. In this paper, we introduce Ratatoskr, which can effectively test REST APIs with only simplified request forms even when the OpenAPI specification is incomplete or not given. Ratatoskr effectively creates and fuzzes test cases by leveraging inter-REST API dependencies obtained from simplified request forms and the execution feedback. In this paper, we experimentally show the effects of the techniques used for Ratatoskr. Ratatoskr found previously unknown 46 bugs in the latest version of programs.
아마존 웹 서비스(AWS), 애저(Azure), 깃랩(GitLab) 등 많은 웹 기반 서비스가 REST API를 제공하고 있다. 시스템 내 자원에 접근 가능한 REST API는 보안 측면에서 중요한 공격 벡터이다. 한편 기존 REST API 자동화 테스팅 연구들은 효과적인 REST API 테스트 케이스 생성을 위해 REST API를 기술하고 있는 OpenAPI 명세서에 의존하고 있다. 본 논문에서는 OpenAPI 명세서가 불완전하거나 주어지지 않은 상황에서도 간단화된 요청 형태만으로 효과적으로 REST API를 테스팅할 수 있는 Ratatoskr 를 소개한다. Ratatoskr 는 REST API 엔드포인트와 디스크립션에서 나타나는 REST API 간의 연관성과 REST API 응답을 피드백으로 활용하여 효과적으로 테스트 케이스를 생성하고 퍼징한다. 본 논문에서 Ratatoskr 에 사용되는 기술들의 효과를 실험적으로 보여준다. Ratatoskr 는 최신 버전 프로그램들에서 46개의 버그를 발견하였다.