近期,国防科技大学网络空间安全系在网络协议漏洞挖掘方向取得新成果。团队深耕程序动态分析技术,以网络协议软件脆弱性分析为发力点,开展动态符号执行技术辅助协议灰盒模糊测试技术研究,一项最新工作“基于自动化协议格式推断增强协议灰盒测试技术”被网络安全领域国际知名会议DSC 2022接收,突破了传统网络协议灰盒测试缺乏对输入关键格式感知的瓶颈。DSC是国际网络空间数据科学大会,由IEEE、中国工程院、中国中文信息学会主办。
题 目
NAFuzzer: Augmenting Network Protocol Fuzzers via Automatic Template and Seed Generation
作 者
Ke Yan, Bo Yu, Yong Tang, Xiangdong Kong, Chen Chen, Jin Lei
主要内容
模糊测试是发现漏洞的最流行的软件分析技术之一。与普通的终端软件不同,与服务器的交互必须符合其规范,以执行更多的功能。然而,如果没有明确定义的输入信息格式,传统模糊测试的变异策略极易破坏输入报文的关键语法结构,这使得模糊测试难以探索程序的深层分支,发现隐层的漏洞。此外,通过人工提取规范通常是劳动密集的。如何使现有协议模糊测试感知输入结构,并且进行维持结构的变异成为亟待解决的关键问题。
国防科大网安的硕士生燕珂、孔祥东、陈晨和雷进在国防科大唐勇研究员和喻波副研究员的联合指导下,借鉴“Learn From Fuzz”思想,充分利用模糊测试本身的信息,提出了一种格式感知的网络协议软件灰盒模糊测试框架NAFuzzer,如图一所示,NAFuzzer使用基于重放的动态符号分析来收集消息处理过程的约束,然后运行循环体-映射算法进行协议格式推断
图一 协议格式自动推断流程
为了充分利用推断的协议格式信息,研究团队提出了一种针对不同类型协议模糊测试引擎的测试优化方案:一方面,NAFuzzer通过消息结构确定头部区域的位置,使用字段的边界信息筛选上一阶段收集的约束信息,通过头部同位置信息替换构造新的种子;另一方面,NAFuzzer可以根据测试目标的特点灵活选用优化方法。如图二所示,方案扩展AFLSmart作为NAFuzzer测试无状态协议的测试引擎,因为其变异策略能够充分使用推断的格式模板信息,此外,AFLSmart所需结构描述文件可以通过格式学习环节自动生成,这是易于扩展的;方案扩展了AFLNET作为有状态协议测试引擎,借助AFL类工具的回调函数postprocess机制,在变异过程中自动调用基于消息模板自动生成格式检验库维持关键语法结构,该机制同样是可扩展的。
图二 协议测试优化框架
研究团队在6个真实世界的协议(FTP、SNMP、RTSP、DNS、SMTP、HTTP)软件对NAFuzzer进行评估,实验结果显示,NAFuzzer可以提取6个协议软件的消息格式,字段识别准确率接近90%。在模糊测试中,与最先进的协议灰盒测试工具相比,它实现了更高的分支覆盖率(最高27.3%)和发现了更多路径(最高38.2%),而且没有任何人工参与。
原文始发于微信公众号(ipasslab):基于自动化协议格式推断增强协议灰盒测试技术