工业控制系统相关论文学习(2)

Constrained Concealment Attacks against Reconstruction-based Anomaly Detectors in
Industrial Control Systems

Proceedings of the Annual Computer Security Applications Conference (ACSAC) 2020

一、背景

1. 工业控制系统

这篇文章给出了比上一篇文章更加切合实际的假设。对于现在的大型的工业系统基本都需要一个庞大的网络系统进行控制。而这个网络中的计算机想要做出正确的决策,就需要有在正确的环境状态检测的数据支持。而验证数据的正确性,就需要一个异常检测系统对工业控制系统进行检测。这里就需要"身份验证"。"身份验证"指的是在网络和计算系统中确保交互主体(可以是用户、设备或其他系统)的身份的正确性的过程。这通常涉及验证某个实体是否是其声称的那个实体。身份验证是网络安全的基础部分,尤其是在工业控制系统(ICS)中,它有助于防止未授权的访问和操作。

以一个具体的例子来阐述:在电力网络的工业控制系统中,操作员可能需要通过身份验证才能访问控制系统并发送指令。这种身份验证可以采取多种形式,例如:

  1. 密码认证:最常见的一种方式,操作员需要输入用户名和密码。
  2. 双因素认证:除了密码外,还可能需要第二种形式的验证,如动态令牌、生物特征(如指纹或面部识别)或手机APP生成的一次性密码。
  3. 数字证书:使用基于公钥基础设施(PKI)的证书来验证操作员的身份。操作员的设备会存储一个数字证书,系统通过该证书确认操作员的身份。

而对于一些公共方面的工业控制系统,很多设备都已经上了年龄,导致很多现在有的身份验证等等技术都无法在这上面实现,而几十年前的身份验证的方法可能早已被破译出来,因此攻击者会被认为不需要权限/很轻易能得到权限就能达到窃听流量、修改流量的效果。

2. 已有研究

在工业控制系统现在有一种很有未来的异常检测技术,即基于机器学习分类器和重建分类器的方法。原理是通过使用无监督学习方法来预测网络物理系统(CPS)中的正常行为模式,并随后通过比较预测值和实际传感器数据来识别异常。具体地,采用了长短期记忆递归神经网络(LSTM-RNN)作为时间序列预测器来建模正常行为,并利用累积和(CUSUM)方法来检测与预测值偏离的异常行为。

异常检测的工作方式如下:

  1. 首先,使用LSTM-RNN模型通过训练数据来学习CPS中的正常行为模式。LSTM-RNN能够捕捉时间序列数据中的长期依赖关系,适合用于学习CPS中可能存在的复杂时间序列模式。

  2. 在训练阶段,模型使用正常行为的传感器数据来训练,学习数据的正常行为模式。训练完成后,模型能够预测给定输入序列下传感器的预期输出值。

  3. 在检测阶段,模型接收实时传感器数据作为输入,并输出每个时间步的预测值。同时,计算预测值与实际传感器数据之间的差异。

  4. 然后,使用CUSUM方法来累积预测值和实际传感器数据之间的差异。CUSUM方法通过计算累积和来检测小偏差,从而减少误报率。当累积和超过预设的上控制限(UCL)或下控制限(LCL)时,则认为发生了异常。

  5. 如果检测到异常,系统可以进一步识别是哪个传感器表现出了异常行为,从而有助于快速定位和响应网络物理系统中的潜在攻击或故障。

注:这里异常检测器的方法是来自IEEE XPLORE的一篇文章,Anomaly detection in cyber physical systems using recurrent neural networks,2017年写的.  

现在攻击中比较普遍的就是重播攻击。但是重播攻击可能没有办法很好的寻找到传感器之间的联系导致攻击效果不佳,会被异常检测器检测出来。此外之前的隐藏攻击都有以下要求:

(1)攻击者只能操纵系统中的一部分特征;

(2)攻击者必须考虑时间与空间上的相关性,并且不能引入异常情况

(3)在其他领域中的攻击通常针对端到端神经网络分类器而非基于重构的分类器,因此攻击者需要优化均方误差损失而不是交叉熵损失;

(4)实时攻击需要考虑计算能力和动态性的限制。

在这些约束下,攻击者的攻击效果都不是很好。

3. 文章解决的问题

在这项工作中,我们提出并评估了针对基于重建的异常检测器的约束性隐秘攻击。为了满足R1,我们形式化了一个详细的攻击者模型,并评估了不同设置下的攻击者约束,即攻击者控制下的特征数。

为了满足R2,攻击者利用系统行为的被动观察来近似真实示例应该如何表现。以此为基础,我们考虑了一种白盒攻击者,它可以利用对系统的了解对一般重建基的探测器进行迭代攻击(满足R3)。此外,我们还考虑了一种黑盒攻击者,并证明可以在毫秒内构造有效的对抗样本(满足R3和R4)

因此,文章解决了针对基于重建的异常检测器的攻击问题,特别是在工业控制系统(ICS)环境中。文章提出了一种受约束的隐匿攻击模型,旨在测试和评估异常检测器的弹性。

这篇文章主要做了下面几件事情:

  1. 详细的攻击者模型:文章提出了一个详细的攻击者模型,该模型考虑了攻击者的约束条件,如可控制的特征数量,这更贴近现实世界的ICS场景。
  2. 黑白盒攻击策略:文章考虑了两种类型的攻击者——白盒攻击者和黑盒攻击者。白盒攻击者可以利用对系统的了解来执行迭代攻击,利用优化算法或检测算法将异常数据转换为正常数据,而黑盒攻击者则可以在不了解异常检测系统的情况下,利用对抗性训练的自动编码器快速生成有效的对抗样本来翻译异常数据。
  3. 实时攻击能力:文章展示了黑盒和白盒攻击都可以在毫秒级的时间内生成有效的对抗样本,这表明攻击可以在系统采样率之内完成,实现了实时攻击。
  4. 广泛的实验验证:文章在模拟的ICS过程数据集和真实的ICS过程数据集上评估了所提出的攻击方法,还在实际的工业控制系统测试台上进行了演示,证明了攻击的实时性和有效性。

二、工业控制系统模型

与之前不同的是,这里假定scada只是被动采集数据,控制和传感器在下层工作,控制器会把异常的数据上传到SCADA,SCADA负责接收来自PLCs的数据,并基于这些数据进行操作和决策。在这里SCADA并不会下达命令,仅仅只是检测。

SCADA提供了一个基于重构的异常检测系统,其目标是准确地识别攻击者操纵物理过程的实例,同时最大限度地减少错误检测的数量。这个攻击检测系统由两部分构成:一种系统模型,用于生成附加的特征(例如在图像识别任务中,可以使用系统模型来生成关于图像亮度、对比度、颜色分布等方面的额外特征,以帮助算法更准确地识别图像中的对象),以及一个分类器,它(对于每个时间步长)将系统分类为在攻击或正常操作条件下。

这个基于重构的异常检测器是利用自编码器来对数据进行重构的,他的分类特征就是他数据输入的本身。这个会在计算机试卷中有一定的应用,但是如果是原始的基于自编码器的重构可能会导致图片的模糊化。这个之后有了解到再将。

这里的异常检测器该利用传感器采集到的数据,结合预先学习得到的物理过程模型,计算出预测值并与实际观测值进行比较,从而检测是否存在异常行为。具体来说,该方法可以分为两个阶段:首先,通过机器学习等技术从历史数据中学习得到物理过程模型;然后,在实时监测过程中,利用该模型对当前观测值进行预测并计算误差,如果误差超过预设的阈值,则认为存在异常行为。这种方法具有较高的准确性和可靠性,适用于复杂的工业控制系统中的异常检测任务。

我们来假设这么一个系统:

假设一个水处理系统中,PLC与SCADA的工作逻辑如下:

  1. 实时数据采集

    • 传感器监测水中的氯气浓度、流量和压力。
    • PLC每秒钟采集一次传感器数据:氯气浓度、流量、压力。
  2. 数据处理与控制

    • PLC检测到氯气浓度超出设定范围(如超过1 ppm),触发报警并指示关闭氯气注入阀门。
  3. 数据传输

    • PLC通过以太网每秒钟将采集到的实时数据和状态信息打包,传输到SCADA系统。
  4. SCADA处理

    • SCADA系统接收并存储PLC上传的数据。
    • SCADA系统将实时数据以图表形式显示在操作员界面上。
    • SCADA系统检测到氯气浓度超标,触发报警并记录报警事件。

值得注意的是,虽然攻击者掌握的可操控的传感器越少(即能够监听流量的传感器越少),整体攻击能力就越弱,但是若对越多的传感器设置新的身份验证系统,需要对每个传感器信号进行身份验证和授权,这将导致更多的计算、存储和网络带宽需求,从而增加了系统的开销。

三、攻击者模型

攻击并不限于仅在工业控制系统中部署,而是可以利用系统中的其他组件或者系统外部的组件来进行攻击。为简化考虑,这里认为攻击者有两种方式:(1)对下层攻击篡改数据(2)篡改上层SCADA所采集的数据,两种攻击可以同时发生。

1.攻击者的能力

(1)攻击者可以通过物理方式将恶意设备接入ICS网络。这种方式直接介入物理网络层面,可能用于数据拦截或发送恶意数据。

(2)攻击者可能能够拦截到远程变电站的通信。这允许攻击者捕获或篡改从PLC传输到SCADA系统的信息。

(3)这种攻击涉及到在PLC内部插入恶意代码或篡改PLC程序,从而实现对工业控制系统的控制。这可能包括发送错误的控制指令或篡改传感器数据,以误导SCADA系统并隐藏真实的物理过程状态。

文中攻击者假定可以控制PLC和SCADA系统之间的部分通信。这样的访问权限允许攻击者不仅观察到传感器数据,还能向检测系统发送经过操纵的传感器读数,以避开异常检测机制。这表明攻击者可以在系统检测到异常之前干预数据,以隐藏或伪装攻击所产生的异常影响。

2.攻击的实现方式

假设系统是通过某个或某组特征向量x_k来确定系统是否异常的。假设y_k是某个PLC的输出结果,攻击者通过基于重构的方法 ,计算一个扰动向量\delta _k,使得原本状态函数y_k(x_k)='anomaly'变成y_k(x_k+\delta _k)='normal'

3.攻击者的能力限制

为了更好的描述攻击者的能力限制,这里引入了几个符号与公式。D表示训练数据集,X表示数据特征,f表示学习算法,w表示训练参数。这里将四个变量分成两组,(D, X)用于表示数据,用于区分是受约束的攻击还是不受约束的;(f, w)用于表示防御算法,用于区分是黑盒攻击者还是白盒攻击者。具体区分如下表所示:

这里对四种的扰动距离也是有限制。不受约束的攻击下,扰动距离不能超过n,数据集不受限制但对于特征有限制的攻击攻击扰动距离不能超过k(这里文章并没有提及怎么确定n和k)。不受操作限制但数据集有限的攻击的扰动距离的上限要跟实际数据训练出来的最大扰动距离有关。

受限的数据集(选择特征):这里分两种情况:

        ①最佳约束情况:假设攻击者可以最大化攻击影响的选择出n个特征中的k个进行操纵。这代表了对受约束的攻击者的最佳情况(即攻击者恰好选择了相对理想的特征)。这对应了不受约束的攻击方式(拥有所有读写权限)和部分受约束的攻击方式(拥有所有读权限和部分写权限)

        ②基于网络拓扑结构:假设攻击者可以攻陷网络中的单个变电站(或PLC),并且选择n个特征中的k个是基于与被攻陷的变电站相连的传感器就是攻击者在不同的场景下受到的限制不同,选择哪些特征进行操纵也会因此而有所不同。这对应了完全受限的攻击方式(只能控制系统中的一个子集)

受限的防御模式:区分为白盒攻击者(知道系统内部细节、学习算法等等,可以利用攻击模型的梯度信号的解决方案)和黑河攻击者(一切靠自己摸索,只能用深度学习的方法)

在白框设置中,提出了一种迭代攻击,能够交互式地查询分类的特征有哪些,以确定要操作哪些特性,以及分配给这些特性的值。该算法是可调的,即攻击者可以处理一些算法参数,这些参数会随着时间的推移影响计算,从而影响隐藏效果。同样,这也加快了计算速度,但可能会影响解决方案的质量。

黑盒攻击则是使用一个基于学习的攻击,特别是一个深度神经网络,它能够输出隐藏的传感器读数,攻击者反向训练神经网络。

Q:感觉这里可以考虑一下不是修改数据,而是截取数据会不会更有效?因为他是拦截送向SCADA的数据,那么我直接不给他送不就行了?不过要应对这个也会非常的简单:就是如果一段时间如果没有记收到信号那么系统就认定为异常

四、具体攻击设计

文中具体设计了两种攻击的方式:白盒的迭代攻击和基于自编码器的黑盒攻击。

1. 白盒攻击

由于是白盒攻击,因此攻击者拥有对目标系统的完全访问权限,包括系统的设计和结构等信息。攻击者可以通过分析深度学习模型的权重和偏置值,以及观察系统的响应来推断出系统的敏感性和脆弱点。实际上就是对正常情况数据进行重构,然后计算出其中最大的传感器误差,然后通过协调下降算法或者其他算法不断迭代调整,让系统可以接受的正常范围值能够更大一点,直到这个最大误差使得攻击被系统认为是可接受范围内的,即通过反复尝试修改传感器读数来降低检测器的准确性在知识获取方面,攻击者准确了解系统的工作原理,包括异常检测算法和其使用的特征。具体而言,白盒攻击者知道

  • 模型的架构和训练参数,包括神经网络的层数、每层的节点数、激活函数、损失函数、优化算法等 ,并且他们了解模型在正常数据上是如何训练的,这包括所有的权重和偏置值 。
  • 白盒攻击者可以访问模型的输入和输出数据。这意味着他们可以看到传感器数据如何被输入到模型中,以及模型输出的重建数据 ,文中所说就是,迭代攻击需要攻击者能够查询异常检测器的“oracle”(即,攻击者能够获得异常检测器的反馈)。这种假设意味着攻击者对系统有很高的了解和访问权限,可以获取内部信息,并利用这些信息来逐步优化和生成对抗样本。
  • 白盒攻击者知道用于判断异常的重建误差阈值。他们可以利用这一点,在调整输入数据时确保重建误差不超过这个阈值,从而避免触发异常检测 。
  • 白盒攻击者通常也了解输入数据之间的关系和规则。例如,在一个水处理系统中,他们知道氯气浓度、流量和压力之间的物理关系 。这种知识使得他们能够在调整输入数据时保持数据之间的一致性和合理性,避免生成明显不合理的数据 。

这个时候就会通过协调下降算法,攻击者能够逐一调整每个特征的值。这种方法通过迭代地优化单一特征,同时保持其他特征不变,逐步减少总体的预测误差。攻击者可以调整算法的参数,例如迭代的步长、优化的速率等,来计算的速度和对抗样本的质量。

注:正因为异常检测模型通常是基于历史数据建立正常行为的模型,这些模型不是实时更新,或者更新频率较低,攻击者可以逐步调整传感器读数,而模型仍然将这些逐渐改变的读数视为正常。这种渐进式的改变可能不足以触发模型立即重新学习或调整其正常行为的基线。

或者这么想:实际上白盒攻击者知道很多很多的东西,但是他想用最快的方式去攻击,那么攻击特征越少,所用的时间应当是越少的。然后他会用一种算法(文中说的就是在他无约束情况下找到他最频繁修改的特征所组成的特征组作为最佳约束情况来修改)从误差最大的特征进行修改,直到他能够正确的隐藏攻击。这里面涉及到一个变异矩阵的计算,文中提供的代码如下:

这里更新一个例子以更好的理解:

假设一个工业控制系统中,攻击者想隐藏氯气泄漏的异常状态。以下是逐步调整和优化的具体步骤:

  1. 初始状态(异常)

    • 氯气浓度:5 ppm(异常)
    • 流量:7 L/min(异常)
    • 压力:1.2 bar(异常)
  2. 逐步优化过程

    • 初始数据注入:攻击者首先将氯气浓度从5 ppm微调到4.8 ppm,观察系统是否触发报警。
      • 如果未触发报警,继续进行下一步微调。
    • 第二步调整:将氯气浓度从4.8 ppm微调到4.6 ppm,同时略微调整流量和压力,使其看起来更合理。
      • 流量调整到7.2 L/min,压力调整到1.3 bar。
    • 多次微调:通过多次微调,逐步将氯气浓度降低到1 ppm,流量和压力逐步调整到接近正常范围。
  3. 最终状态(伪装正常)

    • 氯气浓度:1 ppm
    • 流量:10 L/min
    • 压力:2 bar

通过这种逐步调整的方式,攻击者可以减少每次调整对系统的影响,降低触发报警的风险。

注:就算知道了他们之间的规则,但有些规则是很复杂的,需要通过很复杂的计算之类的,那么这个时候用迭代去学习消耗会少的多。因此这个特性让他在读取受限的传感器的时候他的攻击效果会比重播攻击好。后面实验是假设知道所有的输入是哪些,读取权限被全面破译,但是篡改却只能获得一些修改的权限,这个时候如何匹配其他的传感器的数据迭代攻击就非常的有效了。

Q:那么现在就出现了一个新的问题:那他在实验的时候,是不是所有传感器组合都要来一遍》比如说10个传感器,然后有5个传感器可以修改,那么这5个传感器有C_{5}^{10}种组合,是不是都要测试一遍?不同组合会有不同的效果呀,文章有没有讲是怎么解决这个问题的?

A : 为了避免对所有可能的传感器组合进行穷举测试,白盒攻击者通常会采用优化算法和策略来有效地减少测试的复杂性。以下是一些常用的方法和策略:

  1. 梯度下降法

    • 白盒攻击者利用已知的模型信息,通过计算每个传感器对重建误差的贡献(梯度),逐步调整传感器数据,减少重建误差。
    • 这种方法不需要测试所有组合,只需通过梯度信息逐步优化数据。
  2. 坐标下降法

    • 这种方法逐步优化每个传感器的数据,而其他传感器数据保持不变。通过多次迭代,每次优化一个传感器,逐步减少整体重建误差。
    • 坐标下降法减少了组合数量,因为每次只优化一个传感器。
  3. 进化算法和随机搜索

    • 进化算法模拟自然选择,通过不断生成、评估和选择最优的传感器数据组合来优化重建误差。
    • 随机搜索通过在参数空间中随机抽样,找到最优的传感器数据组合。
  4. 启发式算法

    • 启发式算法利用问题的特殊结构和性质,快速找到近似最优解,而无需遍历所有组合。例如,贪心算法每次选择对重建误差最有利的调整。

假设一个工业控制系统中有10个传感器,其中5个传感器的数据可以被修改。那么他会依次优化每一个传感器,迭代多次,直到重建误差满足要求。

2. 基于自编码器的黑盒攻击

在黑盒攻击模型中,攻击者知道系统使用的是深度学习技术进行异常检测,但不知道具体的模型结构、训练数据或模型参数。攻击者的目标是找到一种方法,能在这种有限知识的基础上有效地生成逃避检测的数据。

这种攻击方式假设攻击者基于学习的攻击不需要查询异常检测器的反馈来计算对抗传感器读数。这种假设意味着攻击者对系统内部的具体细节不清楚,只能通过观察系统的输入输出行为来推测系统特征,并生成对抗样本。

由于黑盒攻击仅仅知道异常检测器的类型是基于重构的,因此只能够拦截SCADA与PLC之间的通信或者篡改通信的数据,攻击方式是把正常的信息输入进去掩盖异常的信息。这里主要使用到了自编码器网络(AE)。 首先,攻击者拦截PLCs到SCADA之间的流量,以便收集关于ICS在正常情况下如何行为的信息。其次,收集的数据用于学习系统如何正常工作,并训练一个深度学习模型,让重构后的误差最小。第三步,攻击者操纵物理过程;异常数据作为结果生成。第四步,利用对抗性训练的模型将异常读数伪装成“安全”的隐藏数据,从而掩盖异常读数,属于反向训练。第五步,将隐藏的数据转发给SCADA。在模型生成后攻击者还要加入已知的一些规则,例如速度绝对值必须要大于0等等。

其实他和基于重建的异常检测器是一样的原理,只不过他是为了学习这个系统各个部分之间的联系(通过一些统计特征表示。这里的“统计特征”并不是传统意义上的统计参数如均值、方差等,而是更深层次的、抽象的数据特性,如何表现出数据的本质属性和变化规律。)而进行重构。

网络的设置如下:

(1)自动编码器网络的设置
  • 网络结构:使用了一个具有三个隐藏层的自动编码器网络,输入和输出层的维度与网络中的传感器和执行器的数量相等。
  • 激活函数:选择了sigmoid函数作为激活函数,这是一种常用的激活函数,能够将输出限制在0到1之间,适合处理二分类任务。
  • 损失函数:使用均方误差(Mean Squared Error, MSE)作为损失函数,这有助于最小化输出与目标值之间的差异,使得生成的数据更接近于正常数据。
(2)训练过程
  • 数据拦截:在训练自动编码器时,首先拦截正常流量的数据。这意味着攻击者在网络中截获正常的通信数据,以此数据作为学习材料。
  • 训练目标:网络被训练以输出那些被分类系统高信度识别为正常的数据元组。简言之,网络学习如何生成看起来正常的数据,即使这些数据背后可能隐藏着异常或攻击行为。
  • 优化器:使用ADAM优化器进行训练,这是一种效率较高的随机梯度下降方法。训练的学习率设定为0.001,以确保稳定而有效的学习过程。
(3)对抗样本的生成和应用
  • 样本生成:经过训练后的自动编码器可以生成模拟正常操作的对抗样本。这些样本在表面上与正常操作数据无异,但实际上可能掩盖了真正的异常状态。
  • 数据维度处理:通过增加数据维度(即隐藏层的单元数多于输入和输出层),而不是减少,提高了隐藏和模拟异常的能力,这与传统的“压缩”模型相反,后者通过降低数据维度来尝试学习数据的核心特征。
(4)对抗性网络的输出
  • 误导检测系统:无论异常检测系统的构建方式如何,输出自动编码器网络生成的对抗样本都能迫使检测系统做出错误的预测,因为这些对抗样本被调整得与正常操作非常相似。

3. 本文提出的攻击的优势:本研究中的攻击目标是减少输入与输出之间的残差,与常规的AML攻击(旨在误导分类,降低真实类别在输出层的预测概率)不同。

        输入:

        正常网络流量的数据元组。这些元组包含了来自各种传感器和执行器的数据,它们在网络中正常传输时被拦截并用于训练自动编码器。

        损失函数的选择

        相关的攻击模型训练中采用的是均方误差(Mean Squared Error, MSE)损失函数,而不是常用的交叉熵损失。这种选择与ICS中需要模拟传感器信号与学习到的物理特性匹配的需求相符合。

        对抗训练的适用性

        在此环境下,由于“受攻击”类别的样本未知,因此传统的对抗训练(在训练集中嵌入对抗性示例)并不适用。这意味着不能训练系统以抵抗未知的对抗性攻击。

 鉴于上述差异,作者提出了新颖的白盒和黑盒方法来规避基于深度学习的异常检测器。

AML是Adversarial Machine Learning的缩写,指的是对抗性机器学习。它是一种研究如何通过设计特定的输入数据来欺骗机器学习模型的技术。

五、实现步骤

1. 数据集的选择

(1)BATADAL

BATADAL 是指 "Battle of the Attack Detection Algorithms",它是一个专门用于研究和评估工业控制系统(ICS)中攻击检测算法的数据集。这个数据集特别设计来模拟水处理系统的行为,并生成了多种可能的网络安全威胁和攻击场景,用于测试和评估各种异常检测和攻击识别方法。

该数据集包含三个部分:第一个包含来自365天正常操作的模拟的数据,而第二个和第三个包含14次攻击(每次7次攻击)。

这些攻击的细节可以在[53]中找到。这些数据集包含来自43个传感器的读数:水箱水位(7个变量)、一个驱动阀门和所有泵站的进出口压力(12个变量),以及它们的流量和状态(24个变量)。所有的变量都是连续的,除了阀门和泵的状态,用二元变量表示。

文章对攻击数据进行了修改,不包含手动隐藏的数据,重新根据正常数据生成攻击的数据,传感器每十五分钟收集一次数据。(数据链接:BATADAL - Datasets

异常检测器对于该训练数据集的训练参数为:窗口=3 ,即以45分钟的区间来确定现在系统的状态。

注:当我们改变window参数时,可以提高召回率(Recall),但这是以降低精确率(Precision)为代价的,也就是说会增加误报的数量。

所以,选择的参数window在这里起到了一个决策边界的作用,它决定了基于多长时间的数据来判断是否有攻击。较大的window可能会捕获更多的真正攻击(提高Recall),但也可能增加误报(降低Precision)。相反,较小的window可能更为敏感,导致更多的假正报警,但可以更快地检测到攻击。

(2)WADI

第二个数据集是基于水分配(WADI)测试台,这是一个位于新加坡理工大学和设计学院[2]的真实世界的ICS测试台。它由两个高架水库水箱、六个消费水箱、两个原水箱和一个回水箱组成。它包含化学加药系统、增压泵和阀门、仪器仪表和分析仪。WADI由3个plc控制,可操作超过103个网络传感器。此外,该试验台还配备了一个SCADA系统。WADI包括三个主要过程:P1(一次供应和分析)、P2(带国内电网和泄漏检测)和P3(返回过程)。

为了异常检测的目的,文章考虑了来自P1和P2的传感器数据,因为返回过程只用于循环水。考虑到P1和P2阶段们每秒钟都有来自82个传感器的数据。在文章中使用了两个WADI数据集。第一个数据集包含14天的正常操作的数据。第二个攻击包含对为期两天操作的物理进程的15次攻击。

由于这是真实的数据,和上一个数据集不同,可以用于讨论的检测机制适用于真实的ICS数据,以及文章中的攻击方法是否可从一个场景模拟数据用于另一个场景中使用真实的数据。

2. 评估方法

评价指标为召回率,评估出来的召回率将与数据集经过人为重构去除掉隐藏攻击的原始条件下的召回率进行比较,召回率越低,说明攻击的效果更好。

3. 评价比较对象

为了评估文中提出的方法,除去文中提出的攻击方式,还与现有的攻击:基于重构的攻击方式、基于学习的攻击方式、迭代攻击和重放攻击四种攻击方式的对比。

4. 评估结果

这里对BATADAL和WADI都进行了第三方攻击探测器的训练,该探测器在正常操作期间从传感器读取中获取数据。对于BATADAL数据集(每15分钟采样一次传感器读数),数窗口大小为3/4小时(可以正确地标记攻击而不会引发假警报)。这给出了准确性等于0.93,精度等于0.90,召回率等于0.60,FPR等于0.01的结果。通过更改窗口参数,我们可以提高召回率,但代价是降低精度,这意味着会引发更多的误报警。对于WADI数据集,窗口大小为60秒。这给出了准确性等于0.97,精度等于0.77,召回率等于0.68,FPR等于0.01的结果。

①重放攻击:在这个攻击中,攻击者使用在同一天的同一时间记录的传感器读数,在整个物理操纵过程中重播。例如,给定持续时间为50小时的物理操纵,我们将重播传感器读数作为发生在72小时前的数据。

②迭代攻击:攻击者操纵了需要找到解决方案的变量。对于BATADAL数据集,使用网格搜索,选择耐心度为15和预算为200。对于WADI数据集,我们选择的迭代参数(按照BATADAL案例中的相同理由)是耐心度为40和预算为300(耐心可以理解为连续迭代的次数,而预算就是整个算法迭代的次数)。攻击者使用oracle来确定是否成功隐藏了信息。

③基于学习的攻击:攻击者使用自动编码器(AE)作为生成器,并向SCADA发送预测读数。根据攻击者的限制,我们在可读特征上训练了一个自动编码器并使用sigmoid作为激活函数,Gorlot初始化作为权重初始化器,均方误差作为损失函数。数据分为训练集2/3和验证集1/3。

总的来说,就是:

1.重播攻击

  • 操作:攻击者直接重放之前截获的正常数据。
  • 效果:检测器认为系统处于正常状态,因为重播的数据没有异常。

2. 白盒攻击

  • 操作:攻击者通过查询检测器的反馈,计算并找到最优的操纵数据。
  • 效果:有效隐藏异常,但需要大量计算和对检测机制的全面了解。

3. 基于学习的攻击

  • 操作:攻击者训练一个自编码器,生成看似正常的对抗样本。
  • 效果:在不需要查询检测器的情况下,通过低计算量生成对抗样本,降低检测器的召回率。
(1)不受约束的情况

各个攻击召回率以及攻击所需时间如下:

重放攻击:在模拟传感器读数时检测回调(Recall)为0,表明当攻击者操纵所有传感器读数时,异常检测器无法识别物理过程中正在发生的攻击。

迭代攻击和基于学习的攻击:检测回调为0.14,表明这些攻击策略虽然导致检测器性能显著下降,但没有重放所有传感器的效果好。

在WADI数据集上,重放攻击能够隐藏发生在控制系统(CPS)上的异常,迭代攻击的性能与重放攻击相等,而基于学习的方法性能较差,尽管如此,基于学习的方法仍使检测器的回调减少了超过50%。

这里由于重放攻击不需要学习,因此不计算它的攻击时间。

重放攻击在模拟传感器读数时检测回调(Recall)为0,表明当攻击者操纵所有传感器读数时,异常检测器无法识别物理过程中正在发生的攻击。

迭代攻击和基于学习的攻击的检测回调为0.14,表明这些攻击策略虽然导致检测器性能显著下降,但没有重放所有传感器的效果好。

在WADI数据集上,重放攻击能够隐藏发生在控制系统(CPS)上的异常,迭代攻击的性能与重放攻击相等,而基于学习的方法性能较差,尽管如此,基于学习的方法仍使检测器的回调减少了超过50%。

(2)受约束的情况
a. 受约束的情况分类

①部分特征约束攻击

        对于BATADAL数据集,当仅部分特征被攻击时(如40个特征中的3个),重放攻击的有效性下降,异常检测器能够触发警报,检测回调(Recall)比无攻击情况高。

        对于WADI数据集,操作3个或更多特征时,重放攻击能显著降低检测器的Recall。

②完全特征约束攻击

        在完全特征约束的条件下,迭代和重放攻击的表现不受影响,因为这些方法不依赖于特征间的相关性来产生扰动。基于学习的攻击受到影响,因其训练数据受到限制。

③数据约束攻击

        探索了正常数据可用性较低情况下的攻击效果。对于BATADAL数据集,当可用的正常数据比例从100%减少到5%时,平均检测Recall从0.14提高到0.22。

b. 实验结论

重放攻击:在特征受限的情况下表现较差。如果不能操纵大部分特征,则由于上下文异常的产生,检测器的Recall反而会提高。

迭代和基于学习的攻击:这两种方法在减少检测器Recall方面表现更为稳定,不会引入上下文异常。在WADI数据集中,控制少数特征也足以通过迭代攻击实现逃避。

黑盒攻击:即使在数据受限的条件下,攻击者也可以通过少量数据训练对抗性自编码器来执行攻击。

Q:这里有个很有趣结果,重放攻击让检测器将正常的也识别为不正常的了,这个似乎是一个很有趣的研究点,他为什么会导致检测器将正常的也识别为不正常呢?大多数异常检测器都会基于时间序列特征来检测系统是否是正常的。所以当他不断地攻击,而可能对于一个系统来说他的周期是24*5H ,那么在第n个周期的第24*4H时发现这是不合理的因为攻击者重播了第一个小时的数据,异常检测器又是在不停的学习的,因此就认为这是一个异常数据,那么当第n+1个周期的第一个小时的是正常的情况,但是系统可能认为是错误的。因此文章这里用召回率来判断这个攻击行不行有待商榷。

(3)深度学习类型的异常检测器

这里还对基于重构的异常检测器进行攻击测试。基于LSTM的和基于CNN的异常检测器,这两种检测器的设计分别参考了相关文献。文中根据文献中的细节使用Keras实现了它们的架构。

LSTM检测器:采用8个时间步的多变量时间序列作为输入,配置了一个LSTM层和一个全连接层,训练目标是最小化均方误差(MSE)。该检测器的性能为:准确率0.94,精确度0.89,召回率0.63,假正率0.01。

CNN检测器:输入为2个时间步的多变量时间序列,包含三层1D卷积层和最大池化层,后接平展层和丢弃层,最终连接到一个全连接输出层。性能为:准确率0.95,精确度0.90,召回率0.67,假正率0.01。

实验结果显示,当目标是重放攻击和基于学习的攻击时,检测召回率会降低。特别是,在至少控制了43个传感器中的40个的情况下,重放攻击能够逃避检测;但是如果能够控制的传感器太少,重放攻击几乎没用。而对于基于学习的攻击,尽管攻击和防御使用了不同的架构(自编码器对抗LSTM和CNN),结果表明基于学习的隐蔽攻击是可迁移的(也就是说这种攻击方式对于各种系统应当都是通用的)。特别是,LSTM架构对隐蔽攻击更为敏感,因为基于学习的攻击比针对自编码器和基于CNN的防御具有更高的隐蔽效果。针对CNN防御的隐蔽效果与自编码器防御相当,尽管CNN检测器的原始召回率高于其他考虑的防御。

(4)正式环境下测试

测试环境与背景

  • 测试平台:使用了WADI测试平台,这是一个工业控制系统(ICS)测试环境。
  • 数据收集:在正常运营中收集了15小时的数据,涉及62个每10秒采样一次的传感器。
  • 检测器设置:异常检测器设置了一个时间窗参数为30,意味着检测器考虑过去5分钟(30个10秒间隔)内的传感器读数。

系统测试与可靠性验证

  • 系统运行测试:系统连续运行7小时,期间没有异常发生,结果出现了两个误报,每个持续10分钟。
  • 执行器操纵:在系统中进行了执行器的操纵,以复制WADI数据集中报告的异常。

实时隐蔽攻击的测试与结果

  • 隐蔽攻击实施:在WADI测试平台上同时发生异常的情况下,启动了无约束的隐蔽攻击,以测试这些攻击的可行性和效果。
  • 攻击方法:测试了迭代和基于学习的攻击方法,这些攻击通过模拟攻击者操纵传感器的值来进行。
  • 攻击结果:系统中所有的异常实例都被成功误分类。也就是说,隐蔽攻击有效地干扰了异常检测系统,使其无法正确识别和分类真实的异常情况。

计算时间和效率

  • 计算时间:基于学习的攻击在实时环境中生成对抗样本的平均计算时间保持在5毫秒,这与之前的实验相同。
  • 系统效率:这个计算时间远快于系统的采样率,表明这种攻击在实时条件下是可行的,并且不会因计算延迟而失效。
  • 42
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值