Chinese Journal of Network and Information Security ›› 2024, Vol. 10 ›› Issue (1): 1-21.doi: 10.11959/j.issn.2096-109x.2024001

• Comprehensive Review •    

Survey of evolutionary kernel fuzzing

Yan SHI1,2,3, Weizhong QIANG1,2,3, Deqing ZOU1,2,3, Hai JIN1,4   

  1. 1 National Engineering Research Center for Big Data Technology and System Services Computing Technology and System Lab, Wuhan 430074, China
    2 Hubei Key Laboratory of Distributed System Security, Wuhan 430074, China
    3 School of Cyber Science and Engineering, Huazhong University of Science and Technology, Wuhan 430074, China
    4 School of Computer Science and Engineering, Huazhong University of Science and Technology, Wuhan 430074, China
  • Revised:2023-08-16 Online:2024-02-01 Published:2024-02-01
  • Supported by:
    The National Natural Science Foundation of China(62272181);The Joint Funds of the National Natural Science Foundation of China(U1936211)

Abstract:

Fuzzing is a technique that was used to detect potential vulnerabilities and errors in software or systems by generating random, abnormal, or invalid test cases.When applying fuzzing to the kernel, more complex and challenging obstacles were encountered compared to user-space applications.The kernel, being a highly intricate software system, consists of numerous interconnected modules, subsystems, and device drivers, which presented challenges such as a massive codebase, complex interfaces, and runtime uncertainty.Traditional fuzzing methods could only generate inputs that simply satisfied interface specifications and explicit call dependencies, making it difficult to thoroughly explore the kernel.In contrast, evolutionary kernel fuzzing employed heuristic evolutionary strategies to dynamically adjust the generation and selection of test cases, guided by feedback mechanisms.This iterative process aimed to generate higher-quality test cases.Existing work on evolutionary kernel fuzzing was examined.The concept of evolutionary kernel fuzzing was explained, and its general framework was summarized.The existing work on evolutionary kernel fuzzing was classified and compared based on the type of feedback mechanism utilized.The principles of how feedback mechanisms guided evolution were analyzed from the perspectives of collecting, analyzing, and utilizing runtime information.Additionally, the development direction of evolutionary kernel fuzzing was discussed.

Key words: kernel, fuzzing, evolutionary, feedback

CLC Number: 

No Suggested Reading articles found!