嚴(yán) 彪,尹麗波,應(yīng) 歡,孫玉硯,陳 新,孫利民
(1.中國科學(xué)院信息工程研究所物聯(lián)網(wǎng)安全技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100093;2.中國科學(xué)院大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京 100049;3.國家工業(yè)信息安全發(fā)展研究中心,北京 100040;4.中國電力科學(xué)研究院有限公司,北京 100192)
工業(yè)控制系統(tǒng)(Industrial Control System,ICS)是一類用于工業(yè)生產(chǎn)的控制系統(tǒng)的統(tǒng)稱[1]。它包含監(jiān)視控制與數(shù)據(jù)采集系統(tǒng)(Supervisory Control and Data Acquisition,SCADA)、分布式控制系統(tǒng)和其他一些常見于工業(yè)部門與關(guān)鍵基礎(chǔ)設(shè)施的小型控制系統(tǒng)(如可編程邏輯控制器)等。工控系統(tǒng)涉及電力、交通、水利、制造業(yè)、國防軍工等傳統(tǒng)國家關(guān)鍵基礎(chǔ)設(shè)施的核心[2]。全球多數(shù)國家都將工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)攻擊列為國家間戰(zhàn)略制約手段[3]??梢姡た叵到y(tǒng)的安全問題已直接關(guān)系到國家關(guān)鍵基礎(chǔ)設(shè)施的安危。
ICS在最初發(fā)展的幾十年里完全獨(dú)立,與外界很少甚至沒有通信,整個工業(yè)控制網(wǎng)絡(luò)處于相對封閉的狀態(tài),外部的攻擊者很難進(jìn)入工業(yè)控制網(wǎng)絡(luò)實(shí)施攻擊。但是,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)化的工業(yè)控制系統(tǒng)成為當(dāng)下工業(yè)領(lǐng)域發(fā)展的趨勢。由封閉轉(zhuǎn)向開放的變化,導(dǎo)致ICS原有的“天然屏障”被打破,隨之便帶來了信息泄露、非法訪問、惡意代碼注入等安全問題。據(jù)ICS-CERT的統(tǒng)計數(shù)據(jù)顯示,針對ICS的攻擊事件由2013年[4]的73件上升到2015年[5]295件,且這個數(shù)字還在不斷增加。
早在1986年Denning就設(shè)計并介紹了專門檢測攻擊事件等安全威脅的“入侵檢測模型[6-7]”。到現(xiàn)在,入侵檢測技術(shù)已經(jīng)在傳統(tǒng)IT網(wǎng)絡(luò)中得到了廣泛應(yīng)用,其價值得到了充分認(rèn)可。但是,在工業(yè)控制系統(tǒng)中,由于實(shí)時性要求高、資源受限、更新困難、私有協(xié)議眾多等特點(diǎn),導(dǎo)致傳統(tǒng)的入侵檢測算法很難直接在工業(yè)控制系統(tǒng)中得到應(yīng)用。近年,針對工業(yè)控制系統(tǒng)自身的網(wǎng)絡(luò)配置和行為模式的入侵檢測技術(shù)越來越得到安全學(xué)者的關(guān)注。GOETZ[8]等人根據(jù)設(shè)備自身的XML文件構(gòu)造設(shè)備配置信息,獲取設(shè)備允許的IP地址、協(xié)議端口號和命令等信息,形成了合法配置列表,然后利用收集設(shè)備的配置信息與已形成的合法配置列表進(jìn)行比對,及時發(fā)現(xiàn)重要信息的異常變動。Caselli[9]等人從樓宇智能設(shè)備的說明書和配置文件中提取設(shè)備允許進(jìn)行的操作、訪問地址等信息,轉(zhuǎn)換成約束其行為的規(guī)則用于入侵檢測。這類研究的可行性已經(jīng)在對實(shí)際工控系統(tǒng)的測試中得到了驗(yàn)證[10-11]。
本文提出的基于白名單規(guī)則的工業(yè)控制網(wǎng)絡(luò)入侵檢測算法,使用白名單規(guī)則對工業(yè)控制系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)、工控業(yè)務(wù)邏輯的行為模式進(jìn)行描述,并結(jié)合分級檢測算法對各類異常進(jìn)行檢測。同時,提出了白名單規(guī)則生成算法,提高了該檢測技術(shù)在實(shí)際使用過程中的可用性與移植性。
本文第1章介紹基于白名單機(jī)制的分級入侵檢測模型,闡述整體的檢測框架與工作流程;第2章講解各級別白名單入侵檢測的實(shí)現(xiàn)原理,并從白名單生成與檢測算法兩個方面進(jìn)行詳細(xì)介紹;第3章介紹實(shí)驗(yàn)測試環(huán)境,同時對測試結(jié)果進(jìn)行分析;最后,對本文提出的入侵檢測算法進(jìn)行總結(jié),并給出了下一步改進(jìn)計劃。
工控網(wǎng)絡(luò)流量大致包含3類信息:網(wǎng)絡(luò)實(shí)體信息、工控操作信息以及工控操作流程信息。網(wǎng)絡(luò)實(shí)體信息由工控網(wǎng)絡(luò)數(shù)據(jù)包中的5元組(源IP、源端口、目的IP、目的端口、傳輸層協(xié)議)體現(xiàn),包含工控網(wǎng)絡(luò)中出現(xiàn)的主機(jī)IP地址、網(wǎng)絡(luò)服務(wù)以及網(wǎng)絡(luò)連接等信息。工控操作信息包含工控協(xié)議應(yīng)用層的網(wǎng)絡(luò)數(shù)據(jù)包,通常包含有操作碼、訪問地址以及數(shù)據(jù)信息。工控操作流程信息主要體現(xiàn)在工控流量數(shù)據(jù)包出現(xiàn)的時間與次序上。
本文提出的基于白名單的分級入侵檢測模型,從以上3個角度分別建立白名單規(guī)則,從而實(shí)現(xiàn)對不同異常網(wǎng)絡(luò)行為的檢測。該模型使用網(wǎng)絡(luò)實(shí)體白名單、工控操作白名單以及工控操作流程白名單3個層次對工業(yè)控制系統(tǒng)中網(wǎng)絡(luò)流量的正常行為模式進(jìn)行描述。檢測過程中,一旦實(shí)時網(wǎng)絡(luò)流量中的信息與白名單中的內(nèi)容不相符,則認(rèn)為出現(xiàn)了異常的網(wǎng)絡(luò)流量,并給出對應(yīng)的異常告警信息?;诎酌麊蔚姆旨壢肭謾z測模型,如圖1所示。
圖1 分級入侵檢測模型
分級入侵檢測模型按照網(wǎng)絡(luò)實(shí)體、工控操作、工控操作流程的順序,檢測實(shí)時網(wǎng)絡(luò)流量中的攻擊或異常。其中,網(wǎng)絡(luò)實(shí)體異常檢測實(shí)現(xiàn)對非法工控網(wǎng)絡(luò)實(shí)體的檢測;工控操作異常檢測實(shí)現(xiàn)對合法網(wǎng)絡(luò)實(shí)體的非法工控操作的檢測;工控操作流程異常檢測實(shí)現(xiàn)對合法網(wǎng)絡(luò)實(shí)體的合法工控操作在不合適的上下文中出現(xiàn)的檢測。
網(wǎng)絡(luò)實(shí)體檢測分為網(wǎng)絡(luò)實(shí)體白名單生成和網(wǎng)絡(luò)實(shí)體異常檢測兩個階段。其中,網(wǎng)絡(luò)實(shí)體白名單生成階段,從歷史網(wǎng)絡(luò)流量的數(shù)據(jù)包中識別網(wǎng)絡(luò)主機(jī)、網(wǎng)絡(luò)服務(wù)以及網(wǎng)絡(luò)連接等信息,并假設(shè)歷史網(wǎng)絡(luò)流量不包含有異常數(shù)據(jù),并將識別出網(wǎng)絡(luò)主機(jī)、網(wǎng)絡(luò)服務(wù)以及網(wǎng)絡(luò)連接作為工控網(wǎng)絡(luò)中合法的網(wǎng)絡(luò)實(shí)體。網(wǎng)絡(luò)實(shí)體異常檢測階段則根據(jù)上一階段生成的白名單規(guī)則,使用異常檢測算法對非法的網(wǎng)絡(luò)實(shí)體進(jìn)行檢測。
2.1.1 網(wǎng)絡(luò)實(shí)體白名單生成
網(wǎng)絡(luò)實(shí)體白名單包括主機(jī)白名單、網(wǎng)絡(luò)服務(wù)白名單以及網(wǎng)絡(luò)連接白名單3種類型。主機(jī)白名單包含所有合法的工控網(wǎng)絡(luò)設(shè)備的IP地址。在白名單生成過程中會將歷史網(wǎng)絡(luò)流量中出現(xiàn)的所有IP地址集合作為主機(jī)白名單。網(wǎng)絡(luò)服務(wù)白名單包含工控網(wǎng)絡(luò)所有的網(wǎng)絡(luò)服務(wù)。白名單生成過程中會通過服務(wù)識別技術(shù)識別所有的工控網(wǎng)絡(luò)服務(wù)。每個工控網(wǎng)絡(luò)服務(wù)由服務(wù)器IP地址、服務(wù)端口地址以及傳輸層協(xié)議組成,并將其集合作為網(wǎng)絡(luò)服務(wù)白名單。網(wǎng)絡(luò)連接白名單包含工控網(wǎng)絡(luò)中所有合法的網(wǎng)絡(luò)連接,每個合法網(wǎng)絡(luò)連接由工控網(wǎng)絡(luò)服務(wù)和客戶端IP地址組成。白名單生成過程中會統(tǒng)計網(wǎng)絡(luò)數(shù)據(jù)包中所有的網(wǎng)絡(luò)連接信息,并將其集合作為網(wǎng)絡(luò)連接白名單。圖2、圖3、圖4分別是主機(jī)白名單、網(wǎng)絡(luò)服務(wù)白名單和網(wǎng)絡(luò)連接白名單的格式。
圖2 主機(jī)白名單格式
圖3 網(wǎng)絡(luò)服務(wù)白名單格式
圖4 網(wǎng)絡(luò)連接白名單格式
2.1.2 網(wǎng)絡(luò)實(shí)體異常檢測算法
網(wǎng)絡(luò)實(shí)體異常檢測算法從實(shí)時工控網(wǎng)絡(luò)流量中識別主機(jī)IP地址、網(wǎng)絡(luò)服務(wù)以及網(wǎng)絡(luò)連接信息,分別在對應(yīng)的網(wǎng)絡(luò)實(shí)體白名單中進(jìn)行查找。如果查找不到,則說明是相應(yīng)的網(wǎng)絡(luò)實(shí)體異常,并給出告警信息。網(wǎng)絡(luò)實(shí)體異常檢測,如算法1、算法2和算法3所示。
算法1:主機(jī)異常檢測
if Packetip?validipthen
alert(“forbidden host”)
end if
算法2:網(wǎng)絡(luò)服務(wù)異常檢測
if Packetservice?Validservicethen
alert(“forbidden service”)
end if
算法3:網(wǎng)絡(luò)連接異常檢測
if Packetconnection?Validconnectionthen
alert(“forbidden connection”)
end if
工控操作檢測針對工控設(shè)備進(jìn)行非法操作和非法地址訪問的檢測。工控操作檢測分為工控操作白名單生成和工控操作異常檢測兩個階段。其中,工控操作白名單生成階段從歷史網(wǎng)絡(luò)流量篩選出工控協(xié)議數(shù)據(jù)包,并從中提取操作碼和訪問地址信息。同樣地,假設(shè)歷史網(wǎng)絡(luò)流量不包含有異常數(shù)據(jù),將工控數(shù)據(jù)包中出現(xiàn)的操作碼和訪問地址作為合法的工控操作,并生成工控操作白名單規(guī)則。工控操作異常檢測階段則根據(jù)上一階段生成的白名單規(guī)則,使用對應(yīng)的異常檢測算法,對非法操作和非法地址訪問進(jìn)行檢測。
2.2.1 工控操作白名單生成
工控操作白名單包括工控操作碼白名單和訪問地址白名單2種類型。工控操作碼白名單是每個工控設(shè)備(如PLC、RTU)的合法操作集合。白名單生成過程中會從工控數(shù)據(jù)包中提取對特定工控設(shè)備的操作碼,并將其集合作為特定工控設(shè)備的操作碼白名單。另外,對于讀寫功能碼,工控數(shù)據(jù)包會包含對應(yīng)的訪問地址信息,將訪問地址按可讀/寫進(jìn)行類,得到特定工控設(shè)備的可讀訪問地址范圍和可寫訪問地址范圍,并將其作為訪問地址白名單。圖5、圖6分別是工控操作白名單和工控訪問地址白名單的格式。
圖5 工控操作白名單格式
圖6 工控訪問地址白名單格式
2.2.2 工控操作異常檢測算法
工控操作異常檢測算法首先從工控網(wǎng)絡(luò)數(shù)據(jù)包中提取工控操作碼,然后在訪問的工控設(shè)備的操作碼白名單中進(jìn)行查找。如果查找不到,則說明是操作異常,同時給出工控操作異常告警。進(jìn)一步地,如果工控操作是讀寫操作,還會提取訪問地址信息,并在所訪問工控設(shè)備的訪問地址白名單進(jìn)行查找。如果查找不到,則說明是訪問地址異常,給出工控訪問地址異常告警。工控操作異常檢測,如算法4、算法5所示。
算法4:工控操作異常檢測
if ICSPacketfunc?validfuncthen
alert(“forbidden function code”)
end if
算法5:工控訪問地址異常檢測
if ICSPackaddr?Validaddrthen
alert(“access forbidden address”)
end if
工控操作流程檢測是對工控操作在時間和空間上出現(xiàn)的合法性的檢測。工控操作流程檢測同樣分為工控操作流程白名單生成和工控操作流程異常檢測2個階段。其中,工控操作流程白名單生成階段從歷史網(wǎng)絡(luò)流量中篩選出帶有時間戳信息的工控協(xié)議數(shù)據(jù)包。同樣地,假設(shè)歷史網(wǎng)絡(luò)流量中不包含有異常數(shù)據(jù),針對同一工控操作,從發(fā)生時間、周期上總結(jié)特征,生成工控操作流程時間白名單和工控操作流程周期白名單。工控操作流程異常檢測階段則根據(jù)上一階段生成的白名單規(guī)則,使用對應(yīng)的異常檢測算法,對工控操作的非法時間和非法周期進(jìn)行檢測。
2.3.1 工控操作流程白名單生成
工控操作流程白名單包括工控操作時間白名單和工控操作周期白名單2種類型。工控操作時間白名單描述的是特定工控設(shè)備的特定工控操作只能發(fā)生在特定時間段內(nèi);工控操作周期白名單描述的是特定工控設(shè)備的工控操作必須滿足一定的周期性。工控操作時間白名單生成過程如下:
(1)將采集到的相同的工控數(shù)據(jù)包按照時間戳對應(yīng)到時間軸(0:00—23:59)上;
(2)使用K-means聚類算法對這些數(shù)據(jù)進(jìn)行聚類,初始的K值選取1~5,并將初始點(diǎn)均勻分布;
(3)使用輪廓系數(shù)法判定是否存在時間特性,如果存在,選出合適的值進(jìn)入第4步;否則,結(jié)束;
(4)將K個簇所形成的K個時間段作為該工控操作出現(xiàn)的K個合法時間段,并生成如圖7所示格式的白名單。
圖7 工控操作時間白名單格式
工控操作周期白名單生成過程如下:
(1)記錄相同的工控數(shù)據(jù)包出現(xiàn)的時間間隔,形成一個時間差序列Δt1,Δt2,…,Δtn;
(2)統(tǒng)計時間差序列的平均值Δ—t和方差σ;
圖8 工控操作周期白名單格式
2.3.2 工控操作流程異常檢測算法
工控操作流程檢測是對特定工控設(shè)備的特定工控操作在發(fā)生時間和周期上的合法性檢測。算法首先從工控網(wǎng)絡(luò)數(shù)據(jù)包中提取其工控操作,同時記錄其出現(xiàn)的時間。如果該工控操作存在時間限制,則在其時間白名單內(nèi)查找。查找不到,則認(rèn)定為工控操作時間異常,并給出工控操作時間異常告警。另一方面,如果該工控操作存在周期限制,則結(jié)合周期白名單進(jìn)行判定。做法是將本次出現(xiàn)的時間與上次出現(xiàn)的時間差和合法周期進(jìn)行對比,如果超出一定范圍,則認(rèn)定為工控操作周期異常。工控操作流程異常檢測如算法6、算法7所示。
算法6:工控操作時間異常檢測
if ICSPacketfunc∈limitedfuncthen
if ICSPackettimestamp∈Validtime_interval
alert(“function code time abnormal”)
end if
end if
算法7:工控操作周期異常檢測
if ICSPacketfunc∈limitedfuncthen
if |ICSPackettimestamp∈ Validtime_interval|> ε
alert(“function code cycle abnormal”)
end if
為了驗(yàn)證本文提出的方法在工控環(huán)境下的有效性,在實(shí)驗(yàn)室環(huán)境下仿照真實(shí)燃?xì)夤芫W(wǎng)的業(yè)務(wù)流程搭建了模擬的工控環(huán)境。利用上位機(jī)、組態(tài)軟件、PLC、開關(guān)、閥門等各種類型的工控軟硬件設(shè)備組成小型工控網(wǎng)絡(luò),其網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖9所示。
圖9 實(shí)驗(yàn)環(huán)境網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
檢測過程中,入侵檢測設(shè)備被動監(jiān)聽工業(yè)交換機(jī)鏡像的網(wǎng)絡(luò)流量,對網(wǎng)絡(luò)流量進(jìn)行會話解析、協(xié)議深度解析,使用算法1~算法7檢驗(yàn)是否出現(xiàn)各類異常。
實(shí)驗(yàn)過程分為規(guī)則學(xué)習(xí)和異常檢測2個階段。為了保證學(xué)習(xí)階段能夠充分學(xué)習(xí)整個系統(tǒng)的網(wǎng)絡(luò)流量特征,將系統(tǒng)穩(wěn)定運(yùn)行7天產(chǎn)生的數(shù)據(jù)作為學(xué)習(xí)樣本,共生成了57條白名單規(guī)則。在檢測階段讓系統(tǒng)運(yùn)行了48個小時,期間使用自動化工具制造了多次攻擊和異常事件。入侵檢測系統(tǒng)的檢測結(jié)果如表1所示。
表1 實(shí)驗(yàn)結(jié)果
從實(shí)驗(yàn)結(jié)果可以看出,該檢測算法對各類攻擊和異常的檢測能力都能到達(dá)97%以上。特別是對主機(jī)異常和網(wǎng)絡(luò)服務(wù)異常,檢測準(zhǔn)確率高達(dá)100%,這是因?yàn)樵诠た鼐W(wǎng)絡(luò)中很少出現(xiàn)主機(jī)變更和網(wǎng)絡(luò)服務(wù)的增減。而其他類型的異常產(chǎn)生了一定的誤報和漏報,主要是由于操作員手工干預(yù)和規(guī)則生成算法參數(shù)設(shè)置造成的。整體結(jié)果表明,該入侵檢測算法對于各類攻擊或異常具有較好的檢測效果。
本文針對工控網(wǎng)絡(luò)相對于傳統(tǒng)IT網(wǎng)絡(luò)的特殊性,提出了基于白名單機(jī)制的分級入侵檢測算法,使用白名單規(guī)則從網(wǎng)絡(luò)實(shí)體、工控操作以及工控操作流程3個層次,分別對工控網(wǎng)絡(luò)的行為模式進(jìn)行描述,并結(jié)合對應(yīng)的檢測算法對攻擊和異常進(jìn)行檢測。實(shí)驗(yàn)表明,本文提出的方法能夠準(zhǔn)確、高效地檢測出工控網(wǎng)絡(luò)中出現(xiàn)的攻擊和異常,對入侵檢測系統(tǒng)在工業(yè)控制網(wǎng)絡(luò)下的實(shí)施具有較好的參考價值。
隨著研究的深入,工控網(wǎng)絡(luò)流量還有更多的行為模式有待挖掘,如工控操作對應(yīng)數(shù)據(jù)的特點(diǎn)、不同工控操作之間的關(guān)聯(lián)關(guān)系等。為了對工業(yè)控制網(wǎng)絡(luò)提供更高的安全保障,下一步研究將會著眼于使用白名單技術(shù)對這些深層的特征進(jìn)行描述與檢測。
參考文獻(xiàn):
[1] Stouffer K A,Faclo J A,Scarfone K A.Guide to Industrial Control Systems(ICS) Security-Supervisory Control and Data Acquisition (SCADA) Systems,Distributed Control Systems (DCS),and Other Control System Configurations Such As Programmable Logic Controllers(PLC)[R].Gait hersburg,Maryland,USA:National Institute of Stand ards and Technology (NIST),2011.
[2] Peng Y,Jiang C Q,Xie F,et al.Industrial Control System Cybersecurity Research[J].Journal of Tsinghua University:Science and Technology,2012,52(10):1396-1408.
[3] Miller B,Rowe D.A Survey SCADA of and Critical Infrastructure Incidents[C].Proc of the 1st Annual Conference on Research in Information, 2012: 51-56..
[4] ICS-CERT.Ics-cser Year in Review.[EB/OL].(2013-12-21)[2017-12-13].https://icscert.uscert.gov/sites/default/files/Annual Re-ports/Year In Review FY2013 Final.pdf.
[5] ICS-CERT.Incident Response Activity November 2014-december2015.[EB/OL].(2015-12-22)[2017-12-13].https://icscert.uscert.gov/sites/default/files/Monitors/ICS-CERT Monitor Nov-Dec2015 S508C.pdf.
[6] Denning D E.An Intrusion-Detection Model[J].IEEE Transactions on Software Engineering,1987(02):222-232.
[7] Denning,Dorothy E.A Lattice Model of Secure Information Flow[C].Communications of the ACM,1976:236-243.
[8] GOETZ E,SHENOI S.Critical Infrastructure Protection[M].Boston:Springer,2008:161-173.
[9] Caselli M,Zambon E,Amann J,et al.Specification Mining for Intrusion Detection in Networked Control Systems[J].Proceedings of the 25th USENIX Security Symposium.USENIX Association,2016.
[10] 程冬梅,嚴(yán)彪,文輝等.基于規(guī)則匹配的分布式工控入侵檢測系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2017,(7):45-51.
[11] Jardine W,Frey S,Green B,et al.SENAMI:Selective Non-Invasive Active Monitoring for ICS Intrusion Detec-tion[C].Proceedings of the 2nd ACM Workshop on Cyber-Physical Systems Security and Privacy ACM,2016:23-34.