REST-ler: Automatic Intelligent REST API Fuzzing

06/26/2018
by   Vaggelis Atlidakis, et al.
0

Cloud services have recently exploded with the advent of powerful cloud-computing platforms such as Amazon Web Services and Microsoft Azure. Today, most cloud services are accessed through REST APIs, and Swagger is arguably the most popular interface-description language for REST APIs. A Swagger specification describes how to access a cloud service through its REST API (e.g., what requests the service can handle and what responses may be expected). This paper introduces REST-ler, the first automatic intelligent REST API security-testing tool. REST-ler analyzes a Swagger specification and generates tests that exercise the corresponding cloud service through its REST API. Each test is defined as a sequence of requests and responses. REST-ler generates tests intelligently by (1) inferring dependencies among request types declared in the Swagger specification (e.g., inferring that "a request B should not be executed before a request A" because B takes as an input argument a resource-id x returned by A) and by (2) analyzing dynamic feedback from responses observed during prior test executions in order to generate new tests (e.g., learning that "a request C after a request sequence A;B is refused by the service" and therefore avoiding this combination in the future). We show that these two techniques are necessary to thoroughly exercise a service under test while pruning the large search space of possible request sequences. We also discuss the application of REST-ler to test GitLab, a large popular open-source self-hosted Git service, and the new bugs that were found.

READ FULL TEXT
research
03/05/2023

MINER: A Hybrid Data-Driven Approach for REST API Fuzzing

In recent years, REST API fuzzing has emerged to explore errors on a clo...
research
09/08/2023

Adaptive REST API Testing with Reinforcement Learning

Modern web services increasingly rely on REST APIs. Effectively testing ...
research
03/24/2023

JepREST: Functional tests for distributed REST applications

Application services often support mobile and web applications with REST...
research
03/06/2022

foREST: A Tree-based Approach for Fuzzing RESTful APIs

Representational state transfer (REST) is a widely employed architecture...
research
05/18/2020

A Link Generator for Increasing the Utility of OpenAPI-to-GraphQL Translations

Standardized interfaces are the connecting link of today's distributed s...
research
05/23/2020

Pythia: Grammar-Based Fuzzing of REST APIs with Coverage-guided Feedback and Learning-based Mutations

This paper introduces Pythia, the first fuzzer that augments grammar-bas...
research
02/21/2021

Web-based Application for Detecting Indonesian Clickbait Headlines using IndoBERT

With increasing usage of clickbaits in Indonesian Online News, newsworth...

Please sign up or login with your details

Forgot password? Click here to reset