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