1
摘要
為了評(píng)估網(wǎng)絡(luò)流量對(duì)PLC控制過(guò)程帶來(lái)的影響,我們對(duì)來(lái)自6個(gè)主流廠商的16款PLC做了測(cè)試,測(cè)試內(nèi)容主要包括以下三方面:
1. 測(cè)試SYN flooding對(duì)PLC電氣側(cè)的影響;
2. 測(cè)試14個(gè)高層協(xié)議對(duì)PLC電氣側(cè)的影響;
3. 測(cè)試3款主流掃描工具對(duì)PLC電氣側(cè)的影響。
通過(guò)測(cè)試發(fā)現(xiàn),有15款PLC在默認(rèn)配置的情況下,其電氣輸出延時(shí)容易受到網(wǎng)絡(luò)風(fēng)暴的影響,部分型號(hào)甚至停止輸出。
2
實(shí)驗(yàn)方法
1. 參考基準(zhǔn)
在測(cè)試中,我們令所有的PLC在其最大性能下運(yùn)行(最短循環(huán)時(shí)間)并輸出周期信號(hào)。測(cè)試以PLC正常狀況下的輸出作為參考信號(hào),如果網(wǎng)絡(luò)流量對(duì)PLC的電氣輸出造成影響,則實(shí)際輸出信號(hào)相對(duì)參考信號(hào)將會(huì)產(chǎn)生偏移。圖1展示了參考信號(hào)(藍(lán)色實(shí)線)和收到網(wǎng)絡(luò)流量后的偏移信號(hào)(紅色點(diǎn)劃線)。
圖1 ?PLC輸出的電信號(hào)
2. 測(cè)試拓?fù)?/strong>
在實(shí)驗(yàn)過(guò)程中,我們按照一定的速率向PLC發(fā)送特定協(xié)議的報(bào)文,然后對(duì)PLC的循環(huán)周期進(jìn)行測(cè)量,測(cè)試涉及的協(xié)議如表1所示。
表1 ?測(cè)試中用到的軟件及協(xié)議
測(cè)試拓?fù)淙鐖D2所示,其中包括數(shù)據(jù)捕獲裝置(capture device)、攻擊儀器(attack machine)和控制儀器(control machine)。捕獲裝置用來(lái)將PLC的輸出量化。攻擊儀器按照一定速率發(fā)送網(wǎng)絡(luò)報(bào)文??刂苾x器用來(lái)控制設(shè)備的開(kāi)始和停止,同時(shí)保存攻擊儀器所傳送過(guò)來(lái)的數(shù)據(jù)。
圖2 ?測(cè)量設(shè)置
3.被測(cè)設(shè)備列表
圖3 本實(shí)驗(yàn)涉及的16款PLC型號(hào)
3
實(shí)驗(yàn)數(shù)據(jù)及分析
1. SYN負(fù)載影響分析
我們通過(guò)hping3發(fā)送SYN報(bào)文來(lái)測(cè)量SYN負(fù)載對(duì)PLC響應(yīng)延時(shí)的影響。每一個(gè)hping3攻擊持續(xù)60s,之后是30s的空閑時(shí)間。速率通過(guò)hping3的等待參數(shù)產(chǎn)生(hping3 -i u
為了更好的比較,我們通過(guò)除以空閑時(shí)間來(lái)歸一化循環(huán)時(shí)間:
圖4 ?不同流量負(fù)載下PLC的循環(huán)周期延時(shí)情況
實(shí)驗(yàn)表明SYN數(shù)據(jù)流對(duì)大多數(shù)的PLC在循環(huán)周期有影響。測(cè)試結(jié)果如圖4所示:
(1)對(duì)于PLC(5,8,9,10,14,16),提高SYN流量會(huì)導(dǎo)致更高的PLC響應(yīng)延時(shí)。
(2)對(duì)于PLC(1,3,4),在超過(guò)特定數(shù)據(jù)速率下就停止工作(當(dāng)一個(gè)PLC的循環(huán)時(shí)間增大10倍以上,為停止工作狀態(tài))。
(3)對(duì)于PLC(2和12),其在最大數(shù)據(jù)包速度下不受影響,但在較低速度下受影響,這說(shuō)明了利用大速率發(fā)動(dòng)DoS攻擊并不總是有用。
(4)PLC(6,11,13和15)在測(cè)試中不受hping3數(shù)據(jù)包攻擊的影響。
2. 高層協(xié)議影響分析
在該部分測(cè)試中,每個(gè)實(shí)驗(yàn)包含四個(gè)階段:重啟PLC設(shè)備以保持PLC狀態(tài)一致;在實(shí)際發(fā)包階段的前后各有一個(gè)空現(xiàn)階段;發(fā)包前的空閑階段的輸出可作為測(cè)試效果的參考;發(fā)包后的空閑階段可觀察一些攻擊的長(zhǎng)期影響。每個(gè)階段持續(xù)600s。每個(gè)連續(xù)的測(cè)試中間會(huì)有60s的間隔。
由于篇幅限制,我們將高層協(xié)議影響效果分為六類,對(duì)于每一類,我們只展示影響最大的例子。
2.1 ?PLC停止工作(Wago 750-831)
一個(gè)極限的情況為在測(cè)試過(guò)程中PLC停止工作。圖5顯示了在ARP測(cè)試流量下PLC的表現(xiàn)。
圖5 ?在ARP測(cè)試下PLC(Wago 750-831 (4))停止工作
2.2 PLC高延時(shí)(Wago 750-889)
在測(cè)試中,一些PLC的循環(huán)時(shí)間會(huì)高達(dá)數(shù)秒。如圖6所示的測(cè)量中,循環(huán)時(shí)間增加了5s。這個(gè)影響是通過(guò)UDP報(bào)文測(cè)試實(shí)現(xiàn)的。在前置和后置空閑階段中,PLC正常運(yùn)行,循環(huán)周期為2ms。
圖6 ?UDF數(shù)據(jù)流對(duì)Wago 750-889 (1)的測(cè)試導(dǎo)致循環(huán)高延時(shí)
2.3 PLC中等延時(shí)(Schneider TM221CE16T)
在測(cè)試中,還有部分PLC的循環(huán)周期延時(shí)增幅小于1s。圖7顯示了一個(gè)實(shí)例。設(shè)備正常循環(huán)周期為2ms,在UDP測(cè)試中,循環(huán)時(shí)間提高了40倍.
圖7 ?UDF數(shù)據(jù)流對(duì)Schneider TM221CE16T(16)的影響
2.4 PLC循環(huán)周期抖動(dòng)增大(Siemens S7-314)
如圖8所示,平均循環(huán)時(shí)間受到的影響較小,大概在25%左右。但是循環(huán)周期的方差很大,也就是說(shuō)抖動(dòng)很大。
圖8 ?Siemens S7-314(8)在S7Com流量下的延時(shí)
圖9所示為PLC循環(huán)周期在不同時(shí)間上的分布密度。圖中顯示循環(huán)周期在空閑階段出現(xiàn)兩個(gè)峰值,分別對(duì)應(yīng)電氣輸出信號(hào)的高電平和低電平??梢杂^察到輸出信號(hào)的高電平和低電平的長(zhǎng)度不一致。在測(cè)試過(guò)程中,循環(huán)周期時(shí)間增加,出現(xiàn)了新的峰值。兩個(gè)原來(lái)的峰值出現(xiàn)了2倍的偏移,這種現(xiàn)象在圖8中是無(wú)法觀察的。
圖9 ?S7 Com數(shù)據(jù)流對(duì)Siemens S7-314(8)的循環(huán)周期影響
2.5 PLC循環(huán)周期縮短(Phoenix ILC151)
還有一些PLC的循環(huán)周期在測(cè)試過(guò)程中變得更快,圖10所示為受到UDP數(shù)據(jù)流測(cè)后Phoenix ILC151的循環(huán)周期的變化。在現(xiàn)實(shí)世界中,如果PLC循環(huán)周期變快,這將導(dǎo)致控制行為不可預(yù)測(cè)。
圖10 ?Modbus/TCP 數(shù)據(jù)流攻擊對(duì)Phoenix ILC151 (11)循環(huán)時(shí)間影響
2.6 PLC循環(huán)周期不受影響(Crouzet em4)
還有一些PLC的循環(huán)周期幾乎不受測(cè)試的影響,如圖11所示。
圖11 ?測(cè)試對(duì)Crouzet em4 (15)無(wú)影響
2.7 測(cè)試過(guò)程中PLC的CPU負(fù)載(Wago 750-8100)
本測(cè)試涉及的PLC大多是基于實(shí)時(shí)操作系統(tǒng),CPU負(fù)載是很難監(jiān)測(cè)的。然而,Wago 750-8100是基于Linux,使得我們可在監(jiān)測(cè)測(cè)試過(guò)程中其CPU的利用率。圖12顯示了測(cè)試中CPU的利用率。在測(cè)試中,處理網(wǎng)絡(luò)流量的中斷增加了接近100%。較高的中斷負(fù)載會(huì)影響PLC的控制軟件,進(jìn)而影響控制執(zhí)行的連續(xù)性,導(dǎo)致不同的循環(huán)時(shí)間。
圖12 ?SYN數(shù)據(jù)流攻擊中CPU負(fù)載情況(Wago 750-8100 (2))
4
掃描工具的影響分析
研究人員常說(shuō)應(yīng)當(dāng)避免對(duì)PLC設(shè)備的主動(dòng)掃描,這種行為可能導(dǎo)致PLC工作異常,但是這個(gè)觀點(diǎn)一直缺乏實(shí)驗(yàn)證明。我們的測(cè)試能夠精確的評(píng)估掃描工具對(duì)于設(shè)備的影響。
我們選擇了一些常見(jiàn)的主動(dòng)掃描工具(Nmap 7.60, PLCScan version 0.1, 和 RiskViz SearchEngine)。圖13所示為這三種掃描工具對(duì)被測(cè)設(shè)備的影響。
圖13 ?主動(dòng)掃描工具對(duì)Wago 750-880 (3)的影響。
圖14顯示了三個(gè)網(wǎng)絡(luò)掃描工具在超過(guò)30s的掃描時(shí)間中對(duì)設(shè)備循環(huán)時(shí)間的影響。圖13和14中的數(shù)據(jù)來(lái)自同一個(gè)掃描過(guò)程。我們的實(shí)驗(yàn)表明,掃描工具對(duì)于PLC的循環(huán)周期的確有顯著的影響。如果掃描不能夠與避免的話,唯一的方法時(shí)將掃描數(shù)據(jù)的速率保持在盡可能低的水平。
圖14 ?網(wǎng)絡(luò)掃描工具對(duì)于Wago 750-880 (3)的影響
5
結(jié)論
在文中,我們測(cè)試了PLC在網(wǎng)絡(luò)數(shù)據(jù)流的測(cè)試下電氣輸出的穩(wěn)定性。結(jié)果顯示PLC電氣側(cè)容易受到網(wǎng)絡(luò)數(shù)據(jù)流的影響,這可能對(duì)控制過(guò)程造成災(zāi)難性的影響。我們的分析表明,無(wú)論來(lái)自哪個(gè)制造商,大部分的PLC是容易受到網(wǎng)絡(luò)風(fēng)暴攻擊影響的。除了Crouzet em4之外,我們測(cè)試的所有設(shè)備在網(wǎng)絡(luò)數(shù)據(jù)流測(cè)試下循環(huán)周期發(fā)生了顯著變化。一些設(shè)備在測(cè)試中甚至停止工作或不能夠更新輸出。此外,網(wǎng)絡(luò)掃描對(duì)PLC電氣側(cè)有明顯的影響。
審核編輯:黃飛
評(píng)論