SyzDescribe: Principled, Automated, Static Generation of Syscall Descriptions for Kernel Drivers
ABSTRACT Fuzz testing operating system kernels has been effective overall in recent years. For example, syzkaller manages to find thousands of bugs in the Linux kernel since 2017. One necessary component of syzkaller is a collection of syscall descriptions that are often provided by human experts. However, to our knowledge, current syscall descriptions are largely written manually, which is both time-consuming and error-prone. It is especially challenging considering that there are many kernel drivers (for new hardware devices and beyond) that are continuously being developed and evolving over time. In this paper, we present a principled solution for generating syscall descriptions for Linux kernel drivers. At its core, we summarize and model the key invariants or programming conventions, extracted from the “contract” between the core kernel and drivers. This allows us to understand programmatically how a kernel driver is initialized and how its associated interfaces are constructed. With this insight, we have developed a solution in a tool called SyzDescribe that has been tested for over hundreds of kernel drivers. We show that the syscall descriptions produced by SyzDescribe are competitive to manually-curated ones, and much better than prior work (i.e., DIFUZE and KSG). Finally, we analyze the gap between our descriptions and the ground truth and point to future improvement opportunities. |
BIO
Yu Hao is a Computer Science Ph.D. candidate at University of California, Riverside. His research focuses on system security and program analysis. His research improves multiple program analysis and testing techniques (e.g., fuzzing, symbolic execution, static analysis and large language models), thereby combining the advantages of those techniques to systematically and automatically improve the security for real world software system (e.g., Linux kernel, LLMs, concurrent program). His research has led to multiple papers published in several prestigious conferences (e.g., S&P, CCS, NDSS, ICSE, FSE) and journal (e.g., TSE). The open source tools attract interest from and applied in academia, community and industry.