Checking Security Properties of Cloud Services REST APIs
- Vaggelis Atlidakis ,
- Patrice Godefroid ,
- Marina Polishchuk
MSR-TR-2019-1 |
Published by Microsoft
Revised version published in ICST'2020, March 2020.
Most modern cloud and web services are programmatically accessed through REST APIs. This paper discusses how an attacker might compromise a service by exploiting vulnerabilities in its REST API. We introduce four security rules that capture desirable properties of REST APIs and services. We then show how a stateful REST API fuzzer can be extended with active property checkers that automatically test and detect violations of these rules. We discuss how to implement such checkers efficiently and in a modular way. Thanks to these checkers, we found new bugs in several deployed production Azure and Office-365 cloud services, and we discuss their security implications.
Publication Downloads
RESTler-Fuzzer
November 16, 2020
RESTler is the first stateful REST API fuzzing tool for automatically testing cloud services through their REST APIs and finding security and reliability bugs in these services.
REST API Fuzz Testing
November 16, 2020
This self-hosted service developed for Azure, including its orchestration engine and security tools (including MSR's RESTler), enables developers to embed security tooling into their CI/CD workflows.
Fuzzing to improve the security and reliability of cloud services with RESTler
In the past few years, cloud services have experienced tremendous growth. Most of these services are programmatically accessed through REST APIs. As the pace of development increases, both the APIs and service implementations are evolving rapidly. There is an urgent need for automated tools to test the reliability and security of cloud services that can keep up with today’s fast-paced service development and deployment—tools that provide the necessary level of automation and coverage for the growing number of APIs being deployed across the web.
In this webinar, join Marina Polishchuk, a Software Engineer at Microsoft Research, in exploring how RESTler—the first stateful REST API fuzzer—can help efficiently find security and reliability bugs in cloud services. RESTler analyzes a Swagger/OpenAPI specification and produces a fuzzing grammar that contains information about requests and their dependencies. RESTler only fuzzes a request if all its dependent resources have been successfully created—this enables RESTler to achieve deeper coverage out of the box. RESTler also offers a pluggable model for checking security properties. RESTler is open source and available at its GitHub repository.
Together, you’ll explore:
- How to use RESTler to fuzz a cloud service
- The types of bugs that can be discovered through the REST API and their security impact
- How RESTler addresses the challenges of testing large, complex services through their REST APIs
Resource list:
- RESTler Fuzzing tool (opens in new tab) (GitHub)
- RESTler: Stateful REST API Fuzzing (opens in new tab) (Publication)
- Checking Security Properties of Cloud Services REST APIs (opens in new tab) (Publication)
- Differential Regression Testing for REST APIs (opens in new tab) (Publication)
- Intelligent REST API Data Fuzzing (opens in new tab) (Publication)
- Marina Polishchuk (opens in new tab) (Researcher profile)
*This on-demand webinar features a previously recorded Q&A session and open captioning.
This webinar originally aired on May 26, 2021
Explore more Microsoft Research webinars: https://aka.ms/msrwebinars (opens in new tab)