近日,“谛听”团队李文轩博士撰写的论文《ALOC: Attack-Aware by Utilizing the Adversarially Learned One-Class Classifier for SCADA System》被国际期刊《IEEE Internet of Things Journal》录用。(点击文后“阅读原文”可获取论文)
《IEEE Internet of Things Journal》是IEEE旗下的一本权威学术期刊,旨在促进不同领域的交叉融合与创新应用,其涵盖了传感器技术、嵌入式系统、通信与网络、数据分析与处理、安全与隐私等关键主题,该期刊以其高质量的学术论文和严格的审稿流程闻名,吸引了来自全球范围内的顶尖研究者和学者的投稿。其发表的论文通常具有创新性、前瞻性和实用性,为学术界和工业界提供了一个重要的交流平台,推动了物联网技术的快速发展与应用。
影响因子:
10.6
文章引用方式:
W. Li, Y. Yao, C. Sheng, N. Zhang and W. Yang, "ALOC: Attack-Aware by Utilizing the Adversarially Learned One-Class Classifier for SCADA System," in IEEE Internet of Things Journal, doi: 10.1109/JIOT.2024.3384437.
论文内容介绍
1 研究背景
面对工业SCADA系统中网络攻击种类的层出不穷,现有仅依赖先验知识的异常监测方法,难以发现异构工业场景中近乎合法的隐蔽攻击。尽管深度学习模型具备拟合复杂SCADA行为分布的能力,但在场景应用过程中仍然存在一些挑战。首先,目前现有大多数研究中非规范化的特征表征方式,直接影响检测模型在不同工业协议上的应用;其次,基于先验知识获取的训练特征,可能会无法捕获业务行为模式;最后,所设计检测模型的调参量较大,影响其在实际场景的具体应用,同时对检测到的异常行为没有攻击属性的判定。为了解决上述挑战,本文面向SCADA攻击构建了一个轻量化的无监督深度学习检测框架,该框架直接使用工业流量中少量字节信息构建正常基线,并结合所提出数据增强机制,提升了异构协议流中潜在未知攻击的检测能力。
2 关键技术
为了解决现有深度学习模型在SCADA攻击检测方面存在的应用挑战,构建了一个名为ALOC的无监督深度学习跨协议攻击检测框架,本文的主要贡献如下:
(1)提出了针对不同SCADA网络流量的规范化会话处理方法,代替早期依赖先验的特征提取,仅适用少量字节信息便能够表征重要的行为模式,以解决传统特征提取方法难以适配跨协议攻击检测方面的局限性。
(2)提出了一种基于会话的数据增强机制,利用双频率变换(FDT)后的频域信息与原始样本相结合,辅助检测框架掌握样本深层的操作模式,以便在多尺度高维空间中模型能够准确定义异常边界。
(3)提出一种基于深度学习的轻量化对抗检测方法,利用1D-CNN与DAE构建隐式的对抗网络GAN,同时结合不同的训练损失优化检测模型,以实现未知异常行为的有效检测,并对所检攻击进行属性分析。
(4)本文采用了两种SCADA工业场景下的三种网络流量数据集,进一步验证了所提方法在网络物理攻击上的检测能力,表明了所提方法在跨协议攻击检测中的普适性和易用性,最大程度上降低了先验知识对模型构建的干预程度。
3 方法介绍
整体框架
ALOC以“离线训练,在线检测”的模式进行构建,其主要由会话处理、数据增强和异常检测这三种实体模块构成。
会话处理:负责混合流量在特定协议上的包过滤、会话识别和自适应截断。
数据增强:负责会话信息中字节信息的转换、样本归一化以及数据增强操作。
异常检测:负责对正常输入样本进行基线模型构建,检测未知异常并分析其属性。
会话处理
本文所提出的会话处理模块由数据包过滤、会话识别和自适应截断三部分构成。
(1)数据包过滤:特定SCADA场景下使用Tshark工具对流经固定端口的协议流进行筛选。
(2)会话识别:借助SCADA网络流量固有的轮询特性以及五元组信息,对协议流进行包集合划分,根据时间戳长度和ACK标志对该集合细粒度处理,以满足模型训练的基本要求。
(3)自适应截断:通过对细粒度会话进行包截断(PT)和会话截断(ST),尽可能保留原始字节所覆盖的重要行为模式。其中,对每个数据包选取固定长度的字节信息,不满足所设定长度阈值时,需进行补零操作;对每个原始会话进行粒度分割,当前会话(包集合)中数据包数量适量时直接作为训练输入,这适用于短连接协议;反之则需要对其进行时间分割或者ACK分割,这更适用于长连接协议,同时不满足会话截断的既定数据包个数时,需要额外的补零操作。
数据增强机制
本文所提出的数据增强机制由字节转换、样本归一化和频域增强三部分构成。
(1)字节转换:对于任意的会话输入,将其从十六进制转换为十进制整数序列。
(2)样本归一化:为了优化模型性能,需要将当前会话输入映射至[0,1]区间。
(3)频域增强:结合小波变换对整数化后的会话样本,进行“时域-频域-时域”上的多尺度变换,以增强训练样本中潜在行为模式的尺度表征。具体过程如算法1所示,本文选取了两种小波类型作为双频域变换的实例,分别为haar和db3小波。算法1中的第1-17行实现了对当前会话输入在频域上的多尺度分析,进行逐层分解与重构后得到了频域和时域系数;通过在第21-22行的函数调用,实现了输入会话的双DFT变换,其核心目的是利用不同类型的小波变换来挖掘会话输入的高维模式;最终,会话输入与变换后的系数进行维度合并作为模型的训练样本输入。
异常检测模型
本文所提出的异常检测模型包含1D-CNNs、深度自编码器(DAE)和对抗网络GAN这三部分内容。
实质上,整个模型结构仅由1D-CNNs为核心的DAE组成,通过对DAE的拆分(编码器和解码器)、复制(两个解码器)和重组(形成两个DAE分别作为对抗网络的生成器G和判别器D),同时1D-CNNs被诸多研究证明了其更适用于捕获网络流量中字节之间的空间依赖关系,并且与其他复杂深度学习模型相比,自编码器(AE)具备轻量化的特性,更适合于资源受限的工业控制网络中的异常检测任务。整个对抗训练与检测过程如算法2所示,首先,在训练过程中通过不断地迭代优化,每个DAE尽可能地学习样本分布;其次,在损失函数的约束下,D通过对G的输出与输入样本之间的不断区分,进而提高D对真伪样本的判别能力,即能够判别真实样本和重构样本之间的差异性。对应训练过程中优化目标如下所示。
对应公式(3),分别可以得到关于G和D的优化目标,如公式(4)所示。
对于对抗损失的评估目标L,本文选取了欧式距离、单尺度损失和多尺度损失这三种目标损失函数,其定义如下:
上述公式中参数设定请读者参照原文,这里并不过多赘述。训练过程对应算法2中的第1-12行,模型在参数初始化之后,经过持续的对抗训练使得DAE具备了拟合目标会话序列样本分布的能力,同时对应第13-23行为检测阶段,异常分数的定义为重构误差和判别误差分别加权之后再加和。对于检测阈值的定义,所有会话异常评分的最大值被作为当前SCADA网络中数据包的异常得分,同时当输入序列的评分大于该阈值时,模型将判定其为异常,反之则正常。
4 实验评估
本文选取两种工业SCADA场景(电力控制网络和采矿精炼厂)下的3种协议流数据集,分别为Modbus/TCP、S7comm和DNP3,对所提出的ALOC检测框架进行评估。
探究会话处理对ALOC性能的影响
本实验在会话和数据包层面,评估了截断尺度对检测性能的影响,以Modbus/TCP协议流为例,下图中分别对应PT和ST,其中横坐标表示攻击类型,纵坐标表示性能指标。一般地,在真实SCADA通信过程中,由69个数据包(20个字节)组成的会话序列便足以描述整个会话输入的关键模式。因此,该部分实验以6个数据包(20个字节)为基础进行消融实验。对于PT部分,实验从三个角度进行设置,分别为:1)仅使用IT头部的原始字节表征会话,如t20;2)使用传输数据段的部分或全部字节表征会话,如p17、p20和p22等;3)上述均用作表征会话,如tp37。对于ST部分,选用了会话的前10个数据包作为性能比较。通常,数据包中的每两个字节对应着工业控制过程的一个实体指令,那么在实验过程也是按照双字节递增的趋势,考虑到信息量增加所带来的影响。在p17p28之间,性能指标出现波动,这主要是由于截断和零填充操作之间的不平衡所导致,同时随着字节数的增加,检测性能便恢复平稳。对于攻击(4),从p28开始,过多的零填充已经影响到模型的检测性能,相应的攻击(1)、(3)、(5)分别在p40、p50和p60处开始由于相同的原因引发性能下降。对于ST而言,在pkt1~pkt5之间,随着数据包所包含信息量的增大,检测性能也达到最优,但从pkt7开始,攻击(1)和(2)由于过多的零填充导致检测性能下降。
结论:证明了实验前所述由6~9个数据包(20个字节)组成的会话序列便足以描述整个会话输入的关键模式,同时说明过多的零填充会影响直接使用原始字节进行异常检测的模型性能,应该根据协议流中的载荷大小合理填充。
探究输入表征形式对ALOC性能的影响
本实验针对不同的训练输入形式,探究其对检测性能的影响。将模型输入定义为三种形式:1)仅用原始字节构成的会话输入进行拟合(RTS);2)仅采用双FDT后的系数作为模型输入(MSS);3)上述二者进行维度拼接后作为输入(RTS+MSS)。这里考虑了短连接Modbus/TCP和长连接S7comm两种数据集,那么对于Modbus/TCP协议下的攻击(1)~(4)而言,显然MSS对检测性能产生了积极作用,同时RTS+MSS的输入形式能够避免不必要的漏报和误报现象。尽管对于攻击(5)而言,MSS没有产生正作用,但附加的尺度信息并没有对模型性能造成严重干扰。对于长连接协议S7comm,ACK的会话分割粒度更为合理,相比时间分割表现出更好的检测性能。
结论:仅使用原始字节作为训练输入,在一定程度上模型只能学到会话输入的浅层模式表征,而引入双FDT后可以使能模型学到更重要的行为模式,进而提高模型对异常的可分离度。
探究损失函数设定对ALOC性能的影响
本实验探究了不同损失函数对模型检测性能的影响及其与攻击属性的关系。欧氏距离L2关注于原始字节中逐点差异性的度量,单尺度Lssim损失更侧重于结构关系之间的差异性,多尺度Lmssim损失用作约束模型学习多尺度的复杂行为分布。下图分别为Modbus/TCP和S7comm数据集在不同损失类型下的性能评估,对于Modbus/TCP,攻击(5)在欧式距离和多尺度损失的约束下分别取得了零误报和较低误报,而产生这种误报的原因在于后者仅对协议流中存在的网络攻击较为敏感,而一些带有物理特性的攻击容易被忽视。对于S7comm,单尺度和多尺度损失难以准确地检测出攻击,这主要是由于物理性质的攻击在结构关系上变化的并不明显,从而导致大量的漏报和误报。L2损失则更适用于这类攻击的检测,主要是因为S7comm中存在的恶意数据都是破坏现场设备运行的物理攻击,直接操纵设备实体的状态阈值。当这些攻击映射到流量会话时,只反映单个字节或几个字节的数值变化,没有明显的结构变化。
结论:对于协议流存在的网络性质攻击,L2和多尺度损失更能提升模型的检测性能;而对于存在的物理性质攻击,L2则更适合。
ALOC与SOTA方法在检测性能上的结果比较
本部分选取了3种SCADA流量数据集进行对比,证明所提模型性能的优越性。本文选取了两类方法作为对比,分别为Shallow Baselines和Deep Baselines,并给出模型在准确率、召回率以及F1分数上的指标度量。
/ ALOC与Shallow Baselines的性能比较 /
/ ALOC与Deep Baselines的性能比较 /
结论:在ALOC与主流基线方法的性能对比中可以看出,所提出的ALOC检测框架具备着较好的检测性能与泛化能力,同时证明该方法能够支持跨SCADA场景下的协议流攻击检测。
5 工程应用示例
工业4.0时代下的SCADA网络面临着越来越多的安全挑战,尤其是各种协议流中存在的可被利用的脆弱性,往往攻击者操纵协议载荷中的关键信息指令和重要参数,渗透至SCADA系统并对关键资产设备造成不可逆转的破坏,造成重大的经济损失。因此,迫切需要对SCADA协议流中恶意活动的检测进行研究。此类研究对于确保SCADA系统的稳健和安全运行至关重要,从而保护工业生产过程。
如上图所示,本文仅关注位于现场控制层的SCADA系统,其所示PLC与各种系统和设备(如Dev1, Dev2等)接口,并通过工业交换机聚合到数据收集器。操作员站在其管控范围内,根据所收集过程信息对现场设备进行监控,从而形成一个工业数采环网。对于SCADA系统的攻击通常从外部网络逐层渗透到底层控制设备,恶意行为表现为工业协议指纹(蓝色线表示的区域)中的某些控制字段。因此,本文使用正常协议信息作为训练输入,构建正常行为基线模型来评估潜在的恶意行为。考虑到场景资源的约束和现场操作人员的可用性需求,调优参数仅包含基本参数(如载荷大小、会话长度、特定标志等)。这种方法最小化了调整模型内部参数的需要。在实际检测阶段,针对具体业务块对应的每种协议类型分别进行训练和模型部署。这也确保了对整个SCADA系统的攻击行为的检测。此外,每个节点(红叉标记的挂载节点)的检测结果可以提供给相关安全人员进行后续的综合分析,帮助他们推断攻击者的真实意图。
第一作者:李文轩
东北大学博士研究生,主要从事工控网络风险评估,网络威胁智能分析。
指导教师:姚羽
东北大学教授,“谛听”团队创始人,复杂网络系统安全保障技术教育部工程研究中心主任。