摘要

在工业控制、军事通信、金融信息等创新型网络中,大量未知(私有或半私有)协议被广泛采用.对通信协议及其实现进行严格的测试是确保网络系统安全性的重要手段,现有测试手段与方法大多只能针对已知协议进行,未知协议的广泛采用对协议测试提出了挑战.本文提出了针对未知协议的逆向分析与自动化测试方法,其基本思想是基于对协议流量的逆向分析,识别出协议特征,动态生成多维测试数据,自动监控被测系统的运行状态,获得准确的测试结果,为系统安全可靠运行提供依据.具体贡献包括:(1)自动化模糊测试框架;(2)基于协议特征库的逆向分析方法;(3)基于多维变异的测试数据生成方法;(4)基于主动探测的测试执行与异常定位方法 .本文设计实现了自动化测试工具UPAFuzz,试验结果表明,UPAFuzz能够基于网络流量实现协议特征的自动识别,并自动生成海量模糊测试数据,对被测系统进行测试;在生成的测试数据量达到千万级时,UPAFuzz的内存占用率为现有模糊测试工具Boofuzz的50%,且其耗时仅为Boofuzz的10%,大大提升了测试执行效率.