论文部分内容阅读
随着互联网时代的发展,网络安全问题的重要性与日剧增,而网络协议作为互联网中的基础设施,其安全性尤为重要。漏洞挖掘技术能够提前发现潜在安全漏洞。主动挖掘漏洞,防范于未然,是维持网络安全重要手段。在针对网络协议的漏洞挖掘方法中,模糊测试是如今最常用也最有效的方法。而模糊测试中测试用例的有效性是发现协议或系统未知漏洞的关键。为了提供有效的测试用例,研究者通常会学习并且分析某待测网络协议的格式规范,然后基于网络协议规范的先验知识生成测试用例,对具体的网络协议实现进行模糊测试。然而对各种不同协议的人工分析需要耗费一定的人力和时间,这也在一定程度上降低了网络协议漏洞挖掘的效率。因此,本文设计了一种基于模糊测试的网络协议漏洞挖掘方法。该方法适用于各种网络协议源码的模糊测试,并通过深度学习方法省略了传统网络协议漏洞挖掘过程中的人工对网络协议的分析。本文工作主要包含以下内容:(1)针对测试用例的有效性问题,提出了一种基于深度学习的用例优选模型与方法,该方法利用深度学习机制替代了对协议先验知识获取的过程,并且使用通用性的建模方式,从而适用于多种网络协议测试用例的生成。(2)针对网络协议的模糊测试问题,改进了AFL(American Fuzz Lop)模糊测试工具,并且结合用例优选方法,实现了对网络协议的模糊测试,并且相比原来的AFL工具提高了模糊测试的效率。(3)针对网络协议的多状态模糊测试问题,定义了一种多状态模糊测试辅助文件(Auxiliary Xml File,AXF)来对模糊测试过程进行指导,并且结合Netzob及本文的最小类间距离聚类方法获取协议状态,从而实现AXF的自动生成。相比同类模糊测试工具的配置文件,该AXF文件更简洁,且无需依赖人工配置。(4)结合AXF文件设计了一种多状态模糊测试算法,该算法能够对被测协议的多个状态进行模糊测试,从而实现了从单状态覆盖到多状态覆盖的提升。本文已针对上述方法实现了用于网络协议的模糊测试系统,并且通过多种协议的开源实现对其进行了验证,验证结果显示本文的模糊测试方法自动化程度高,效率高,应用范围广,能够解决通用性网络协议漏洞挖掘问题。