本技术涉及一种基于深度学习的协议模糊测试优化方法,属于网络技术领域。该方法包括:采集没有优化之前,Boofuzz在模糊测试过程中采集的数据,并按照服务器响应类型将具有不同响应的报文数据进行分类;通过协议逆向模块初步识别协议的动态字段、静态字段以及长度字段,并在Boofuzz框架中通过识别出的信息构造请求,设置会话消息;使用Boofuzz框架中的变异规则,根据协议逆向模块推断出的字段生成测试用例;构建优选器模型,初始化模型参数;通过SSA算法调整优化模型超参数,然后基于最优超参数进行模型训练;对生成的测试用例进行特征提取,获取输入特征;使用所述优选器模型对测试用例进行有效性预测。
背景技术
在网络协议漏洞挖掘方法中,模糊测试是当前最常用、最有效的技术。工具如SPIKE、Peach和Boofuzz等,都是基于此技术开发的。模糊测试的核心是向目标输入不同的测试用例,监测其响应以发现潜在漏洞,因此,测试用例的质量直接影响测试效果和效率。许多协议模糊测试工具,如Boofuzz和Peach,都要求用户定义协议格式。未定义协议格式的情况下,这些工具只能基于字节进行变异,但这种方式会产生许多无效变异,尤其在缺少上下文信息时,可能无法触发有效的漏洞。而逐字节变异特别耗费计算资源,容易生成大量冗余测试用例,这在处理复杂协议时尤为突出,且会导致测试路径爆炸。模糊测试还面临大量约束条件,这些条件来自协议字段的依赖、状态转换等复杂逻辑,增加了解决的难度和耗时。
综上,协议逆向工程在模糊测试工具中具有重要作用,它通过数据包分析提取协议结构和字段信息,有助于提高测试的准确性和有效性,特别是在处理复杂或闭源协议时。当前的序列比对算法多用于DNA序列或文本字符串的比对,通常不考虑字符位置的偏差,这也是一个限制。
此外,人工智能技术在模糊测试中的主要作用是生成和筛选测试用例。通过遗传算法和神经网络,可自动过滤掉无效或低优先级的测试用例,提高测试效率和覆盖率。然而,当前模糊测试中的深度学习模型通常较简单,准确率有待提高。
实现思路