葉水勇
(國網(wǎng)安徽省電力有限公司黃山供電公司,安徽 黃山 245000)
電力系統(tǒng)的安全穩(wěn)定運行是關(guān)系社會穩(wěn)定和經(jīng)濟(jì)發(fā)展的共性問題[1],2015年12月23日,烏克蘭電網(wǎng)因遭受黑客攻擊而導(dǎo)致大面積停電,這次事件進(jìn)一步提高了國網(wǎng)公司對電力工控系統(tǒng)信息安全問題的關(guān)注。隨著“大云物移”等新技術(shù)在電力系統(tǒng)的應(yīng)用和智能電網(wǎng)的發(fā)展,電力工控側(cè)的信息安全問題將更加突出[2]。為適應(yīng)“互聯(lián)網(wǎng)+”和能源互聯(lián)網(wǎng)的發(fā)展,保障電力工控側(cè)的信息安全,亟需針對電力工控系統(tǒng)研究開發(fā)信息安全風(fēng)險評估的標(biāo)準(zhǔn)和工具。
對于網(wǎng)絡(luò)協(xié)議指紋的選擇,即對n維特征屬性的選擇,是網(wǎng)絡(luò)協(xié)議識別面臨的主要問題。原則上選擇可以基于任何可獲得信息,包括基于單個數(shù)據(jù)包的信息與基于整個數(shù)據(jù)包集合的信息等,然而不同的特征選取對識別算法的準(zhǔn)確性、時間復(fù)雜度和空間復(fù)雜度有很大影響。網(wǎng)絡(luò)協(xié)議指紋的屬性可以從以下幾個方面進(jìn)行研究,如圖1所示。
圖1 網(wǎng)絡(luò)指紋分析的研究流程圖
1.1.1 端口分析
TCP/IP網(wǎng)絡(luò)模型中,傳輸層協(xié)議根據(jù)端口對應(yīng)用層協(xié)議進(jìn)行復(fù)用和解復(fù)用,故數(shù)據(jù)包中的傳輸層端口指明了其所屬應(yīng)用層協(xié)議類別[3-4]。互聯(lián)網(wǎng)數(shù)字分配機(jī)構(gòu)(Internet Assigned Numbers Authority,IANA)定義了標(biāo)準(zhǔn)應(yīng)用層協(xié)議所使用的約定端口號,如DNS協(xié)議使用TCP 53端口、UDP 53端口,F(xiàn)TP控制協(xié)議使用TCP 21端口等。
端口的使用并無強(qiáng)制規(guī)定,IANA給出的只是建議端口,協(xié)議在具體實現(xiàn)過程中可自行選擇所用端口。由于實現(xiàn)簡單,早期的用戶自定義協(xié)議中多數(shù)使用固定端口技術(shù),但是隨著網(wǎng)絡(luò)安全日益嚴(yán)峻和ISP對特定協(xié)議流量的管控,網(wǎng)絡(luò)協(xié)議開始采用動態(tài)端口技術(shù),如各種P2P軟件為躲避檢測允許使用者自行指定通信端口或者雙方協(xié)商使用端口。在更進(jìn)一步的實現(xiàn)中,某些新的網(wǎng)絡(luò)協(xié)議開始使用特定應(yīng)用層協(xié)議作為承載層,在其上構(gòu)造自己的網(wǎng)絡(luò)協(xié)議,以更加隱蔽的方式進(jìn)行傳輸。
對使用固定端口的協(xié)議,以端口作為協(xié)議特征也不一定準(zhǔn)確,因為無法保證不同協(xié)議使用不同端口,如QQ文字聊天協(xié)議使用UDP 8000端口,迅雷下載服務(wù)同樣使用UDP 8000端口。對使用動態(tài)端口的協(xié)議,提取其中協(xié)商好的數(shù)據(jù)流會話端口,利用此端口識別后續(xù)的多媒體數(shù)據(jù)流會話,但是這種方法依賴于對控制會話協(xié)議的完全理解,對沒有協(xié)議規(guī)范的用戶自定義協(xié)議則無法使用。利用標(biāo)準(zhǔn)應(yīng)用層協(xié)議作為承載層的協(xié)議,基于端口的識別會產(chǎn)生較多的無用結(jié)果。
在準(zhǔn)確性方面,基于端口的特征識別方法是比較低的,但是其對作為網(wǎng)絡(luò)基礎(chǔ)服務(wù)的應(yīng)用層協(xié)議可以使用。因為它們需要提供公共服務(wù),所以選擇端口需要嚴(yán)格遵守約定,其他應(yīng)用也極少會占用這些協(xié)議所用端口,對于這些協(xié)議的識別,使用端口特征識別準(zhǔn)確性仍然較高,典型協(xié)議有SMTP、DNS協(xié)議。
1.1.2 應(yīng)用層載荷內(nèi)容
網(wǎng)絡(luò)協(xié)議包括語法、語義和時序三個要素[5]。語法定義了數(shù)據(jù)包的格式,語義定義了對所交換數(shù)據(jù)的理解和需要采取的行為,時序定義了數(shù)據(jù)交換的順序,三者共同構(gòu)成數(shù)據(jù)通信中雙方交互的過程與內(nèi)容。這些內(nèi)容在多個通信過程中基本相同,即雙方需要表達(dá)的語義信息具有一定的穩(wěn)定性,由此保證了協(xié)議數(shù)據(jù)中某些內(nèi)容的取值較為固定。
多數(shù)情況下,考慮到后續(xù)的擴(kuò)展升級等工作,協(xié)議在設(shè)計時多會預(yù)留某些空間,稱為保留域,現(xiàn)有版本實現(xiàn)中并不使用,被設(shè)置為隨機(jī)值或者固定值。當(dāng)這些保留域被設(shè)置為固定值時,表現(xiàn)為協(xié)議數(shù)據(jù)中某些內(nèi)容的取值固定不變。
這種協(xié)議特征的提取多由人工完成,識別結(jié)果的準(zhǔn)確性最高,常被用作其他識別技術(shù)研究中識別效果的對照,并且更新簡單,僅需添加新的特征串即可。但該特征需要查看具體載荷內(nèi)容,涉及用戶隱私信息,同時該特征無法應(yīng)用于加密協(xié)議。
1.1.3 基于流量的統(tǒng)計
不同協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包在其傳輸過程中表現(xiàn)出一些較為固定的外在特征[6-7]。例如,VoIP協(xié)議的數(shù)據(jù)包時間間隔維持在一個固定值附近,且數(shù)據(jù)包較小,長度接近,明顯區(qū)分于塊傳輸類協(xié)議;塊傳輸類協(xié)議數(shù)據(jù)包時間間隔不固定,為充分利用網(wǎng)絡(luò)帶寬,減少包頭等附加信息對帶寬的占用,傳輸采用盡可能大的數(shù)據(jù)包進(jìn)行。流量統(tǒng)計特征的存在一部分依賴于應(yīng)用層協(xié)議的行為,一部分依賴于具體網(wǎng)絡(luò)環(huán)境,基于統(tǒng)計的識別方式可以剔除某些網(wǎng)絡(luò)環(huán)境所引起的影響,利用這些特征構(gòu)建識別模型進(jìn)行協(xié)議識別。
1.1.4 傳輸層行為
更大范圍內(nèi)的協(xié)議特征。采用P2P網(wǎng)絡(luò)架構(gòu)的協(xié)議自然地表現(xiàn)出某些不同于采用主從式網(wǎng)絡(luò)架構(gòu)的協(xié)議的特征,如與特定主機(jī)上某一端口進(jìn)行通信的遠(yuǎn)端端口的分布情況。其主要應(yīng)用于P2P流量的識別,通過綜合多個屬于同一協(xié)議的會話信息定義協(xié)議的行為特征,現(xiàn)已提出的行為特征有同時使用TCP和UDP進(jìn)行會話,如P2P協(xié)議[8]。
IP地址和端口的數(shù)量比。P2P主機(jī)在一個隨機(jī)選定的端口上接受其他P2P主機(jī)的連接,其他P2P主機(jī)同樣隨機(jī)選擇連接時所使用的端口,隨機(jī)選擇的端口號相同的概率極低,故P2P流量中,與同一
相對于以上所提出的各種特征,行為特征的準(zhǔn)確性低,不能用作通用的協(xié)議識別特征。例如,特征一在多媒體協(xié)議和網(wǎng)絡(luò)游戲中較為常見,而在方案實際識別時,是通過端口或者其他輔助手段排除協(xié)議干擾的。另外,特征受具體網(wǎng)絡(luò)環(huán)境的影響也較大。例如,由于NAT的存在,多個IP可能被聚合成一個NAT 地址,從而導(dǎo)致對特征二的統(tǒng)計失敗。
綜上,行為特征較為簡單,但不能作為通用協(xié)議識別特征?,F(xiàn)有研究中僅被作為P2P類協(xié)議的識別特征,實現(xiàn)時需要統(tǒng)計較多信息,借助其他技術(shù)剔除較嚴(yán)重的誤識別情況,無法滿足多種網(wǎng)絡(luò)協(xié)議識別的要求。
1.2.1 基于應(yīng)用層載荷特征的協(xié)議識別
基于應(yīng)用層載荷特征來對網(wǎng)絡(luò)流量進(jìn)行分類[9],是指通過檢測在網(wǎng)絡(luò)流數(shù)據(jù)包的載荷內(nèi)容中是否出現(xiàn)特定字節(jié)串,或者數(shù)據(jù)包的載荷內(nèi)容是否匹配特定字節(jié)正則表達(dá)式,來判定該網(wǎng)絡(luò)流所屬的網(wǎng)絡(luò)應(yīng)用的類型。
1.2.2 基于網(wǎng)絡(luò)流統(tǒng)計特征的協(xié)議識別
網(wǎng)絡(luò)流統(tǒng)計特征是指可以有效區(qū)分不同網(wǎng)絡(luò)應(yīng)用的網(wǎng)絡(luò)流屬性統(tǒng)計值[10-11],包括網(wǎng)絡(luò)流傳輸?shù)臄?shù)據(jù)包數(shù)、網(wǎng)絡(luò)流的持續(xù)時間、網(wǎng)絡(luò)流傳輸?shù)臄?shù)據(jù)包的長度平均值和網(wǎng)絡(luò)流中數(shù)據(jù)包的時間間隔的平均值等。
使用模式識別的方法可以將網(wǎng)絡(luò)流量分類的問題抽象為給定網(wǎng)絡(luò)流的M種屬性的統(tǒng)計值,任意一個網(wǎng)絡(luò)流可以使用向量(y1,y2, …,yM)∈RM表示。給定網(wǎng)絡(luò)應(yīng)用的類型集合{c1,c2, …,cK},同時給定訓(xùn)練集T,訓(xùn)練集中的點由yi∈RM和cj兩部分構(gòu)成,其中:yi表示網(wǎng)絡(luò)流的屬性向量,cj表示網(wǎng)絡(luò)應(yīng)用類型。需要根據(jù)給定的訓(xùn)練集T,得到一個映射G:RM→ {c1,c2, …,cK},來對網(wǎng)絡(luò)流量進(jìn)行分類。
使用基于網(wǎng)絡(luò)流統(tǒng)計特征的方法進(jìn)行網(wǎng)絡(luò)流量分類,有兩點需要考慮:分類算法的選取和網(wǎng)絡(luò)流屬性的選取。下面簡要地介紹使用Na?ve Bayes算法對網(wǎng)絡(luò)流量進(jìn)行分類的過程。
Na?ve Bayes算法通過條件概率p(cj|yi)的大小來判斷網(wǎng)絡(luò)流yi是否屬于網(wǎng)絡(luò)應(yīng)用類型cj。p(cj|yi)由式(1)計算得出:
(1)
其中:p(cj)表示網(wǎng)絡(luò)應(yīng)用類型cj在網(wǎng)絡(luò)流中出現(xiàn)的先驗概率;f(yi|cj)是向量yi在網(wǎng)絡(luò)應(yīng)用類型cj中出現(xiàn)的概率。
Na?ve Bayes算法假設(shè)各個網(wǎng)絡(luò)流屬性之間獨立,且各個網(wǎng)絡(luò)流屬性均滿足高斯分布。為表述簡單且不失一般性,只針對1個網(wǎng)絡(luò)流屬性(y1)和2種網(wǎng)絡(luò)應(yīng)用類型(c1和c2)進(jìn)行分析。假設(shè)在訓(xùn)練集T中網(wǎng)絡(luò)應(yīng)用類型c1出現(xiàn)n1次,網(wǎng)絡(luò)應(yīng)用類型c2出現(xiàn)n2次,且n1+n2=n,則p(c1)和p(c2)有式(2)估計:
(2)
如上所述,各個網(wǎng)絡(luò)流屬性均滿足高斯分布,則網(wǎng)絡(luò)流屬性yi在網(wǎng)絡(luò)應(yīng)用類型c1上的正態(tài)分布概率密度函數(shù)為:
μ1和σ1可由式(3)來估計:
(3)
對于網(wǎng)絡(luò)應(yīng)用類型c2,也可用同樣的方法進(jìn)行計算。綜上,可以得出概率p(cj|yi)的估計式:
選取合適的網(wǎng)絡(luò)流屬性,剔除其中的無關(guān)屬性和冗余屬性,對分類算法的準(zhǔn)確率會有很大影響。無關(guān)屬性是指不包含網(wǎng)絡(luò)應(yīng)用類型信息的網(wǎng)絡(luò)流屬性,冗余屬性是指與已考慮過的某一屬性有很大關(guān)聯(lián)性的網(wǎng)絡(luò)流屬性。使用無關(guān)屬性對網(wǎng)絡(luò)流量分類不起任何作用,使用冗余屬性則會在一定程度上加重相關(guān)聯(lián)的屬性在分類時的權(quán)重,影響分類的結(jié)果。存在兩種從網(wǎng)絡(luò)流屬性中選取合適屬性的方法:filter方法和wrapper方法。filter方法使用訓(xùn)練集T來判斷某一網(wǎng)絡(luò)流屬性與網(wǎng)絡(luò)流量分類的相關(guān)性,此相關(guān)性可以使用該網(wǎng)絡(luò)流屬性在不同網(wǎng)絡(luò)應(yīng)用類型上的區(qū)分度來度量。wrapper方法通過對比使用不同的網(wǎng)絡(luò)流屬性組合進(jìn)行分類的結(jié)果,來判斷網(wǎng)絡(luò)流屬性與網(wǎng)絡(luò)流量分類的相關(guān)性,通過不斷迭代,可以得到最優(yōu)的網(wǎng)絡(luò)流屬性組合。filter方法是前向選擇,而wrapper算法是后向選擇。經(jīng)過判斷網(wǎng)絡(luò)流屬性的相關(guān)性和剔除冗余屬性這兩個步驟后,就可以得到合適的網(wǎng)絡(luò)流屬性。
1.2.3 基于傳輸層行為特征的協(xié)議識別
與基于應(yīng)用層載荷特征的流量分類方法和基于網(wǎng)絡(luò)流統(tǒng)計特征的流量分類方法不同,基于主機(jī)行為特征的流量分類方法不只關(guān)注單個網(wǎng)絡(luò)流的特征,而是將主機(jī)的網(wǎng)絡(luò)行為同網(wǎng)絡(luò)應(yīng)用類型關(guān)聯(lián)起來,然后判斷主機(jī)產(chǎn)生的網(wǎng)絡(luò)流對應(yīng)的網(wǎng)絡(luò)應(yīng)用類型。
基于協(xié)議指紋,對網(wǎng)絡(luò)流量進(jìn)行實時分析,其流程如圖2所示。主要分為預(yù)處理、協(xié)議識別和深度分析三部分。
圖2 網(wǎng)絡(luò)流量實時分析與預(yù)警圖
1.3.1 預(yù)處理部分
主要分為數(shù)據(jù)包頭處理、應(yīng)用層端口映射、連接信息管理和外網(wǎng)IP映射[12]。數(shù)據(jù)包頭處理完成網(wǎng)絡(luò)數(shù)據(jù)包的網(wǎng)絡(luò)層和傳輸層的包頭信息的提取,如源/目的IP地址、源/目的端口、傳輸層協(xié)議、IP數(shù)據(jù)包大小、源/目的以太網(wǎng)地址等。端口映射、外網(wǎng)IP映射主要用于識別具有固定端口、固定服務(wù)器IP地址的協(xié)議。連接信息管理主要用于跟蹤TCP會話、UDP會話,只要識別出一個會話中的某個數(shù)據(jù)包的協(xié)議類型,就可以判定該會話的協(xié)議類型。
1.3.2 協(xié)議識別部分
主要是利用協(xié)議的指紋特征庫對網(wǎng)絡(luò)數(shù)據(jù)包的內(nèi)容進(jìn)行特征匹配,主要分三種情況:簡單指紋匹配、正則式匹配和自定義特征匹配。簡單指紋匹配是指將數(shù)據(jù)包載荷中的前N字節(jié)(例如前32字節(jié))與協(xié)議特征庫中的特征做匹配,來判斷數(shù)據(jù)包的協(xié)議類型。正則式匹配是指將數(shù)據(jù)包的整個載荷與協(xié)議正則式特征庫中的正則式特征做匹配,來判斷數(shù)據(jù)包的協(xié)議類型。自定義特征匹配是指利用一些復(fù)雜特征,如包長序列,來識別會話的協(xié)議類型。最后對識別的協(xié)議流量進(jìn)行分類和統(tǒng)計,完成各個會話的信息統(tǒng)計,如該會話的帶寬、持續(xù)時間、已通過的字節(jié)數(shù)、已通過的包數(shù)等。
1.3.3 安全檢測部分
主要是對網(wǎng)絡(luò)流量的內(nèi)容進(jìn)行深度分析,以發(fā)現(xiàn)和定位其中可能的網(wǎng)絡(luò)入侵行為。首先,根據(jù)協(xié)議指紋等信息,對網(wǎng)絡(luò)流量的多層協(xié)議信息進(jìn)行信息提??;其次,綜合分析多個連接會話信息,對網(wǎng)絡(luò)協(xié)議背后的行為信息進(jìn)行分析;最后,發(fā)現(xiàn)和定位其中可能存在的網(wǎng)絡(luò)入侵行為,并向系統(tǒng)管理人員發(fā)出警報。
電力工控系統(tǒng)眾多,網(wǎng)絡(luò)協(xié)議非常復(fù)雜,包括SCADA系統(tǒng)、電能量采集系統(tǒng)、地區(qū)調(diào)度數(shù)據(jù)網(wǎng)、配網(wǎng)SCADA等“大運行”支撐系統(tǒng),以及機(jī)房環(huán)境監(jiān)控、門禁、視頻監(jiān)控、生產(chǎn)實時管控、負(fù)荷預(yù)測等輔助系統(tǒng)。同時,調(diào)度數(shù)據(jù)網(wǎng)設(shè)備類型復(fù)雜,除了一般的路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備,還包括隔離裝置、加密裝置、遠(yuǎn)動機(jī)等設(shè)備[13]。
通過建立協(xié)議過濾的防火墻規(guī)則,發(fā)現(xiàn)其中可能存在的惡意入侵行為,即在工控系統(tǒng)受到攻擊時能夠及時發(fā)現(xiàn)攻擊網(wǎng)絡(luò)數(shù)據(jù)流,從而實現(xiàn)對網(wǎng)絡(luò)入侵行為的檢測和預(yù)警。
通過對電力工業(yè)控制系統(tǒng)中的設(shè)備信息、網(wǎng)絡(luò)通信等進(jìn)行收集[14],分析工控系統(tǒng)中的網(wǎng)絡(luò)數(shù)據(jù)流量,定義初步規(guī)則進(jìn)行篩選,將協(xié)議數(shù)據(jù)包劃分為完整的通信數(shù)據(jù)流并進(jìn)行相互之間的區(qū)分。通過對通信數(shù)據(jù)包協(xié)議的分析,總結(jié)出其常規(guī)特征,并研究協(xié)議指紋的模型及其形式化描述方法。結(jié)合已有工控協(xié)議標(biāo)準(zhǔn)和設(shè)計思想,研究分析協(xié)議格式以及協(xié)議規(guī)則。
根據(jù)協(xié)議指紋特征,對變電站控制系統(tǒng)網(wǎng)絡(luò)中的流量進(jìn)行實時分析與識別[15]。例如,在防火墻上配置協(xié)議過濾規(guī)則,就可以及時發(fā)現(xiàn)各類惡意入侵的行為,當(dāng)工控系統(tǒng)受到攻擊時,可以在第一時間發(fā)現(xiàn)網(wǎng)絡(luò)被攻擊的數(shù)據(jù)流,從而保證工控系統(tǒng)的網(wǎng)絡(luò)安全。
基于以上方法和技術(shù)的研究,開發(fā)網(wǎng)絡(luò)通信流量實時分析原型系統(tǒng),通過對網(wǎng)絡(luò)通信流量進(jìn)行實時分析,及時發(fā)現(xiàn)并定位網(wǎng)絡(luò)中存在的各類入侵行為,將告警信息第一時間發(fā)送給系統(tǒng)管理人員。
公司自主研發(fā)的基于指紋的協(xié)議識別系統(tǒng)分別在黃山110 kV上宅變電站和黃山35 kV鳧峰變電站開展核心功能實地試驗。其中,上宅變電站試驗結(jié)果如下:
1)試驗發(fā)現(xiàn)上宅變電站的站控層網(wǎng)絡(luò)有8個網(wǎng)段,活動設(shè)備有61臺,開放端口有2個,具體如表1所示。涉及的嵌入式設(shè)備有:armorlink(芯發(fā)威達(dá))、EST(EST株式會社)、Inspur(浪潮)、Jetway(捷波IPC)。
表1 網(wǎng)絡(luò)流量分析
2)分析結(jié)果通過拓?fù)鋱D進(jìn)行可視化展示,如圖3所示。
圖3 分析結(jié)果展示圖
通過拓?fù)湔故究梢郧逦乜闯鲈璉P地址和目的IP地址設(shè)備的詳細(xì)參數(shù)、連接所使用的IEC61850協(xié)議、連接次數(shù)等信息。部分分析結(jié)果如圖4所示。
3)系統(tǒng)使用過程中各階段信息如圖5所示。
圖5 系統(tǒng)使用過程中各階段截圖
針對電力工控側(cè)的信息安全防護(hù)問題,黃山公司在調(diào)度數(shù)據(jù)網(wǎng)中建立了工控網(wǎng)絡(luò)指紋庫,并基于該庫對網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)進(jìn)行協(xié)議識別、對流量進(jìn)行實時分析、對發(fā)現(xiàn)的潛在風(fēng)險進(jìn)行預(yù)警;通過建立工控安全監(jiān)測手段、增強(qiáng)工控安全防護(hù)體系、開展電網(wǎng)工控系統(tǒng)信息安全和事故反措工作,提升電網(wǎng)工控系統(tǒng)安全防護(hù)水平。