论文摘要
随着网络的逐渐普及,网络安全问题成为关乎网络服务与通信成败的日益严峻的问题,随之相对应的网络安全测试也应运而生,而网络服务大部分由基于网络协议的服务软件提供,所以针对网络协议软件的网络安全测试分析方法也逐步涌现,但传统的分析方法有其效率的低下和发现缺陷的先天不足。近年来,兴起的模糊测试方法逐步受到人们的青睐,模糊测试是一种动态的基于黑白盒间的测试分析方法,针对网络协议的模糊测试称之为网络协议模糊测试,它在分析网络服务软件方面有着独到的优势。传统的网络协议模糊测试在处理输入数据方面有着效率不高的缺点,本文在此基础上提出了基于权值衡量的网络协议模糊测试,既对输入的测试数据在动态调试分析后进行加权处理,使模糊数据在测试软件安全缺陷上更加有针对性;并实现了对整个模糊测试过程的自动化处理。本文在处理网络协议模糊测试数据上,采用了基于块的协议描述语言对网络协议格式进行描述,解决了协议数据包中需动态计算数据部分长度的问题,产生的模糊测试数据真实有效。并建立模糊数据参数库,可以产生大量相对有效的测试数据。基于参数权值衡量技术对模糊数据进行动态的调试跟踪,加权处理然后进行模糊测试,这样降低了测试数据量,提高分析效率。Linux平台上,实现的自动化模糊测试处理流程包括以下技术模块—协议解析及脚本处理模块、调试跟踪加权测试模块和测试数据产生及发送模块。协议解析及脚本处理模块对网络协议进行自动化解析并自动撰写测试脚本;调试跟踪加权测试模块是让含调试跟踪器的目标程序与测试数据发送端模糊器建立连接,对原始输入数据参数进行跟踪评估,然后对数据流中的经目标程序不安全函数调用的不同数据进行加权区别处理,可以实现输入参数的有效选择;测试数据产生发送模块是测试的最直接部分,用来解析先前脚本,产生并向目标软件发送测试数据等,本文中我们对以上各技术模块进行了具体描述,并给出了C代码实现,有一定的实用性与高效性。