网络与信息安全学报 ›› 2024, Vol. 10 ›› Issue (1): 1-21.doi: 10.11959/j.issn.2096-109x.2024001

• 综述 •    

进化内核模糊测试研究综述

侍言1,2,3, 羌卫中1,2,3, 邹德清1,2,3, 金海1,4   

  1. 1 大数据技术与系统国家地方联合工程研究中心服务计算技术与系统教育部重点实验室,湖北 武汉 430074
    2 分布式系统安全湖北省重点实验室,湖北 武汉 430074
    3 华中科技大学网络空间安全学院,湖北 武汉 430074
    4 华中科技大学计算机科学与技术学院,湖北 武汉 430074
  • 修回日期:2023-08-16 出版日期:2024-02-01 发布日期:2024-02-01
  • 作者简介:侍言(1998− ),男,江苏宿迁人,华中科技大学硕士生,主要研究方向为内核模糊测试
    羌卫中(1977− ),男,江苏南通人,博士,华中科技大学教授、博士生导师,主要研究方向为系统安全及软件安全
    邹德清(1975− ),男,湖南湘潭人,华中科技大学教授、博士生导师,主要研究方向为云计算安全、网络攻防与漏洞检测、软件定义安全与主动防御
    金海(1966− ),男,上海人,华中科技大学教授、博士生导师,主要研究方向为计算机系统结构、虚拟化技术、集群计算
  • 基金资助:
    国家自然科学基金(62272181);国家通用技术基础研究联合基金(U1936211)

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

中图分类号: 

No Suggested Reading articles found!