信息网络安全 ›› 2024, Vol. 24 ›› Issue (1): 121-132.doi: 10.3969/j.issn.1671-1122.2024.01.012

• 理论研究 • 上一篇    下一篇

AFLNeTrans:状态间关系感知的网络协议模糊测试

洪玄泉, 贾鹏(), 刘嘉勇   

  1. 四川大学网络空间安全学院,成都 610065
  • 收稿日期:2023-09-04 出版日期:2024-01-10 发布日期:2024-01-24
  • 通讯作者: 贾鹏 E-mail:pengjia@scu.edu.cn
  • 作者简介:洪玄泉(1999—),男,广西,硕士研究生,主要研究方向为二进制安全|贾鹏(1988—),男,河南,副教授,博士,CCF会员,主要研究方向为漏洞挖掘和软件动静态分析|刘嘉勇(1962—),男,四川,教授,博士,主要研究方向为网络应用安全和信息内容安全
  • 基金资助:
    国家重点研发计划(2021YFB3101803)

AFLNeTrans: Fuzzing of Protocols with State Relationship Awareness

HONG Xuanquan, JIA Peng(), LIU Jiayong   

  1. School of Cyber Science and Engineering, Sichuan University, Chengdu 610065, China
  • Received:2023-09-04 Online:2024-01-10 Published:2024-01-24
  • Contact: JIA Peng E-mail:pengjia@scu.edu.cn

摘要:

网络协议是现代通信系统中不可缺少的部分,其实现程序的安全性不容忽视。模糊测试已经成为现代漏洞挖掘的主流方式,并在软件安全领域中取得了较大的成功。网络协议模糊测试通常指对网络协议实现程序进行模糊测试,然而传统模糊测试在此类程序的测试上仍存在一些问题。首先,由于网络协议实现程序中不同状态对应不同代码,传统灰盒模糊测试中使用的代码覆盖不能表示网络协议实现程序的内部状态。其次现有灰盒协议模糊器中的状态引导机制依赖于代码覆盖率,不能很好地挖掘网络协议实现程序的状态间关系。对此,文章提出了一种由协议状态间关系和程序代码覆盖率共同引导模糊测试过程从而提升模糊测试效果的模糊器AFLNeTrans,其利用状态间关系作为主要引导机制,引导模糊测试快速探索协议实现程序更多的状态空间,并在Profuzzbench上对其进行了评估实验。实验结果表明,AFLNeTrans在发现状态转移数量上有较明显的提升,并且在代码覆盖率和unique_crash数量上相比现有工具也有提升。

关键词: 软件测试, 模糊测试, 网络协议, 状态引导

Abstract:

Network protocols are essential components of modern communication systems, and the security testing of their implementation programs is of great importance. Fuzzing has become the mainstream method for modern vulnerability discovery, and has achieved great success in the field of software security. Traditional fuzzing still has some problems in testing network protocol implementation programs. First, since different states in network protocol implementation programs correspond to different codes, the code coverage used in traditional gray-box fuzzing cannot accurately represent the internal state of network protocol implementation programs. Second, the state guidance mechanism in existing gray-box network protocol fuzzers depends on code coverage, which cannot effectively mine the state relationships in those programs. To address the above problems, this paper proposed AFLNeTrans, a fuzzer that guides the fuzzing process by both protocol state relationships and program code coverage to improve the fuzzing effect. AFLNeTrans used state relationships as the main guidance mechanism to guide fuzzing to quickly explore more state space of network protocol implementation programs. AFLNeTrans was evaluated on a benchmark of well-known protocol fuzzers. Experimental results show that AFLNeTrans has a significant increase in the number of state transitions found, and also has an improvement in code coverage and unique_crash number compared to existing tools.

Key words: software test, fuzzing, network protocol, state guide

中图分类号: