Tardis: Coverage-Guided Embedded Operating System Fuzzing
- 17 October 2022
- journal article
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
- Vol. 41 (11) , 4563-4574
Abstract
Embedded operating systems (Embedded OSs) are extensively deployed in many mission-critical industrial scenarios. Any defects within these systems may result in unacceptable losses. Therefore, it is imperative to develop tools to detect bugs within Embedded OSs, thus minimizing potential impacts on industrial infrastructures. Coverage-guided fuzzing is a vulnerability detection technique that has found numerous real-world vulnerabilities within both application programs as well as kernels. However, state-of-the-art kernel fuzzers, e.g., Syzkaller, mainly target general purpose-operating systems, such as Linux, macOS, and Windows, whereas Embedded OSs support is mostly lacking. In this article, we propose Tardis, the first Embedded OSs fuzzer capable of testing a wide selection of Embedded OSs while leveraging coverage feedback. Tardis conducts OS-agnostic code coverage collection and analysis, allowing developers and testers to test a wide range of Embedded OSs without significant manual efforts. We implemented and evaluated Tardis on several well-known Embedded OSs, such as UC/OS and FreeRTOS. Tardis can successfully perform fuzz testing on these kernels without significant manual effort for adaptation. By leveraging coverage feedback, Tardis can cover 51.32% more branches than black-box fuzzing on average on the respective Embedded OSs over 24 h. Tardis also found 17 previously unknown bugs among the target Embedded OSs.Keywords
Funding Information
- NSFC Program (62022046, 92167101, U1911401, 62021002, 62192730)
- National Key Research and Development Project (2019YFB1706203, 2021QY0604)
- MIIT Project
This publication has 15 references indexed in Scilit:
- Software documentation2020
- Krace: Data Race Fuzzing for Kernel File Systems2020
- HFL: Hybrid Fuzzing on the Linux Kernel2020
- Finding semantic bugs in file systems with an extensible fuzzing framework2019
- FUDGE: fuzz driver generation at scale2019
- Razzer: Finding Kernel Race Bugs through Fuzzing2019
- DIFUZE2017
- Testing autonomous cyber-physical systems using fuzzing features from convolutional neural networks2017
- ThreadSanitizer2009
- VxWorks: an interactive development environment and real-time kernel for Gmicro2002