文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.04.021
中文引用格式: 李俊,郭嫻,孫軍. 基于擴展Kalman濾波的工業(yè)控制系統(tǒng)DDoS攻擊檢測[J].電子技術(shù)應(yīng)用,2016,42(4):73-77.
英文引用格式: Li Jun,Guo Xian,Sun Jun. The detection of DDoS attack for industrial control systems based on extended Kalman filtering[J].Application of Electronic Technique,2016,42(4):73-77.
0 引言
工業(yè)控制系統(tǒng)(Industrial Control System,ICS)廣泛應(yīng)用在工業(yè)、能源、交通、水利以及市政等重點領(lǐng)域,用于控制生產(chǎn)設(shè)備的運行。典型的工業(yè)控制系統(tǒng)包括可編程邏輯控制器(Programmable Logic Controller,PLC)、分布式控制系統(tǒng)(Distribute Control System,DCS)及數(shù)據(jù)采集與監(jiān)控系統(tǒng)(Supervisory Control And Data Acquisition,SCADA)等。工業(yè)控制系統(tǒng)是國家關(guān)鍵基礎(chǔ)設(shè)施的重要組成部分,其安全問題直接關(guān)系到國民經(jīng)濟的正常運行和社會穩(wěn)定[1]。
隨著我國“互聯(lián)網(wǎng)+”、“中國制造2025”等戰(zhàn)略的推進實施,互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)等信息技術(shù)對工業(yè)生產(chǎn)的各環(huán)節(jié)和城市關(guān)鍵基礎(chǔ)設(shè)施建設(shè)的滲透越來越深,從而加劇了工業(yè)控制系統(tǒng)的信息安全風險。
近年來,工業(yè)控制系統(tǒng)信息安全事件不斷發(fā)生,從伊朗核電站感染Stuxnet病毒事件,到Havex入侵了歐美1 000多家能源系統(tǒng),再到烏克蘭電力系統(tǒng)被BlackEnergy惡意軟件攻擊等事件,充分反映了工業(yè)控制系統(tǒng)信息安全面臨的嚴峻形勢。研究工業(yè)控制系統(tǒng)的攻擊檢測方法,對及時發(fā)現(xiàn)并阻止黑客的入侵攻擊和避免造成物理損失具有重大意義。
1 背景
隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展及普及,網(wǎng)絡(luò)安全問題越發(fā)凸顯,尤其是拒絕服務(wù)攻擊(Denial of Service,DoS),盡管方式簡單,但是攻擊非常有效。它能夠短時間內(nèi)使服務(wù)網(wǎng)絡(luò)中充斥大量的信息,消耗帶寬或系統(tǒng)資源,導致網(wǎng)絡(luò)趨于癱瘓而無法提供正常的網(wǎng)絡(luò)服務(wù)。其中,分布式拒絕服務(wù)攻擊(Distributed Denial of Service,DDoS)作為DoS的特殊形式,它采用一種分布、協(xié)作方式對網(wǎng)絡(luò)進行攻擊。在眾多的攻擊方式中,分布式拒絕服務(wù)攻擊的危害最大,最易于達到攻擊效果,并且最難進行抵御和追蹤,同時它也是現(xiàn)今網(wǎng)絡(luò)面臨的主要威脅之一。
針對網(wǎng)絡(luò)DDoS攻擊的檢測研究由來已久,目前的檢測方法大概可以分為兩大類,大多數(shù)的檢測方法或采用其中一種,或兩種方法結(jié)合使用。其中一種是對服務(wù)/控制網(wǎng)絡(luò)中流量進行建模分析,利用網(wǎng)絡(luò)遭受DDoS攻擊時,與模型相關(guān)的參數(shù)變化來識別出DDoS攻擊,如文獻[2-6];另外一種是利用網(wǎng)絡(luò)在遭受DDoS攻擊時網(wǎng)絡(luò)表現(xiàn)出來的特性(如:IP地址集聚等)來進行攻擊判斷,如文獻[7-10]。
對于具體的研究方法,文獻[2]利用網(wǎng)絡(luò)發(fā)生DDoS攻擊時,攻擊網(wǎng)絡(luò)的目的地址或者目的端口過于集中的特性,以及發(fā)生DDoS攻擊時的協(xié)議特征建立基于聚集和協(xié)議分布防御分布式拒絕服務(wù)攻擊(Aggregat-based Protocal Analysis,ATA-ANTI-DDoS)模型,來檢測DDoS攻擊;文獻[3]利用網(wǎng)絡(luò)特性建立自回歸系統(tǒng)模型,以此模型來估計參數(shù)分形維數(shù)和自相似系數(shù),同時利用基于最大似然估計的改變點檢測方法來檢測DDoS攻擊;文獻[4]認為網(wǎng)絡(luò)數(shù)據(jù)包具有多位屬性,提出使用利用主成份分析(Principal Component Analysis,PCA)來降低主干網(wǎng)絡(luò)的網(wǎng)絡(luò)數(shù)據(jù)采集維數(shù),同時,對網(wǎng)絡(luò)中的OD流量和物理鏈路流量進行建模和特征進行分析;文獻[5]在骨干網(wǎng)絡(luò)中,在網(wǎng)絡(luò)應(yīng)用層的DDoS攻擊(Application Distributed Denial of Service,AL-DDoS)中,構(gòu)造了一個實時變頻矢量,并建立實時的業(yè)務(wù)模型。通過檢查AL-DDoS攻擊流量的熵值,實時業(yè)務(wù)模型可以設(shè)別出真實的AL-DDoS攻擊;文獻[6]通過檢測網(wǎng)絡(luò)中的數(shù)據(jù)包地址來建立檢測矩陣模型,同時運用遺傳算法(Genetic Algorithm,GA)來減少模型中的地址劃分沖突問題,以此提高對DDoS攻擊的檢測效率;文獻[7]提出的方法主要是針對網(wǎng)絡(luò)的物理層中的流量,利用數(shù)據(jù)包的維數(shù)來檢測DDoS攻擊;文獻[8]提出從歷史網(wǎng)絡(luò)流量中抽取合法用戶的IP地址建立數(shù)據(jù)庫,以檢查流經(jīng)路由器當前數(shù)據(jù)包中的源IP地址是否在合法的IP數(shù)據(jù)庫作為DDoS的檢測手段;文獻[9]使用累積和(Cumulative Sum,CUSUM)方法來統(tǒng)計路由器中進出各端口的流量,并以進出口流量比率作為檢測DDoS攻擊的統(tǒng)計量;文獻[10]提出一種基于卡爾曼濾波的低速率分布式拒絕服務(wù)攻擊(Low-rate Distribute Denial of Service,LDDoS)攻擊檢測方法,該方法根據(jù)網(wǎng)絡(luò)流量矩陣估算理論以及網(wǎng)絡(luò)在遭受DDoS攻擊時流量突然減小的事實,對流量矩陣進行有效的預(yù)測和估算,然后通過比較預(yù)測與估算的誤差就可以有效地檢測LDDoS攻擊。
本文在充分分析了工業(yè)系統(tǒng)中DDoS攻擊的特點和傳統(tǒng)DDoS檢測方法的基礎(chǔ)上,提出一種擴展Kalman濾波和控制系統(tǒng)的模型參數(shù)識別的算法來檢測DDoS的攻擊。通過在搭建的SCADA工業(yè)控制仿真系統(tǒng)平臺中進行測試和實驗,驗證了本文提出的算法可以有效識別出針對特定工業(yè)控制系統(tǒng)網(wǎng)絡(luò)的DDoS攻擊。
2 基于擴展Kalman濾波的工業(yè)控制系統(tǒng)DDoS攻擊檢測
2.1 典型的工業(yè)控制系統(tǒng)結(jié)構(gòu)圖
典型的工業(yè)控制系統(tǒng)結(jié)構(gòu)如圖1所示。
在上述的常用工業(yè)控制系統(tǒng)中,最具有代表性意義的當屬在石油石化、電力等能源行業(yè)應(yīng)用最多SCADA系統(tǒng)。常見的SCADA系統(tǒng)的網(wǎng)絡(luò)體系構(gòu)架如圖2所示。
越來越多的工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)采用基于TCP/IP的工業(yè)以太網(wǎng)協(xié)議。第一,由于企業(yè)的信息管理網(wǎng)絡(luò)已經(jīng)廣泛采用了基于TCP/IP協(xié)議的以太網(wǎng)交互技術(shù),這使得控制系統(tǒng)更加集成化。第二,控制網(wǎng)絡(luò)采用以太網(wǎng),大大提高了信息傳輸速率。第三,控制網(wǎng)絡(luò)采用以太網(wǎng),大大提高了不同設(shè)備和系統(tǒng)之間的信息交換效率。下面以Modbus/TCP協(xié)議為例,簡要說明工業(yè)控制系統(tǒng)使用的協(xié)議特點。
Modbus協(xié)議廣泛使用在SCADA系統(tǒng)中,它通常負責人機交互界面和控制器等的數(shù)據(jù)通信。現(xiàn)在Modbus已經(jīng)成為工業(yè)控制事實上的標準,很多Modbus系統(tǒng)使用TCP作為通信層協(xié)議。Modbus/TCP使用了TCP/IP協(xié)議棧的五層,分別為:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。在TCP/IP以太網(wǎng)上傳輸,支持Ethernet II和802.3兩種幀格式,其數(shù)據(jù)幀包含報文頭、功能碼和數(shù)據(jù)3部分,其使用的端口號是502。
Modbus使用主從通信模式。主設(shè)備負責發(fā)起查詢?nèi)蝿?wù),從設(shè)備負責進行響應(yīng)。但同一時刻,只有一個設(shè)備作為主設(shè)備。在異構(gòu)型網(wǎng)絡(luò)拓撲結(jié)構(gòu)中,包含有Modbus/TCP和串口Modbus設(shè)備,常使用網(wǎng)關(guān)或網(wǎng)橋?qū)⑵溥B接到IP網(wǎng)絡(luò)中。
從使用最廣泛的Modbus/TCP協(xié)議的特征,可以看到工業(yè)控制系統(tǒng)所使用的協(xié)議相對互聯(lián)網(wǎng)HTTP等協(xié)議較簡單,功能碼較少,信息交互機制簡單,處理高效,沒有加入加密等安全機制??梢?,工控系統(tǒng)的協(xié)議特點決定了工控系統(tǒng)對網(wǎng)絡(luò)攻擊的承受力很低。
2.2 工業(yè)控制系統(tǒng)與傳統(tǒng)信息系統(tǒng)區(qū)別
根據(jù)美國國家標準技術(shù)研究院(National Institute of Standards and Technology, NIST)發(fā)布的《工業(yè)控制系統(tǒng)(ICS)信息安全指南》可以清楚地看到傳統(tǒng)信息系統(tǒng)與工業(yè)控制系統(tǒng)之間的區(qū)別,如表1[11]所示。
通過表1中的對比可以看到,工業(yè)控制系統(tǒng)因為需要更加安全、可靠、平穩(wěn)的運行環(huán)境,而對實時性和數(shù)據(jù)準確性要求更高。由此,傳統(tǒng)的信息系統(tǒng)和工業(yè)控制系統(tǒng)對于DDoS攻擊的承受能力和防范要求是不一樣的。工業(yè)控制系統(tǒng)因其獨特的特點,就使得系統(tǒng)在檢測DDoS攻擊方面必須更加高效、準確、實時、高速和及時。同時,發(fā)生DDoS攻擊時,要保證數(shù)據(jù)的有效和準確,特別是不能破壞控制系統(tǒng)的控制類數(shù)據(jù)。
2.3 擴展Kalman濾波算法
卡爾曼濾波是一種高效的遞歸濾波器,它通過對輸入和輸出貫徹數(shù)據(jù),對系統(tǒng)狀態(tài)進行最優(yōu)估計,同時通過去除一系列的噪聲來還原真實數(shù)據(jù)。擴展卡爾曼濾波算法是在標準卡爾曼濾波算法的基礎(chǔ)上發(fā)展起來的,它的基本思想是:在濾波值的附近使用泰勒展開式,對于二階以上的高階項全部省去,從而將原非線性系統(tǒng)近似為線性系統(tǒng),再利用標準的卡爾曼濾波算法對系統(tǒng)線性化型模型進行濾波。
擴展Kalman濾波方程組包含了預(yù)測步驟和更新步驟。對于離散系統(tǒng),控制過程可以用微分方程描述為:
通常,在網(wǎng)絡(luò)流量采樣中,U(k)為系統(tǒng)的控制量,如果沒有則為0,W(k)和V(k)可以假設(shè)成白噪聲矩陣來近似處理,它們的協(xié)方差矩陣分別是Q和R,卡爾曼濾波器可以結(jié)合k時刻的預(yù)測值和測量值,得到下一時刻k+1的估計值。
假設(shè)現(xiàn)在的時刻為k+1,利用k時刻的最優(yōu)估算,記為:X(k|k),可以得到k的先驗估計,記為:X(k+1|k),則有:
其中,HT是H的轉(zhuǎn)置矩陣,I為單位矩陣,當系統(tǒng)是單系統(tǒng)模型時,I=1;此時通過k時刻的觀測值和預(yù)估值即可使系統(tǒng)進入k+1的狀態(tài),Φ和H分別是f和h的雅各比矩陣,其雅各比矩陣的具體求導法則如下:
2.4 基于Kalman濾波的模型參數(shù)識別算法
網(wǎng)絡(luò)發(fā)生DDoS攻擊時,網(wǎng)絡(luò)中的很多性質(zhì)都發(fā)生了變化,如網(wǎng)絡(luò)的流量、時延以及數(shù)據(jù)包量與IP地址的比值等。要想準確地判斷工業(yè)控制系統(tǒng)網(wǎng)絡(luò)是否發(fā)生了DDoS攻擊,只知道流量情況是不夠的,如果知道網(wǎng)絡(luò)發(fā)生DDoS攻擊時的數(shù)據(jù)包和IP地址等的關(guān)系,就能大大提高DDoS檢測的準確性。
在網(wǎng)絡(luò)中,采樣時刻k與流量的關(guān)系描述函數(shù)f和h,以及系統(tǒng)在發(fā)生DDoS攻擊時,IP與流量的擬合關(guān)系函數(shù)g等都是未知的,它們都表征著網(wǎng)絡(luò)的性能特點。并且,這些表征網(wǎng)絡(luò)性質(zhì)的函數(shù)都與具體的網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)有關(guān)(如網(wǎng)絡(luò)帶寬、端口數(shù)量、路由能力等)。但不論這些函數(shù)是線性的還是非線性的,均可以用泰勒級數(shù)來展開,并可以對函數(shù)做近似處理:
將包含參數(shù)的函數(shù)f(x)和h(x)代入擴展卡爾曼濾波算法中,同時利用網(wǎng)絡(luò)的歷史數(shù)據(jù),通過使用參數(shù)辨識的方法,得到流量的具體模型參數(shù)ai、bi和ci(i=0,1,2)。
3 實驗平臺說明
3.1 實驗平臺概況
本實驗的驗證平臺是電子一所研究工業(yè)控制系統(tǒng)信息安全所搭建的一套模擬天然氣管道輸送的SCADA系統(tǒng)。除了仿真測試系統(tǒng)的天然氣用壓縮空氣來代替之外,系統(tǒng)平臺的輸送控制流程和工藝均來自中國某油田的實際生產(chǎn)運行系統(tǒng),并且系統(tǒng)的控制器、工作站、數(shù)據(jù)庫等均與實際運行的一樣。圖3所示是簡化的仿真測試系統(tǒng)平臺的結(jié)構(gòu)圖。
該SCADA系統(tǒng)具有3個操作站(本地場、工程師站、遠程中心)、若干個RTU(遠程設(shè)備終端,協(xié)議是Modbus/TCP)、公司上層網(wǎng)以及一個中心服務(wù)器。其中,通過RTU將現(xiàn)場的實時數(shù)據(jù)傳遞到服務(wù)器中,各個操作站和管理網(wǎng)通過網(wǎng)絡(luò)進行實時數(shù)據(jù)通信和共享;另外,各個操作站將依據(jù)各自的控制權(quán)限將控制命令通過服務(wù)器發(fā)送到RTU,實現(xiàn)對執(zhí)行機構(gòu)的實時控制。
3.2 攻擊測試說明
本次攻擊測試針對的是SCADA系統(tǒng)在管道輸送過程中的降壓流程。具體的DDoS攻擊手段是通過使用1臺高性能計算機控制10片刀片式服務(wù)器發(fā)生針對服務(wù)器服務(wù)端口進行的。攻擊測試是在500 s的時間內(nèi)隨機進行多次攻擊,持續(xù)時間5 s~10 s不等,同時反復進行多次測試。
4 實驗
4.1 實驗前數(shù)據(jù)預(yù)處理
實驗前,針對網(wǎng)絡(luò)進行數(shù)據(jù)采集。針對該工業(yè)控制系統(tǒng)所使用的端口號進行數(shù)據(jù)統(tǒng)計,采集時間隨機從30 min~24 h等分45組進行,得到具體45組數(shù)據(jù),如圖4。
對圖4得到的柱狀圖中的數(shù)據(jù)進一步處理,得到如圖5所示數(shù)據(jù)包采樣的均值和平滑處理值。
對系統(tǒng)的仿真測試平臺的數(shù)據(jù)包采集值與所采集的報文的IP地址進行處理,得到報文數(shù)據(jù)值與IP地址的比值關(guān)系,如圖6所示。
從圖4、圖5和圖6中,可以看出工業(yè)控制系統(tǒng)網(wǎng)絡(luò)的流量數(shù)據(jù)基本是平穩(wěn)的,這與傳統(tǒng)的IT互聯(lián)網(wǎng)的網(wǎng)絡(luò)流量忽高忽低不同;同時,在正常的網(wǎng)絡(luò)運行中,每個IP地址所對應(yīng)的報文數(shù)基本也是恒定的。這些不同于傳統(tǒng)互聯(lián)網(wǎng)的網(wǎng)絡(luò)特性,為本文提出的算法提供了很好的適用性和檢測的準確性。
4.2 算法實驗
在仿真測試平臺中對所提出的DDoS的檢測算法進行實際的編程測試,得到圖7所示的實際攻擊檢測圖。
在建立的仿真測試平臺中進行算法的測試,可以看出在系統(tǒng)平臺發(fā)生DDoS攻擊時,系統(tǒng)的瞬時流量急劇增加,同時數(shù)據(jù)包量與IP地址的比值也發(fā)生了顯著的變化。實驗結(jié)果表明,在特定的控制系統(tǒng)網(wǎng)絡(luò)中,本文提出的算法可以有效檢測出DDoS的攻擊。
5 結(jié)語
隨著計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,工業(yè)控制系統(tǒng)產(chǎn)品越來越多采用通用協(xié)議、通用硬件和通用軟件,并以各種方式與互聯(lián)網(wǎng)等公共網(wǎng)絡(luò)連接,以DDoS為代表的傳統(tǒng)網(wǎng)絡(luò)攻擊方式也正在向工業(yè)控制系統(tǒng)擴散。由于工業(yè)控制系統(tǒng)高實時性、弱防護、計算能力有限等特點,傳統(tǒng)信息系統(tǒng)中的入侵檢測方法不適合直接用于工業(yè)控制系統(tǒng)。本文根據(jù)工業(yè)控制網(wǎng)絡(luò)干擾小、數(shù)據(jù)變化不大等特點,設(shè)計出適用于工業(yè)系統(tǒng)的入侵檢測方法。實驗證明,提出的基于擴展Kalman濾波和控制系統(tǒng)的模型參數(shù)識別算法可以較好地完成工業(yè)控制系統(tǒng)DDoS的攻擊檢測。
參考文獻
[1] 周雪.2013工業(yè)控制系統(tǒng)迎來“大考”[J].信息安全與通信保密,2013(9):10-21.
[2] 孫知信,姜舉良,焦琳.DDoS攻擊檢測和防御模型[J].軟件學報,2007,18(9):2245-2261.
[3] XIA Z,LU S,LI J.DDoS flood attack detection based on fractal parameters[C].Processing of the 8th International Conference on Wireless Communications Networking and Mobile.Shanghai:IEEE,2012:1-5.
[4] LAKHINA A,CROVELLA M,DIOT C.Structural analysis of network traffic flow[C].Processing of the SIGMETRICS/Performance.New York:ACM,2004:61-72.
[5] ZHOU W,WEI J,SHENG W,et al.Detection and defense of application-layer DDoS attacks in backbone web traffic[J].Future Generation Computer Systems,2014(38):36-46.
[6] LEE S,KIM D,LEE J,et al.Detection of DDoS attacks using optimized traffic matrix[J].Computers and Mathematics with Applications,2012(63):501-510.
[7] LAKHINA A,CROVELLA M,DIOT C.Diagnosing network-wide traffic anomalies[C].Processing of the SIGMETRICS’04.Portland:ACM,2004:219-230.
[8] PENG T,LECKIE C,RRAMAOHANARAO K.Protection from distributed denial of service attacks using history-based IP filtering[C].Anchorage:IEEE Computer Science,2003:482-486.
[9] PU S.Choosing parameters for detecting DDoS attack[C].Chengdu:IEEE Computer Society,2012:239-242.
[10] 吳志軍,岳猛.基于卡爾曼濾波的LDDoS攻擊監(jiān)測方法[J].電子學報,2011(22):1590-1594.
[11] 美國國家標準和技術(shù)研究院.NIST-SP800-82,《工業(yè)控制系統(tǒng)(ICS)安全指南》[S].北京:國家標準出版社,2012:15-27.