DO-IDS汉语版

摘要

随着智能工厂的空前发展,工业网络中需要更加频繁更改网络流量的转发策略。软件定义网络具有高灵活性和可编程性的优点,可动态地管理网络流量转发策略,它对于智能工业网络具有很可观的发展前景。然而,软件定义工业网络十分容易受到网络攻击,网络攻击会导致工业生产效率降低甚至引起工业事故。本文提出一个基于深度学习的单类入侵检测方案(DO-IDS)来提高工业网络的安全性。首先,DO-IDS 定期抽取工业网络流量的流统计信息并据此生成网络状态特征;其次,我们利用一种基于深度学习的降维方法来过滤上述特征中的冗余特征;此外,我们设计一种基于深度学习的单类检测器来计算网络特征的异常打分;最后,我们对所提出的检测方案进行了模拟实验,结果表明 DO-IDS 可以高效率且高准确率地检测出异常流量。

  • 关键字:工业网络安全;入侵检测;单类深度学习;软件定义工业网络(SDIN)

介绍

智能工厂的快速发展和革新极大地提高了工厂的生产效率并降低了生产代价。越来越多的工厂模式(如私人定制、远程控制、数据孪生等)需要频繁地自定义或更改网络流量转发策略,这些功能需要一个灵活的工业网络架构才能实现。然而,传统网络的转发功能函数是直接实现在硬件中,这种实现方式使得网络管理员需要手动对网络设备进行配置才可更改流量转发策略。

软件定义网络解偶了网络的数据平面和控制平面,在逻辑上集中式且可编程的控制平面使得SDN具有极大的灵活性。数据平面只需要根据从控制平面处接收到的指令转发网络流量即可,这种简单的功能可以极大地降低数据平面的硬件成本。因此对于智能工厂而言,软件定义工业网络(SDIN)具有很大的发展潜力。

工业网络中工业设备间的安全通信对于构建安全的工业环境,定制生产策略和多生产线的同步都至关重要。然而,软件定义工业网络的这种架构十分容易受到网络攻击。中心化的控制平面面临着单点失效的问题,数据平面与控制平面的通信信道可能会遭受分布式拒绝服务攻击和中间人攻击。此外,传统网络所面临的网络攻击,如 Probing, R2I, U2R, Trojan, Worm 等也均会在软件定义工业网络环境中出现,这些网络攻击会降低工业生产效率,甚至会导致严重的工业事故。例如,美国的燃气公司曾在2021年的5月遭受过一次网络攻击,该攻击导致燃气管道关闭了数日;世界上最大的钢铁生产商也曾遭受过网络攻击并导致了北美区域的钢铁产量下降。

入侵检测技术能够监控网络状态,识别异常网络流量和网络行为,并在网络异常发生时及时警告网络管理员从而降低由网络攻击所造成的损失。然而,在软件定义工业网络环境中的进行入侵检测仍然存在着一些挑战。首先,所有的智能功能都存在于逻辑上集中的控制器中,若要在当前的高带宽网络环境中对每一个数据包进行检查必定会给控制器带来极大的负担,因此入侵检测技术应足够地轻量级以减少控制器的负担。其次,网络攻击虽然无时无刻不在网络中发生,但网络中的正常流量仍然占据了绝大多数,当前网络环境中流量极大,因此手动标识每个数据包是否正常十分地不可行。再次,网络流量的分布模式随网络设备和网络应用的变化而变化,因此当前已存在的检测模型和数据集会逐渐过时,并造成入侵检测的高误报率。最后,控制器所收集的信息中,冗余和无用信息会极大地降低入侵检测模型的检测性能。

为提高工业网络的安全性并克服以上挑战,本文提出了一种基于深度学习的单类入侵检测机制(DO-IDS)来识别软件定义工业网络环境的安全。DO-IDS有三个模块组成:收集器(Collector),检测器(Detector)和防御器(Defender)。收集器负责定期从数据平面抽取网络流的特征信息。检测器负责过滤所抽取特征信息中的冗余信息,再利用基于长短期记忆网络的自编码器(LAE)将特征信息编码为固定长度的向量并计算该向量的异常分数。由 deep-SVDD 启发,我们提出了一种基于深度学习的单类检测算法来计算流量特征的异常分数。防御器会根据检测器所计算出的异常分数来选择合适的流量策略。本文贡献总结如下:

  1. 提出了一个基于深度学习的单类异常检测方案,该方案可有效地监控网络状态并检测网络中的异常行为从而提高工业网络安全性。
  2. 为克服当前无法获得有标签且最新训练数据集的问题,我们提出一种基于单类深度学习的异常发现算法,并提出针对该算法提出了三个优化:压缩,异常样本利用以及联合训练。
  3. 提出利用LAE来将所收集的网络流特征编码为固定长度的向量,从而过滤掉所收集特征信息的冗余信息并方便异常分数的计算。
  4. 对所提出的方法进行了模拟实验,实验结果表明相较于当前异常检测算法,本文提出的检测方案在不平衡数据集上能够取得很好的检测效果。

相关工作

近年来学者们提出了很多网络入侵和异常检测相关的研究工作,这些工作基本可分为基于熵的,基于机器学习的和基于深度学习的。在本部分我们对前人的针对网络入侵和异常检测相关的工作进行介绍。

基于熵的入侵检测

数据样本的熵值可以用来表示样本分布的随机性,熵值越高表示样本的分布越离散。文献[12]中提出了一种基于熵的轻量级 DDoS 泛洪攻击检测方法,该方法通过利用网络中的边缘交换机来收集网络流的统计信息从而达到检测的目的。文献[13]中提出一种基于联合熵的流量异常检测方法,该方法通过动态选择可疑网络数据包的属性并计算它们的联合熵来提高检测性能。然而,在基于熵的方法中,需要监控的网络数据包的属性需要由网络管理员手动指定,这大大降低了检测方法的易用性。

基于机器学习的入侵检测

机器学习技术十分擅长在超大数据集中找出数据的发展趋势和分布模式,且该过程自动进行不需要人为干预。此外,当我们将网络流量聚焦为流记录时,所需要收集的数据量会大大减少,这使得收集网络流记录并结合机器学习的异常检测方法越来越受欢迎[14]。文献[15]中提出在SDN环境中收集网络流特征信息,并用收集的信息训练有监督分类模型从而监控网络状态。文献[16]中提出使用受限波尔兹曼机将所收集的网络流特征信息转换为固定长度的向量并利用支持向量机算法对其进行异常检测。虽然有监督的分类算法分类正确率高,但收集有标签且当下未过时的网络流量数据样本十分困难。

基于深度学习的入侵检测

深度学习技术可以在大数据集中找出数据间的隐藏关系,这个优点使得该技术广受研究人员的偏爱[17][18]。文献[19]利用所收集的网络流统计信息来训练深度神经网络模型从而进行网络入侵检测。文献[20]提出一种将特征筛选和门递归单元长短期记忆网络相结合的方法来监督网络流特征是否发生异常。文献[21]中提出训练自编码器网络来重构流量样本,并对重构误差进行聚类。若一个流量样本的重构误差不属于已知的任何一类,则该样本被视为异常。现有的基于深度学习的检测方法要么需要二类数据进行训练,要么只能使用正常数据进行训练。

本文提出 DO-IDS 来提高软件定义网络环境的安全性。与已知的工作相比,DO-IDS 通过利用 LAE 来将特征序列编码为固定长度的向量,这使得 DO-IDS 有处理网络特征序列的能力,且利用 LAE 获得固定长度向量的过程可降低序列信息的冗余信息从而提高 DO-IDS 的检测正确率。此外,DO-IDS 的训练过程中既可以只使用单类正常数据作为训练样本,也可以使用有标签的数据集,并能够定期更新检测器的检测参数从而持续保证检测性能。

检测系统概述

本文所提出的DO-IDS在SDN控制器中实现,其由三个模块组成:收集器,检测器和防御器。DO-IDS的工作流由图1所示,每个模块的功能将在后续介绍。

收集器

收集器由监控器和特征提取器这两个组件组成。监控器定期向数据平面发送网络状态请求,数据平面的交换机在收到这样的请求后会将它们的状态信息返回给收集器。然而,由数据平面返回的状态信息中存在着大量的重复信息。比如当前存在一个从$A$到$B$的流\(A \rightarrow S_1 \rightarrow S_2 \rightarrow B\),其中$S_1$和$S_2$为数据平面的交换机。对于这个流,交换机$S_1$和$S_2$中所存储的信息是完全相同的,但是要进行异常检测时,只需要一个这样的数据即可。特征抽取器会首先对接收到的数据进行去重,然后将这些去重后的信息组织成特征向量序列,这些特征向量序列将会被发送到检测器和防御器模块进行流量异常检测。

检测器

检测器在收到收集器发来的特征向量序列后会对它们计算异常分数,并将这些异常分数发送给防御器。检测器由编码器、解码器和打分器这三个组件组成,编码器将特征向量序列编码成固定长度的向量,这个过程可以减少序列中的冗余信息。本文中的固定长度向量指的是向量维度相同的向量。解码器利用编码器的输出结果重构向量序列,解码器的重构过程可帮助更新编码器中神经网络参数。打分器对编码结果计算异常分数,并将这个分数发送给防御器。

防御器

防御器模块判断网络中是否存在异常流量并执行相应的防御策略。该模块由比较器、规则生成器、警告器和辅助数据库四个组件组成。比较器首先判定从检测器处收到的异常分数是否超过指定的门限值\(\tau\)。若超过了,那么与这个分数相关的特征序列就会被判定为从异常流中抽取的序列,因此通知警告器此异常的发生,并将该特征序列存入辅助数据库并将该条数据赋予异常标签。警告器在收到异常通知后会将该异常报告给管理员。当异常发生时,规则生成器会根据异常特征序列生成流表来实现数据平面的防御过程。若接收到的异常分数小于门限值\(\tau\),与这个异常分数相关的流特征则会被认为是从正常流中提取的,则将其以正常样本的形式存入辅助数据库。辅助数据库维护特征向量序列样本,并定期地且这些样本训练检测器并替换旧的检测器。