PLC信息安全防護(hù)技術(shù)研究(上篇)
大量的遺留設(shè)備、專用的軟硬件、有限的處理能力以及地域上分布的廣泛性,極大的阻礙了傳統(tǒng)計(jì)算機(jī)體系中低廉且高效的安全防護(hù)方案的推廣應(yīng)用?!禛B/T 33008.1-2016 工業(yè)自動(dòng)化和控制系統(tǒng)網(wǎng)絡(luò)安全可編程序控制器(PLC)第1部分:系統(tǒng)要求》[1]給出了系統(tǒng)能力等級(jí)(CL)如下:
(1)CL1:提供機(jī)制保護(hù)控制系統(tǒng)防范偶然的、輕度的攻擊;
(2)CL2:提供機(jī)制保護(hù)控制系統(tǒng)防范有意的、利用較少資源的和一般技術(shù)的簡單手段可以達(dá)到較小破壞后果的攻擊;
(3)CL3:提供機(jī)制保護(hù)控制系統(tǒng)防范惡意的、利用中等資源、PLC特殊技術(shù)的復(fù)雜手段可能達(dá)到較大破壞后果的攻擊;
(4)CL4:提供機(jī)制保護(hù)控制系統(tǒng)防范惡意的、使用擴(kuò)展資源、PLC特殊技術(shù)的復(fù)雜手段與工具可能達(dá)到重大破壞后果的攻擊。
基于《GB/T 33008.1-2016》的安全要求,我們從硬件設(shè)備、通信及協(xié)議、執(zhí)行行為、網(wǎng)絡(luò)隔離、控制組態(tài)等方面對(duì)PLC的安全防御技術(shù)進(jìn)行了歸類整理。在上篇部分,我們將著重介紹基于硬件設(shè)備、通信及協(xié)議和執(zhí)行行為的PLC安全防護(hù)技術(shù)。
基于硬件設(shè)備的PLC安全防護(hù)
對(duì)于PLC設(shè)備的安全防護(hù)主要包括:
1)驗(yàn)證固件的完整性,對(duì)固件的修改進(jìn)行及時(shí)感知。Adelstein等[2]引入基于固件簽名的檢測方法,包含一個(gè)固件“驗(yàn)證編譯器”,允許固件在運(yùn)行時(shí)接受檢驗(yàn),通過檢測確定的執(zhí)行流特性、內(nèi)存及隊(duì)長完整性。Zhang等[3]提出IOCheck框架,在運(yùn)行時(shí)驗(yàn)證固件完整性和IO配置,在假設(shè)可信的BIOS啟動(dòng)之后,IOCheck利用X86 CPU架構(gòu)下的系統(tǒng)管理模式來運(yùn)行完整性校驗(yàn)。Duflot等[4]提出NAVIS框架,來檢測網(wǎng)卡固件的完整性。
2)采用可信計(jì)算等技術(shù),提高底層數(shù)據(jù)傳輸?shù)目尚判?。Stephen McLaughlin等[5]提出應(yīng)該在PLC中配備可信計(jì)算基(TCB,Trusted Computing Base)。可信計(jì)算基由一組可信軟硬件組成,用來保證PLC對(duì)安全策略的執(zhí)行。如圖1。
圖1是一個(gè)基于TCB的安全策略的執(zhí)行過程
基于通信及協(xié)議的PLC安全防護(hù)
由于原來的PLC控制協(xié)議沒有加密、認(rèn)證等機(jī)制,導(dǎo)致攻擊者只要能和PLC通信,簡單的構(gòu)造畸形數(shù)據(jù)包就可以達(dá)到實(shí)施破壞的目的,因此可以從協(xié)議及通信的角度對(duì)PLC進(jìn)行安全防護(hù)。Spenneberg等[6]指出,他們設(shè)計(jì)出的專門針對(duì)PLC的蠕蟲防護(hù)非常有效,但是在遭受感染期的過程中,PLC大概有10秒鐘是不工作的,在此期間原始用戶的程序也不會(huì)運(yùn)行,而且會(huì)產(chǎn)生大量的不正常流量。而且在掃描和感染階段,會(huì)發(fā)送很多可疑的數(shù)據(jù)包。這些都是可以被基于流量的檢測機(jī)制發(fā)現(xiàn)。Malchow等[7]引入一款PLC Guard安全防護(hù)設(shè)備,分析PLC和工程師站之間的通信流量。當(dāng)工程師站向PLC傳輸代碼時(shí),PLC Guard分析代碼的傳遞,并和以前版本進(jìn)行比較(如圖2所示),包括不同層次上的圖形抽象和概括。操作員可以選擇接受或拒絕代碼傳輸,所以此設(shè)備很難被攻破。Nelson等[8]提出使用MAC地址綁定來保證物理上連接的端口安全,對(duì)PLC和工程師站之間的通信進(jìn)行加密,從而增加逆向分析控制協(xié)議的難度。Bestak等[9]提出對(duì)PLC等設(shè)備使用一種加密算法來對(duì)測量的數(shù)據(jù)進(jìn)行加密,保證通信過程中不被攻擊者惡意篡改,從而達(dá)到數(shù)據(jù)完整性的目標(biāo)。Heo等[10]提出,可以對(duì)自動(dòng)化控制中的PLC通信網(wǎng)絡(luò)進(jìn)行加密,從而保證數(shù)據(jù)真實(shí)性。Bestak等[11]指出可以嘗試在PLC網(wǎng)絡(luò)中使用加密算法,從而保證通信安全性。Andrew Clark等[12]提出了一種新型的防御框架,利用一組隨機(jī)化的加密密鑰對(duì)系統(tǒng)操作員發(fā)送給PLC的控制命令進(jìn)行認(rèn)證??蚣芾眉用芊治?、控制理論、博弈論的方法來對(duì)惡意控制指令造成的影響進(jìn)行量化分析,如圖3所示,在過程控制網(wǎng)絡(luò)(PCN,Porocess Control Network)與控制系統(tǒng)網(wǎng)絡(luò)(CSN,Control System Network)交互過程中加入了主動(dòng)加密機(jī)制,用來對(duì)發(fā)送的控制命令進(jìn)行認(rèn)證。

圖2 PLC Gurad防護(hù)過程示意圖
圖3 PLC主動(dòng)加密機(jī)制
Haroon Wardak等[13]指出目前報(bào)道的大多數(shù)針對(duì)PLC的攻擊都是基于PLC以一種未授權(quán)的方式建立通信,并對(duì)PLC訪問控制問題進(jìn)行了研究,分析了通常采用的是基于密碼的訪問控制機(jī)制的脆弱性,指出可以在PLC和其他設(shè)備之間配置工業(yè)自動(dòng)化環(huán)境下的數(shù)據(jù)安全模塊(Scalance S)的問題得到解決。Stanislav Ponomarev等[14]提出了一種通過測量和驗(yàn)證通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)來檢測入侵網(wǎng)絡(luò)的ICS的方法。
基于執(zhí)行行為的PLC安全防護(hù)
包括對(duì)PLC的內(nèi)存行為、發(fā)包的時(shí)間、動(dòng)作執(zhí)行等進(jìn)行建模,從而能夠?qū)LC的執(zhí)行行為進(jìn)行監(jiān)控。Spenneberg等[6]指出蠕蟲在感染PLC的過程中會(huì)自動(dòng)重啟,這是屬于異常執(zhí)行動(dòng)作。而Langner等[15]指出在攻擊過程中OB1需要首先調(diào)用惡意代碼,執(zhí)行終止條件等,這些都是可以被檢測到的異常行為,從而可以采取相應(yīng)的安全措施。Chih-TaLin 等[16]對(duì)Modbus協(xié)議的深入分析,提出了一種基于自動(dòng)學(xué)習(xí)的惡意入侵檢測方法,并在開發(fā)的測試平臺(tái)上進(jìn)行了各種測試,入侵檢測框架如圖4所示。
圖4 基于機(jī)器學(xué)習(xí)的入侵檢測機(jī)制
Ken Yau 等[17]提出使用半監(jiān)督機(jī)器學(xué)習(xí),即單類支持向量機(jī)(OCSVM,One-class Support Vector Machine),根據(jù)捕獲的PLC存儲(chǔ)器地址值來檢測PLC異常行為,主要步驟如圖5所示。Saman Zonouz等[18]提出了一種利用PLC代碼符號(hào)執(zhí)行的方法來檢測工業(yè)控制惡意軟件。具體過程如圖6所示,首先對(duì)安全要求取反,生成對(duì)應(yīng)的不安全要求(UR),然后尋找滿足條件的路徑P。其中P為TEG和UR的笛卡爾積。如果不存在滿足條件的路徑,則說明代碼符合安全要求,可以安全執(zhí)行;否則,生成連接路徑條件并計(jì)算樣本輸入向量,該向量可用來進(jìn)行調(diào)試。Henry Senyondo 等[19]提出了PLCloud,一種基于云的安全防護(hù)架構(gòu),通過最小的基于云計(jì)算的可信安全驗(yàn)證模塊來最小化基礎(chǔ)設(shè)施可信計(jì)算基。PLCloud包含兩個(gè)部分:PLCloud Agent和虛擬的PLC模擬器。PLCloud Agent負(fù)責(zé)搜集PLC的控制指令和傳感器輸入,同時(shí)接收模擬器的通知并執(zhí)行響應(yīng)的操作。PLC模擬器功能比較強(qiáng)大,實(shí)時(shí)與物理PLC設(shè)備狀態(tài)保持同步,周期性的保存快照以備恢復(fù)時(shí)使用,并可以執(zhí)行模型檢驗(yàn)、控制流圖符號(hào)執(zhí)行、安全要求校驗(yàn)、線性時(shí)序模型檢測等功能,從而提供最小化基礎(chǔ)設(shè)施可信計(jì)算基。
圖5 利用OCSVM的異常檢測步驟

圖6 PLC代碼符號(hào)執(zhí)行安全檢測機(jī)制
參考文獻(xiàn)
[1]GB/T 33008.1-2016 工業(yè)自動(dòng)化和控制系統(tǒng)網(wǎng)絡(luò)安全 可編程序控制器(plc) 第1部分:系統(tǒng)要求.[S].2016.
[2]Adelstein F, Stillerman M, Kozen D. Malicious code detection for open firmware [C]//Computer Security Applications Conference, 2002. Proceedings. 18th An-nual. IEEE, 2002:403-412.
[3]Zhang F, Wang H, Leach K, et al. A framework to secure peripherals at runtime [C]//European Symposium on Research in Computer Security. Springer, Cham, 2014: 219-238.
[4]Duflot L, Perez Y A, Morin B. What if you can’t trust your network card?[C]//International Workshop on Recent Advances in Intrusion Detection. Springer, Ber-lin, Heidelberg, 2011: 378-397.
[5]McLaughlin S E, Zonouz S A, Pohly D J, et al. A Trusted Safety Verifier for Process Controller Code[C]//NDSS. 2014, 14.
[6]Spenneberg R, Brüggemann M, Schwartke H. Plc-blaster: A worm living solely in the plc[J]. Black Hat Asia, Marina Bay Sands, Singapore, 2016.
[7]Malchow J O, Marzin D, Klick J, et al. Plc guard: A practical defense against attacks on cyber-physical sys-tems[C]//Communications and Network Security (CNS), 2015 IEEE Conference on. IEEE, 2015: 326-334.
[8]Nelson T. Common control system vulnerability[R]. Idaho National Laboratory (INL), 2005.
[9]Bestak I, Orgon M. Performance measurement of en-cryption algorithms used in PLC devices[J]. Inter-na-tional Journal of Research and Reviews in Computer Science (IJRRCS), 2011, 2(5).
[10]Heo J, Hong C S, Ju S H, et al. A security mecha-nism for automation control in PLC-based net-works[C]//Power Line Communications and Its Appli-cations, 2007. ISPLC'07. IEEE International Symposium on. IEEE, 2007: 466-470.
[11]Bestak I, Orgon M. The use of encryption algo-rithms in PLC networks[J]. Simulation, 2012, 3(64): 168.
[12]Clark A, Zhu Q, Poovendran R, et al. An impact-aware defense against Stuxnet[C]// American Control Con-ference. IEEE, 2013:4140-4147.
[13]Wardak H, Zhioua S, Almulhem A. PLC access control: a security analysis[C]// Industrial Control Systems Se-curity. IEEE, 2017:1-6.
[14]Ponomarev S. Intrusion Detection System of industrial control networks using network telemetry[J]. Disserta-tions & Theses - Gradworks, 2015.
[15]Langner R. A time bomb with fourteen bytes[J]. Available: hUp: llwww. langner. comlen, 2011.
[16]Lin C T, Wu S L, Lee M L. Cyber attack and defense on industry control systems[C]//Dependable and Secure Computing, 2017 IEEE Conference on. IEEE, 2017: 524-526.
[17]Yau K, Chow K P, Yiu S M, et al. Detecting anomalous behavior of PLC using semi-supervised machine learn-ing[C]// IEEE Conference on Communications and Network Security.IEEE, 2017:580-585.
[18]Zonouz S, Rrushi J, Mclaughlin S. Detecting Industrial Control Malware Using Automated PLC Code Analyt-ics[J]. IEEE Security & Privacy, 2014, 12(6):40-47.
[19]Senyondo H, Sun P, Berthier R, et al. PLCloud: Com-prehensive power grid PLC security monitoring with zero safety disruption[C]// IEEE International Confer-ence on Smart Grid Communications. IEEE, 2015:809-816.
【本文為51CTO專欄作者“中國保密協(xié)會(huì)科學(xué)技術(shù)分會(huì)”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】