This is the first post of a three-part series, where we will be delving into the intricacies of fuzzing µC/OS protocol stacks. The techniques I will discuss are universally applicable to various RTOS environments, though our focus will primarily be on µC/OS. I'll highlight some of the strategic code modifications I implemented across different µC/OS components. The objective is to streamline the process of developing a fuzzing harness tailored for the µC/HTTP-server. In the second installment of this series, I'll discuss a technique that I used for delivering multiple requests per fuzz test case. The third post will be like this one, as I'll describe the code modifications that I made with the aim of fuzzing the µC/TCP-IP stack. For a bit of context, µC/OS is an RTOS, or "Real-Time Operating System." An RTOS is a specialized operating system designed to manage hardware resources and host applications that need to run in systems where timing is critical, such as in embedded systems, medical devices, or industrial controls. RTOSes haven't been fuzzed as thoroughly as software that runs on desktop operating systems, primarily due to the complexities associated with setting up a fuzzing harness for these systems. Developing a harness for an RTOS requires more coding effort than what is typically required for a straightforward, single-line fuzzing harness used with desktop applications or libraries. Any vulnerability in an RTOS has the potential to affect many devices across…Read More
References
Back to Main