面向工业控制协议的模糊测试方法研究.pdf
摘要
随着互联网的不断发展,人们对工控系统安全的研究也越来越深入。对网络协议模糊测
试来说,传统模糊测试技术存在许多问题,例如在无法掌握协议规范的前提下,模糊测试过
程就无法得到有效展开,倘若随机变异,模糊测试效率将会很低。生成对抗网络(Generative
AdversarialNetwork,GAN)在数据生成方面发挥着独特的作用,但应用在协议模糊测试上还
有许多缺点,例如传统GAN不能处理离散数据、模型收敛困难等。除此之外,当得到模糊测
试用例集后,如何实现在有限时间内提高发现漏洞的概率,也是难点之一。为了提高工控协
议模糊测试的效率,展开以下研究:
(1)设计基于改进排序生成对抗网络(RankingGenerativeAdversarialNetwork,RankGAN)
的工控协议模糊测试方法。针对传统GAN无法处理离散数据、模型有时无法收敛问题,本文
基于RankGAN网络模型,提出一种基于改进RankGAN的工控协议模糊测试用例生成方法。
该方法对原RankGAN网络的生成器进行批标准化处理,固定了输入数据的均值和方差,可
有效避免数据分布中极端情况的发生;在Ranker中加入了自注意力机制,可以进一步改善生
成数据的质量。经过实验证明最终可使模型快速收敛,最终得到的生成器可生成具有高接受
率和高多样性的测试用例集。
(2)设计基于简单循环单元(SimpleRecurrentUnits,SRU)与注意力机制的测试用例排
序方法。针对传统协议模糊测试方法存在无效执行时间较长、效率较低的问题,本文结合SRU
网络和注意力机制提出一种工控协议模糊测试用例排序方法。该方法通过学习有效测试用例
的数据格式,可以将测试用例集按照模型计算得出的分数进行排序,把最可能检测出漏洞的
测试用例优先执行。在时间要求严格或发送测试用例个数有限的情况下顺序执行排在前面的
测试用例,可提高漏洞检出率,以此进一步提高模糊测试效率。
(3)设计实现针对工控协议的模糊测试原型系统。针对传统工控协议模糊测试操作繁琐、
流程复杂的问题,本文设计并实现一个针对工控协议的模糊测试原型系统。该系统可实现工
控协议模糊测试的完整过程,首先经过研究点1得出相应协议的具有高接受率和高多样性的
测试用例集,再经过研究点2将得到的测试用例集按照打分结果进行排序,依次经过用例生
成和排序可提高工控协议模糊测试的整体效率,而且本系统操作简单,为测试人员分析测试
结果提供了便利。
关键词:工控协议,模糊测试,测试用例,深度学习
Abstract
WiththecontinuousdevelopmentoftheInternet,peoplesresearchonthesecurityofindustrial
controlsystemsisbecomingmoreandmorein-depth.ForFuzzingofnetworkprotocols,thereare
manyproblemswithtraditionalFuzzingtechnology.Forexample,theFuzzingprocesscannotbe
effectivelydevelopedwithoutmasteringtheprotocolspecifications.Ifrandomvariationoccurs,
Fuzzingwillbeinefficient.TheGenerativeadversarialnetwork(GAN)playsauniqueroleindata
generation,buttherearemanyshortcomingsintheapplicationofprotocolFuzzing,suchasthe
traditionalGANcannotdealwithdiscretedata,modelconvergenceisdifficult,andsoon.Inaddition,
whentheFuzzingcas