As one of the most successful and effective software testing techniques in recent years, fuzz testing has uncovered numerous bugs and vulnerabilities in modern software, including network protocol software. In contrast to other fuzzing targets, network protocol software exhibits its distinct characteristics and challenges, introducing a plethora of research questions that need to be addressed in the design and implementation of network protocol fuzzers. While some research work has evaluated and systematized the knowledge of general fuzzing techniques at a high level, there is a lack of similar analysis and summarization for fuzzing research specific to network protocols. This paper offers a comprehensive exposition of network protocol software's fuzzing-related features and conducts a systematic review of some representative advancements in network protocol fuzzing since its inception. We summarize state-of-the-art strategies and solutions in various aspects, propose a unified protocol fuzzing process model, and introduce the techniques involved in each stage of the model. At the same time, this paper also summarizes the promising research directions in the landscape of protocol fuzzing to foster exploration within the community for more efficient and intelligent modern network protocol fuzzing techniques.
翻译:作为近年来最成功且高效的软件测试技术之一,模糊测试已发现现代软件(包括网络协议软件)中的大量缺陷与漏洞。与其他模糊测试目标相比,网络协议软件具有其独特的特性和挑战,在网络协议模糊器的设计与实现中引入了一系列亟待解决的研究问题。尽管已有研究工作从宏观层面评估并系统化了通用模糊测试技术的知识体系,但针对网络协议特定领域的模糊测试研究尚缺乏类似的分析与总结。本文全面阐述了网络协议软件与模糊测试相关的特性,系统梳理了自网络协议模糊测试兴起以来具有代表性的研究进展。我们从多个维度总结了当前最先进的策略与解决方案,提出了统一的协议模糊测试流程模型,并介绍了该模型各阶段涉及的技术。同时,本文还总结了协议模糊测试领域具有前景的研究方向,以推动社区探索更高效、更智能的现代网络协议模糊测试技术。