引用格式:宗学军,隋一凡,王国刚,等.基于生成对抗网络的工控协议模糊测试研究[J].网络安全与数据治理,2024,43(7):13-20.
引言
工业控制系统已广泛应用于能源、市政、水利、铁路、石油石化等各个控制领域,是工业稳定运行不可或缺的重要组成部分。工业控制协议(Industrial Control Protocols,ICPs)是工业控制系统(Industrial Control System,ICS)中传递信息的通道,其安全性关系到整个系统的安全稳定运行。随着工业4.0[1]时代的到来,ICS中的设备也开始接入互联网。IT技术在提高生产力和带来便利性的同时,也给ICS行业带来了许多新的威胁。早期的工业控制系统处于物理隔离的状态,生产环境相对封闭。因此,在ICPs设计之初,更多地考虑协议的实时性、高效性和便利性,而没有考虑相关的网络安全风险,忽略了网络通信的基本安全属性。然而,随着工业控制系统大量使用基于IP的控制协议,或将传统的基于串行的协议迁移到TCP/IP的应用层,工业控制系统开始暴露于互联网。2010年的Stuxnet[2]、2014年的DrongFly[3]及其演变标志着工业控制协议已经是黑客主要的攻击对象之一。因此,需要对工业控制协议展开漏洞挖掘研究确保其安全性,挖掘潜在漏洞并及时修复,确保工业控制系统的安全运行。近几年国内外的一系列研究表明,模糊测试能够作为挖掘ICPs潜在威胁的有效手段。相较于其他漏洞挖掘方法如静态分析、动态分析、渗透测试,模糊测试具备自动化、高覆盖、成本低等优点。模糊测试最早由Milter[4]于20世纪90年代提出,起初应用于软件测试领域,后广泛应用于网络安全领域,通过模糊测试可以找到的一些漏洞类型,包括跨站点脚本、缓冲区溢出和拒绝服务等漏洞。模糊测试流程通过向目标提供非预期输入并监视异常结果来发现漏洞,模糊测试工作主要由测试用例生成、测试用例运行、目标程序监测、异常分析(如图1所示)四个阶段组成,模糊测试的核心在于测试用例的构建。现有面向ICPs的模糊测试工具大部分都依赖于协议语法语义,根据协议规范来指导测试用例的生成,比如以Peach[5]、AFL[6]、Sulley[7]为首的模糊器等,通过预设格式生成测试用例。然而大多数ICPs协议都是不公开的专有协议,而想了解协议的语法和语义就需要对ICPs通信的数据流跟踪和逆向分析,这种方式耗时费力且需要大量资源。随着神经网络被应用于处理工控过程的复杂流量[8-9],以及生成满足要求的模糊测试输入,逐渐摆脱对协议规范的依赖。为了构建高效的测试用例,赖英旭等[10]使用循环神经网络(RNN)学习协议规范,提出了反样本的测试用例生成方法,并对Modbus/TCP做了实验,提高测试用例的接受率;赵辉等[11]提出了一种称为SeqFuzzer的模糊测试框架,该框架采用长短期记忆网络LSTM作为Seq2Seq的编码器和解码器,能够处理有状态的时间特征,并对EhterCAT协议进行了测试,发现了几个漏洞;宁博伟等[12]基于无监督学习和深度神经网络,将模糊测试与协议逆向工程结合,使用投票专家算法推断协议边界,结合具有注意力机制的双向长短期记忆网络提取格式和语义特征;其中尤其以结合生成对抗网络(GAN)的模糊测试表现最为出色,由于生成对抗网络在图像生成领域中出色的学习能力,且生成器和鉴别器的组成结构,让胡志成等[13]使用RNN、LSTM作为生成对抗网络的生成器,卷积神经网络(CNN)作为鉴别器,提出了一种自动化智能模糊测试框架GANFuzz。此外,与GAN相关的优化方法如SeqGAN等[14]也与ICPs模糊测试结合。目前大多数研究工作倾向于将神经网络与模糊测试结合,构建改进的模糊测试框架,然而上述方法太过于依赖单一神经网络,缺少对工控协议的特殊考虑和针对性的功能设计,缺少多种工控协议的能力。本文提出一种将改进的生成对抗网络WGAN-GP(Wasserstein Generative Adversarial Network with Gradient Penalty)应用于模糊测试用例生成的方法,结合统计语言概率模型N-gram修正训练结果,在上述基础上设计了面向多种ICPs的通用模糊测试框架GPFuzz。实验表明,该框架在多个评价指标上优于其他方法,为工业控制系统提供一种高效、通用的安全性评估方法,提升系统整体的安全性。
本文详细内容请下载:
http://www.chinaaet.com/resource/share/2000006086
作者信息:
宗学军1,2,隋一凡1,2,王国刚1,2,宁博伟2,3,何戡1,2,连莲1,2,孙逸菲1,2
(1.沈阳化工大学信息工程学院,辽宁沈阳110142;
2.辽宁省石油化工行业信息安全重点实验室,辽宁沈阳110142;
3.沈阳工业大学人工智能学院,辽宁沈阳110870)