方 源,鮑 克,趙一凡,李富勇
(浙江省電子信息產(chǎn)品檢驗(yàn)所,浙江 杭州310007)
工業(yè)控制系統(tǒng)(Industrial Control System,ICS)指能夠?qū)I(yè)生產(chǎn)起到調(diào)控作用的系統(tǒng),包含監(jiān)視控制與數(shù)據(jù)采集系統(tǒng)(SCADA)、分布式控制系統(tǒng)(DCS)及其他工業(yè)有關(guān)部門和生產(chǎn)現(xiàn)場的小型控制系統(tǒng)(PLC)等,是電力、能源、化工等國家關(guān)鍵基礎(chǔ)設(shè)施的核心[1-2]。
互聯(lián)與共享成為工業(yè)控制系統(tǒng)新的發(fā)展方向,工控系統(tǒng)與企業(yè)辦公網(wǎng)和互聯(lián)網(wǎng)逐漸相連,工業(yè)控制網(wǎng)絡(luò)環(huán)境變得越來越開放。而由于傳統(tǒng)工業(yè)控制系統(tǒng)本身缺乏對網(wǎng)絡(luò)信息安全的保障,缺乏專門的安全防御措施[3]。近年來,工業(yè)控制系統(tǒng)新型攻擊手段層出不窮,尤其是震網(wǎng)(Stuxnet)病毒事件發(fā)生后,鑒于工業(yè)控制系統(tǒng)的安全直接關(guān)系到國家關(guān)鍵基礎(chǔ)設(shè)施的安危,影響社會穩(wěn)定,因此引起各國高度重視。
工業(yè)控制系統(tǒng)需從設(shè)備安全和信息數(shù)據(jù)安全兩方面保障系統(tǒng)穩(wěn)定運(yùn)行,從ICS自身結(jié)構(gòu)看,由于通信協(xié)議相對簡單、操作系統(tǒng)和軟件沒有相應(yīng)的防護(hù)措施,這些漏洞都可被利用進(jìn)行破壞性的操作;從外部網(wǎng)絡(luò)環(huán)境看,ICS廣泛使用TCP/IP等通信協(xié)議,導(dǎo)致傳統(tǒng)的IT系統(tǒng)攻擊行為蔓延到工控網(wǎng)絡(luò),致使工業(yè)控制系統(tǒng)面臨更大的安全威脅[4]。
目前,工業(yè)控制入侵檢測系統(tǒng)(IDS)是依據(jù)安全架構(gòu)和策略進(jìn)行設(shè)計(jì),并對系統(tǒng)進(jìn)行安全漏洞掃描、安全配置加強(qiáng)、身份認(rèn)證處理,同時采用訪問控制、滲透檢測等技術(shù)進(jìn)行安全防御,保障工控系統(tǒng)安全穩(wěn)定運(yùn)行[5]。入侵檢測是一種主動的安全防護(hù)技術(shù),通過對系統(tǒng)通信行為的實(shí)時監(jiān)視、分析,以檢測出異常的攻擊行為操作,并在攻擊行為產(chǎn)生危害前進(jìn)行攔截、報警、系統(tǒng)恢復(fù)等操作[6]。
當(dāng)前,已經(jīng)有很多面向ICS的安全產(chǎn)品,如殺毒軟件、工控火墻、網(wǎng)閘等。但安全產(chǎn)品的研發(fā)需考慮ICS的特殊性,若直接使用IT領(lǐng)域原有的產(chǎn)品,不但達(dá)不到期望的效果,反而會帶來新的適應(yīng)性問題。
目前廣泛應(yīng)用的ICS入侵檢測主要采用基于特征和基于異常兩種原理。基于特征的檢測技術(shù)類似殺毒軟件,對于已發(fā)生的攻擊方式檢測效率較高,但無法識別新類型的攻擊方式;基于異常的入侵檢測與攻擊方式無關(guān),因此具有更高的安全性[7]。但由于技術(shù)發(fā)展尚不成熟,誤報率和漏報率相比前者要高。對于傳統(tǒng)的TCP/IP網(wǎng)絡(luò),入侵檢測系統(tǒng)是一個研究成熟的領(lǐng)域,但由于通信協(xié)議和工業(yè)安全要求的特殊性,傳統(tǒng)的入侵檢測系統(tǒng)不能提供針對工業(yè)控制系統(tǒng)攻擊的有效安全防護(hù)。以SCADA系統(tǒng)為例,最近發(fā)布了一些可檢測針對SCADA協(xié)議的攻擊的規(guī)則和預(yù)程序模型,利用這些規(guī)則的IDS能夠確定基于單包的攻擊。然而,針對SCADA的攻擊不僅基于單包,需要一個攻擊的關(guān)聯(lián)機(jī)制。本文提出了一種基于流量的入侵檢測方法,其原理是根據(jù)通過數(shù)據(jù)包的IP地址和端口號來確定不同的通信雙方,從而可更加準(zhǔn)確地檢測通過的數(shù)據(jù)包,提高入侵檢測系統(tǒng)的準(zhǔn)確性。
實(shí)際的工業(yè)生產(chǎn)基本都具有周期性特點(diǎn),這也是ICS網(wǎng)絡(luò)跟傳統(tǒng)IT網(wǎng)絡(luò)之間的區(qū)別。IT網(wǎng)絡(luò)由于使用者的隨機(jī)性很強(qiáng),比如在某個辦公網(wǎng)內(nèi),不能保證各時間段內(nèi)使用人數(shù)不變,因此網(wǎng)絡(luò)流量呈現(xiàn)出不確定的特點(diǎn);但針對工業(yè)控制系統(tǒng)通信網(wǎng)絡(luò)來說,由于生產(chǎn)流程需預(yù)先設(shè)定,因此周期性特點(diǎn)較突出,而這也是將流量特征作為檢測特征的原因。
工業(yè)控制系統(tǒng)通信網(wǎng)絡(luò)具有周期性特點(diǎn),這是基于流量特征的入侵檢測模塊的適用條件。基于流量特征的入侵檢測模塊選取的檢測特征是流量特征,具體來說即某個時間段內(nèi),由IP地址和端口號確定通信雙方通過的數(shù)據(jù)包數(shù)量。流量特征的選取意味著要求工業(yè)控制系統(tǒng)通信網(wǎng)絡(luò)需要具有周期性特點(diǎn)假設(shè)工業(yè)控制系統(tǒng)通信網(wǎng)絡(luò)不具有周期性特點(diǎn),即任意時間段內(nèi),由 IP 地址和端口號確定的通信雙方之間通過的數(shù)據(jù)包數(shù)量是隨機(jī)的,將會導(dǎo)致流量特征失效,無法使用流量特征作為入侵模塊的檢測特征。
根據(jù)工業(yè)控制系統(tǒng)環(huán)境中通信的周期性特點(diǎn),將實(shí)際的通信流量和時間的對應(yīng)關(guān)系作為一種檢測特征,根據(jù)生產(chǎn)工藝特征,計(jì)算出不同時間段內(nèi)通過流量的上限閾值和下限閾值。檢測過程中,若某個時間段內(nèi)出現(xiàn)數(shù)值不在上、下閾值范圍內(nèi)的情況則報警。
本文提出了一種基于流量特征的入侵檢測方法,先記錄下控制端和執(zhí)行端的IP和端口號等,再處理數(shù)據(jù),將流量和時間對應(yīng)的特征建立向量集合,最后進(jìn)行入侵檢測;若發(fā)現(xiàn)有未知IP地址或端口進(jìn)行通信,且某個時間段內(nèi)的通信流量大于或小于學(xué)習(xí)階段的閾值,則報警。這種方法能極大地提高系統(tǒng)的通信安全性,具體流程如圖1所示。
圖1 基于流量統(tǒng)計(jì)的入侵檢測流程圖
當(dāng)系統(tǒng)數(shù)據(jù)包經(jīng)過基于流量特征的入侵檢測模塊時,檢測模塊會統(tǒng)計(jì)對應(yīng)時間段內(nèi)通過的數(shù)據(jù)包數(shù)量,并跟預(yù)先設(shè)定的對應(yīng)數(shù)據(jù)包數(shù)量做比對,若檢測合法則令其通過,否則報警。
該流程為基于流量特征的入侵檢測流程,其中數(shù)據(jù)包截取字段后需要處理成(YIP,Yd,DIP,Dd,T,N)向量格式。YIP是通信數(shù)據(jù)包的源IP地址;Yd為通信數(shù)據(jù)包源端口;DIP為通信數(shù)據(jù)包目的IP地址;Dd為通信數(shù)據(jù)包目的端口;T為時刻值;N為T時間段內(nèi)通過的數(shù)據(jù)包數(shù)量。超過統(tǒng)計(jì)合法數(shù)據(jù)包范圍,判斷為通信異常,這代表攻擊者通過對服務(wù)器端發(fā)送大量的請求數(shù)據(jù)包使得服務(wù)器端無法正常響應(yīng)。
假設(shè)主設(shè)備1的IP地址是 192.10.16.222,端口號是228,跟3個不同的從設(shè)備通信分別使用3個不同的端口1228,2228,3228,3個從設(shè)備的 IP 地址分別為 192.10.16.101,192.10.16.102,192.10.16.103,此處從設(shè)備通信對待檢測的工業(yè)控制系統(tǒng)通信進(jìn)行數(shù)據(jù)包檢測、識別和分析。首先進(jìn)行數(shù)據(jù)包截取,提取的字段包括源IP地址、源端口號、目的IP地址、目的端口號等。
根據(jù)雙方通信的數(shù)據(jù)包數(shù)量進(jìn)行統(tǒng)計(jì)分析,而此處的通信雙方不僅是不同的主設(shè)備和從設(shè)備組合,還包含同樣的主設(shè)備、從設(shè)備組合中的不同端口組合。通信數(shù)據(jù)包的上限為 60,下限為 30,第3行中通信數(shù)據(jù)包的數(shù)量是 120,遠(yuǎn)遠(yuǎn)超過了統(tǒng)計(jì)合法數(shù)據(jù)包范圍,判斷為通信異常,這代表攻擊者通過對通信的服務(wù)器端發(fā)送大量的請求數(shù)據(jù)包,使得服務(wù)器端無法響應(yīng)流量數(shù)據(jù)包樣本見表1所列。
表1 流量數(shù)據(jù)包樣本
對于多設(shè)備間互相傳輸?shù)墓I(yè)控制系統(tǒng)來說,可將數(shù)據(jù)包組合成M×N組向量的形式。在 M×N組數(shù)據(jù)中,分別將每組數(shù)據(jù)組成向量(YIP,Yd,DIP,Dd,T,N),再將 M×N 組向量傳入檢測模塊,基于兩個條件判斷其是否異常:
(1)基于時間流量的入侵檢測模塊監(jiān)測某一組向量是否出現(xiàn)非法IP,非法端口或非法組合,若出現(xiàn)非法的數(shù)據(jù)包流向,則判斷該組向量異常;
(2)根據(jù)源 IP 地址和設(shè)備端口號確定通信雙方,若時刻值T通信雙方的通信數(shù)據(jù)包數(shù)量N在合法的通信數(shù)據(jù)包上、下限閾值之間,則判斷該組向量正常,否則判斷該組向量異常,并報警。
針對當(dāng)今工業(yè)控制系統(tǒng)入侵檢測技術(shù)針對性不強(qiáng)的問題,本文根據(jù)工業(yè)生產(chǎn)周期性的特點(diǎn),提出了一種基于流量特征的入侵檢測技術(shù),通過IP地址和端口號將不同的通信方區(qū)分開,針對工業(yè)控制網(wǎng)絡(luò)設(shè)備多、線路多的特點(diǎn),先通過數(shù)據(jù)流向判斷其是否合法,再根據(jù)流量的上、下限閾值識別出異常數(shù)據(jù),提高檢測的準(zhǔn)確性,經(jīng)驗(yàn)證,該方法有效、可靠。