摘要
为了评估网络流量对PLC控制过程带来的影响,我们对来自6个主流厂商的16款PLC做了测试,测试内容主要包括以下三方面:
1. 测试SYN flooding对PLC电气侧的影响;
2. 测试14个高层协议对PLC电气侧的影响;
3. 测试3款主流扫描工具对PLC电气侧的影响。
通过测试发现,有15款PLC在默认配置的情况下,其电气输出延时容易受到网络风暴的影响,部分型号甚至停止输出。
2
实验方法
1. 参考基准
在测试中,我们令所有的PLC在其最大性能下运行(最短循环时间)并输出周期信号。测试以PLC正常状况下的输出作为参考信号,如果网络流量对PLC的电气输出造成影响,则实际输出信号相对参考信号将会产生偏移。图1展示了参考信号(蓝色实线)和收到网络流量后的偏移信号(红色点划线)。
图1 PLC输出的电信号
2. 测试拓扑
在实验过程中,我们按照一定的速率向PLC发送特定协议的报文,然后对PLC的循环周期进行测量,测试涉及的协议如表1所示。
表1 测试中用到的软件及协议
测试拓扑如图2所示,其中包括数据捕获装置(capture device)、***仪器(attack machine)和控制仪器(control machine)。捕获装置用来将PLC的输出量化。***仪器按照一定速率发送网络报文。控制仪器用来控制设备的开始和停止,同时保存***仪器所传送过来的数据。
图2 测量设置
3.被测设备列表
图3 本实验涉及的16款PLC型号
3
实验数据及分析
1. SYN负载影响分析
我们通过hping3发送SYN报文来测量SYN负载对PLC响应延时的影响。每一个hping3***持续60s,之后是30s的空闲时间。速率通过hping3的等待参数产生(hping3 -i u<wait for xmicroseconds><IP>),在每一个数据包之后,hping3等待x毫秒直到下一个数据包被发送。我们采用PLC平均循环时间来作比较,平均的循环时间可表示为:
为了更好的比较,我们通过除以空闲时间来归一化循环时间:
图4 不同流量负载下PLC的循环周期延时情况
实验表明SYN数据流对大多数的PLC在循环周期有影响。测试结果如图4所示:
(1)对于PLC(5,8,9,10,14,16),提高SYN流量会导致更高的PLC响应延时。
(2)对于PLC(1,3,4),在超过特定数据速率下就停止工作(当一个PLC的循环时间增大10倍以上,为停止工作状态)。
(3)对于PLC(2和12),其在最大数据包速度下不受影响,但在较低速度下受影响,这说明了利用大速率发动DoS***并不总是有用。
(4)PLC(6,11,13和15)在测试中不受hping3数据包***的影响。
2. 高层协议影响分析
在该部分测试中,每个实验包含四个阶段:重启PLC设备以保持PLC状态一致;在实际发包阶段的前后各有一个空现阶段;发包前的空闲阶段的输出可作为测试效果的参考;发包后的空闲阶段可观察一些***的长期影响。每个阶段持续600s。每个连续的测试中间会有60s的间隔。
由于篇幅限制,我们将高层协议影响效果分为六类,对于每一类,我们只展示影响最大的例子。
2.1 PLC停止工作(Wago 750-831)
一个极限的情况为在测试过程中PLC停止工作。图5显示了在ARP测试流量下PLC的表现。
图5 在ARP测试下PLC(Wago 750-831 (4))停止工作
2.2 PLC高延时(Wago 750-889)
在测试中,一些PLC的循环时间会高达数秒。如图6所示的测量中,循环时间增加了5s。这个影响是通过UDP报文测试实现的。在前置和后置空闲阶段中,PLC正常运行,循环周期为2ms。
图6 UDF数据流对Wago 750-889 (1)的测试导致循环高延时
2.3 PLC中等延时(Schneider TM221CE16T)
在测试中,还有部分PLC的循环周期延时增幅小于1s。图7显示了一个实例。设备正常循环周期为2ms,在UDP测试中,循环时间提高了40倍.
图7 UDF数据流对Schneider TM221CE16T(16)的影响
2.4 PLC循环周期抖动增大(Siemens S7-314)
如图8所示,平均循环时间受到的影响较小,大概在25%左右。但是循环周期的方差很大,也就是说抖动很大。
图8 Siemens S7-314(8)在S7Com流量下的延时
图9所示为PLC循环周期在不同时间上的分布密度。图中显示循环周期在空闲阶段出现两个峰值,分别对应电气输出信号的高电平和低电平。可以观察到输出信号的高电平和低电平的长度不一致。在测试过程中,循环周期时间增加,出现了新的峰值。两个原来的峰值出现了2倍的偏移,这种现象在图8中是无法观察的。
图9 S7 Com数据流对Siemens S7-314(8)的循环周期影响
2.5 PLC循环周期缩短(Phoenix ILC151)
还有一些PLC的循环周期在测试过程中变得更快,图10所示为受到UDP数据流测后Phoenix ILC151的循环周期的变化。在现实世界中,如果PLC循环周期变快,这将导致控制行为不可预测。
图10 Modbus/TCP 数据流***对Phoenix ILC151 (11)循环时间影响
2.6 PLC循环周期不受影响(Crouzet em4)
还有一些PLC的循环周期几乎不受测试的影响,如图11所示。
图11 测试对Crouzet em4 (15)无影响
2.7 测试过程中PLC的CPU负载(Wago 750-8100)
本测试涉及的PLC大多是基于实时操作系统,CPU负载是很难监测的。然而,Wago 750-8100是基于Linux,使得我们可在监测测试过程中其CPU的利用率。图12显示了测试中CPU的利用率。在测试中,处理网络流量的中断增加了接近100%。较高的中断负载会影响PLC的控制软件,进而影响控制执行的连续性,导致不同的循环时间。
图12 SYN数据流***中CPU负载情况(Wago 750-8100 (2))
4
扫描工具的影响分析
研究人员常说应当避免对PLC设备的主动扫描,这种行为可能导致PLC工作异常,但是这个观点一直缺乏实验证明。我们的测试能够精确的评估扫描工具对于设备的影响。
我们选择了一些常见的主动扫描工具(Nmap 7.60, PLCScan version 0.1, 和 RiskViz SearchEngine)。图13所示为这三种扫描工具对被测设备的影响。
图13 主动扫描工具对Wago 750-880 (3)的影响。
图14显示了三个网络扫描工具在超过30s的扫描时间中对设备循环时间的影响。图13和14中的数据来自同一个扫描过程。我们的实验表明,扫描工具对于PLC的循环周期的确有显著的影响。如果扫描不能够与避免的话,唯一的方法时将扫描数据的速率保持在尽可能低的水平。
图14 网络扫描工具对于Wago 750-880 (3)的影响
5
结论
在文中,我们测试了PLC在网络数据流的测试下电气输出的稳定性。结果显示PLC电气侧容易受到网络数据流的影响,这可能对控制过程造成灾难性的影响。我们的分析表明,无论来自哪个制造商,大部分的PLC是容易受到网络风暴***影响的。除了Crouzet em4之外,我们测试的所有设备在网络数据流测试下循环周期发生了显著变化。一些设备在测试中甚至停止工作或不能够更新输出。此外,网络扫描对PLC电气侧有明显的影响。