Advanced White-Box Heuristics for Search-Based Fuzzing of REST APIs
This program is tentative and subject to change.
REST (Representational State Transfer) is an architectural style that provides guidelines for building web services, commonly referred to as REST APIs or RESTful APIs. Nowadays, REST APIs have been widely adopted in industry, especially in developing large-scale enterprise microservices architectures. Due to its importance and widespread adoption in industry, the validation and verification of REST APIs has attracted major interest from the research community. A lot of automated testing approaches for REST APIs have been proposed in recent years.
Although existing fuzzers have demonstrated effectiveness in code coverage and fault detection, several open research challenges remain that hinder further improvements. For example, benefiting from the OpenAPI Specification (OAS) as a standard for defining schemas, most approaches use OAS as input to generate tests. However, faults or under-specified schemas may exist, representing one of the major issues for black-box fuzzers. In addition, web API commonly interacts with databases. Under-specified constraints may also exist in the database schema, which can hinder the preparation of necessary test data. Without access to source code, such under-specified API schemas and constraints cannot be addressed. But, in the literature, most of the approaches focus on black-box fuzzing. EvoMaster is the only existing open-source fuzzer that supports white-box fuzzing of REST APIs. In this paper, building on EvoMaster, we employed white-box techniques (e.g., method replacement and taint analysis) and proposed a series of novel white-box heuristics to tackle three main challenges: (1) Under-specified schemas in OAS, particularly when HTTP query parameters and header information are missing. If these headers and parameters are not included in API requests during fuzzing, then the code responsible for handling them and their associated functionalities would never be tested. (2) Under-specified constraints in SQL database schemas, especially when the tested API relies on the Java Persistence API (JPA) to access databases. Depending on the state of the databases the API interacts with, the same request may exercise different code paths and correspond to different business scenarios, e.g., happy-path' or exceptional scenarios. As such, invalid data inserted into a SQL database can hamper the testing process for code coverage, e.g., the API may crash when such data is read. (3) \emph{Flag} problem in common library calls. Function calls that return boolean values or raise exceptions on invalid inputs can createfitness plateaus'' in the search space, resulting in no effective guidance for the evolutionary process of generating high-coverage test cases.
To assess the effectiveness of our approach, we carried out an empirical study on 14 open-source, JVM REST APIs currently part of the EMB corpus. To better generalize our results, we also included one industrial API from one of our industrial partners. The results of our empirical study demonstrate clear improvements achieved by our approach on several of these APIs in terms of both code coverage and fault detection. This study enables us to push forward the boundaries of scientific research in white-box fuzzing of Web APIs. Nevertheless, there are still several challenges left, which will require further research on developing more advanced white-box heuristics to solve these further issues.
Our novel heuristics have been integrated as part of our open-source fuzzer EvoMaster. In this presentation, we will explain how our approach tackles major challenges in REST API fuzzing and include a live demo of EvoMaster. However, these novel techniques are independent of EvoMaster. They can be integrated and evaluated in any white-box fuzzer for REST APIs.
This program is tentative and subject to change.
Tue 18 NovDisplayed time zone: Seoul change
14:00 - 15:30 | Fuzzing 1Research Papers / Journal-First at Grand Hall 2 Chair(s): Yanjie Zhao Huazhong University of Science and Technology | ||
14:00 10mTalk | RSFuzz: A Robustness-Guided Swarm Fuzzing Framework Based on Behavioral Constraints Research Papers Ruoyu Zhou School of Computer Science and Technology, Xidian University, Xi'an, China; Shaanxi Key Laboratory of Network and System Security, Xidian University, Xi'an, China, Zhiwei Zhang School of Computer Science and Technology, Xidian University, Xi'an, China; Shaanxi Key Laboratory of Network and System Security, Xidian University, Xi'an, China, Haocheng Han School of Computer Science and Technology, Xidian University, Xi'an, China; Shaanxi Key Laboratory of Network and System Security, Xidian University, Xi'an, China, Xiaodong Zhang University of Chinese Academy of Science, Zehan Chen School of Computer Science and Technology, Xidian University, Xi’an, China; Shaanxi Key Laboratory of Network and System Security , Xidian University, Jun Sun Singapore Management University, Yulong Shen Xidian University, Dehai Xu Yiqiyin (Hangzhou) Technology Co., Ltd. Xi'an Branch, Xi'an, China | ||
14:10 10mTalk | DualFuzz: Detecting Vulnerability in Wi-Fi NICs through Dual-Directional Fuzzing Research Papers Yuanliang Chen Tsinghua University, Fuchen Ma Tsinghua University, Yanyang Zhao Tsinghua University, Yuanyi Li Shuimu Yulin Technology Co., Ltd, Yu Jiang Tsinghua University | ||
14:20 10mTalk | ORFuzz: Fuzzing the "Other Side" of LLM Safety – Testing Over-Refusal Research Papers Haonan Zhang Zhejiang University, Dongxia Wang Zhejiang University, Yi Liu Nanyang Technological University, Kexin Chen Zhejiang University, Jiashui Wang Zhejiang University, Xinlei Ying Ant Group, Long Liu Ant Group, Wenhai Wang Zhejiang University Pre-print | ||
14:30 10mTalk | DNAFuzz: Descriptor-Aware Fuzzing for USB Drivers Research Papers Zhengshu Wang Hubei University, Peng He Hubei University, Fuchen Ma Tsinghua University, Yuanliang Chen Tsinghua University, Shuoshuo Duan Shuimu Yulin Technology Co., Ltd, Yiyuan Bai Shuimu Yulin Technology Co., Ltd, Yu Jiang Tsinghua University | ||
14:40 10mTalk | ARG: Testing Query Rewriters via Abstract Rule Guided Fuzzing Research Papers Dawei Li Beihang University, Yuxiao Guo Beihang University, Qifan Liu Beihang University, Jie Liang Beihang University, Zhiyong Wu Tsinghua University, China, Jingzhou Fu School of Software, Tsinghua University, Chi Zhang Tsinghua University, Yu Jiang Tsinghua University | ||
14:50 10mTalk | Algernon: A Flag-Guided Hybrid Fuzzer for Unlocking Hidden Program Paths Research Papers Peng Deng Fudan University, Lei Zhang Fudan University, Jingqi Long Fudan University, Wenzheng Hong Independent, Zhemin Yang Fudan University, Yuan Zhang Fudan University, Donglai Zhu Fudan University, Min Yang Fudan University | ||
15:00 10mTalk | Interleaved Learning and Exploration: A Self-Adaptive Fuzz Testing Framework for MLIR Research Papers Zeyu Sun Institute of Software, Chinese Academy of Sciences, Jingjing Liang East China Normal University, Weiyi Wang Institute of Software, Chinese Academy of Sciences, Chenyao Suo Tianjin University, Junjie Chen Tianjin University, Fanjiang Xu Institute of Software at Chinese Academy of Sciences | ||
15:10 10mTalk | WingMuzz: Blackbox Testing of IoT Protocols via Two-dimensional Fuzzing Schedule Research Papers Xiaogang Zhu The University of Adelaide, Enze Dai Tsinghua University, Xiaotao Feng 360 Vulnerability Research Institute, Shaohua Wang Central University of Finance and Economics, Xin Xia Zhejiang University, Sheng Wen Swinburne University of Technology, Kwok-Yan Lam Nanyang Technological University, Singapore, Yang Xiang Digital Research & Innovation Capability Platform, Swinburne University of Technology | ||
15:20 10mTalk | Advanced White-Box Heuristics for Search-Based Fuzzing of REST APIs Journal-First Andrea Arcuri Kristiania University College and Oslo Metropolitan University, Man Zhang Beihang University, China, Juan Pablo Galeotti University of Buenos Aires | ||