文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.04.021
中文引用格式: 李俊,郭嫻,孫軍. 基于擴展Kalman濾波的工業控制系統DDoS攻擊檢測[J].電子技術應用,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 引言
工業控制系統(Industrial Control System,ICS)廣泛應用在工業、能源、交通、水利以及市政等重點領域,用于控制生產設備的運行。典型的工業控制系統包括可編程邏輯控制器(Programmable Logic Controller,PLC)、分布式控制系統(Distribute Control System,DCS)及數據采集與監控系統(Supervisory Control And Data Acquisition,SCADA)等。工業控制系統是國家關鍵基礎設施的重要組成部分,其安全問題直接關系到國民經濟的正常運行和社會穩定[1]。
隨著我國“互聯網+”、“中國制造2025”等戰略的推進實施,互聯網、物聯網、云計算、大數據等信息技術對工業生產的各環節和城市關鍵基礎設施建設的滲透越來越深,從而加劇了工業控制系統的信息安全風險。
近年來,工業控制系統信息安全事件不斷發生,從伊朗核電站感染Stuxnet病毒事件,到Havex入侵了歐美1 000多家能源系統,再到烏克蘭電力系統被BlackEnergy惡意軟件攻擊等事件,充分反映了工業控制系統信息安全面臨的嚴峻形勢。研究工業控制系統的攻擊檢測方法,對及時發現并阻止黑客的入侵攻擊和避免造成物理損失具有重大意義。
1 背景
隨著計算機技術和網絡技術的發展及普及,網絡安全問題越發凸顯,尤其是拒絕服務攻擊(Denial of Service,DoS),盡管方式簡單,但是攻擊非常有效。它能夠短時間內使服務網絡中充斥大量的信息,消耗帶寬或系統資源,導致網絡趨于癱瘓而無法提供正常的網絡服務。其中,分布式拒絕服務攻擊(Distributed Denial of Service,DDoS)作為DoS的特殊形式,它采用一種分布、協作方式對網絡進行攻擊。在眾多的攻擊方式中,分布式拒絕服務攻擊的危害最大,最易于達到攻擊效果,并且最難進行抵御和追蹤,同時它也是現今網絡面臨的主要威脅之一。
針對網絡DDoS攻擊的檢測研究由來已久,目前的檢測方法大概可以分為兩大類,大多數的檢測方法或采用其中一種,或兩種方法結合使用。其中一種是對服務/控制網絡中流量進行建模分析,利用網絡遭受DDoS攻擊時,與模型相關的參數變化來識別出DDoS攻擊,如文獻[2-6];另外一種是利用網絡在遭受DDoS攻擊時網絡表現出來的特性(如:IP地址集聚等)來進行攻擊判斷,如文獻[7-10]。
對于具體的研究方法,文獻[2]利用網絡發生DDoS攻擊時,攻擊網絡的目的地址或者目的端口過于集中的特性,以及發生DDoS攻擊時的協議特征建立基于聚集和協議分布防御分布式拒絕服務攻擊(Aggregat-based Protocal Analysis,ATA-ANTI-DDoS)模型,來檢測DDoS攻擊;文獻[3]利用網絡特性建立自回歸系統模型,以此模型來估計參數分形維數和自相似系數,同時利用基于最大似然估計的改變點檢測方法來檢測DDoS攻擊;文獻[4]認為網絡數據包具有多位屬性,提出使用利用主成份分析(Principal Component Analysis,PCA)來降低主干網絡的網絡數據采集維數,同時,對網絡中的OD流量和物理鏈路流量進行建模和特征進行分析;文獻[5]在骨干網絡中,在網絡應用層的DDoS攻擊(Application Distributed Denial of Service,AL-DDoS)中,構造了一個實時變頻矢量,并建立實時的業務模型。通過檢查AL-DDoS攻擊流量的熵值,實時業務模型可以設別出真實的AL-DDoS攻擊;文獻[6]通過檢測網絡中的數據包地址來建立檢測矩陣模型,同時運用遺傳算法(Genetic Algorithm,GA)來減少模型中的地址劃分沖突問題,以此提高對DDoS攻擊的檢測效率;文獻[7]提出的方法主要是針對網絡的物理層中的流量,利用數據包的維數來檢測DDoS攻擊;文獻[8]提出從歷史網絡流量中抽取合法用戶的IP地址建立數據庫,以檢查流經路由器當前數據包中的源IP地址是否在合法的IP數據庫作為DDoS的檢測手段;文獻[9]使用累積和(Cumulative Sum,CUSUM)方法來統計路由器中進出各端口的流量,并以進出口流量比率作為檢測DDoS攻擊的統計量;文獻[10]提出一種基于卡爾曼濾波的低速率分布式拒絕服務攻擊(Low-rate Distribute Denial of Service,LDDoS)攻擊檢測方法,該方法根據網絡流量矩陣估算理論以及網絡在遭受DDoS攻擊時流量突然減小的事實,對流量矩陣進行有效的預測和估算,然后通過比較預測與估算的誤差就可以有效地檢測LDDoS攻擊。
本文在充分分析了工業系統中DDoS攻擊的特點和傳統DDoS檢測方法的基礎上,提出一種擴展Kalman濾波和控制系統的模型參數識別的算法來檢測DDoS的攻擊。通過在搭建的SCADA工業控制仿真系統平臺中進行測試和實驗,驗證了本文提出的算法可以有效識別出針對特定工業控制系統網絡的DDoS攻擊。
2 基于擴展Kalman濾波的工業控制系統DDoS攻擊檢測
2.1 典型的工業控制系統結構圖
典型的工業控制系統結構如圖1所示。
在上述的常用工業控制系統中,最具有代表性意義的當屬在石油石化、電力等能源行業應用最多SCADA系統。常見的SCADA系統的網絡體系構架如圖2所示。
越來越多的工業控制系統的網絡采用基于TCP/IP的工業以太網協議。第一,由于企業的信息管理網絡已經廣泛采用了基于TCP/IP協議的以太網交互技術,這使得控制系統更加集成化。第二,控制網絡采用以太網,大大提高了信息傳輸速率。第三,控制網絡采用以太網,大大提高了不同設備和系統之間的信息交換效率。下面以Modbus/TCP協議為例,簡要說明工業控制系統使用的協議特點。
Modbus協議廣泛使用在SCADA系統中,它通常負責人機交互界面和控制器等的數據通信?,F在Modbus已經成為工業控制事實上的標準,很多Modbus系統使用TCP作為通信層協議。Modbus/TCP使用了TCP/IP協議棧的五層,分別為:物理層、數據鏈路層、網絡層、傳輸層和應用層。在TCP/IP以太網上傳輸,支持Ethernet II和802.3兩種幀格式,其數據幀包含報文頭、功能碼和數據3部分,其使用的端口號是502。
Modbus使用主從通信模式。主設備負責發起查詢任務,從設備負責進行響應。但同一時刻,只有一個設備作為主設備。在異構型網絡拓撲結構中,包含有Modbus/TCP和串口Modbus設備,常使用網關或網橋將其連接到IP網絡中。
從使用最廣泛的Modbus/TCP協議的特征,可以看到工業控制系統所使用的協議相對互聯網HTTP等協議較簡單,功能碼較少,信息交互機制簡單,處理高效,沒有加入加密等安全機制。可見,工控系統的協議特點決定了工控系統對網絡攻擊的承受力很低。
2.2 工業控制系統與傳統信息系統區別
根據美國國家標準技術研究院(National Institute of Standards and Technology, NIST)發布的《工業控制系統(ICS)信息安全指南》可以清楚地看到傳統信息系統與工業控制系統之間的區別,如表1[11]所示。
通過表1中的對比可以看到,工業控制系統因為需要更加安全、可靠、平穩的運行環境,而對實時性和數據準確性要求更高。由此,傳統的信息系統和工業控制系統對于DDoS攻擊的承受能力和防范要求是不一樣的。工業控制系統因其獨特的特點,就使得系統在檢測DDoS攻擊方面必須更加高效、準確、實時、高速和及時。同時,發生DDoS攻擊時,要保證數據的有效和準確,特別是不能破壞控制系統的控制類數據。
2.3 擴展Kalman濾波算法
卡爾曼濾波是一種高效的遞歸濾波器,它通過對輸入和輸出貫徹數據,對系統狀態進行最優估計,同時通過去除一系列的噪聲來還原真實數據。擴展卡爾曼濾波算法是在標準卡爾曼濾波算法的基礎上發展起來的,它的基本思想是:在濾波值的附近使用泰勒展開式,對于二階以上的高階項全部省去,從而將原非線性系統近似為線性系統,再利用標準的卡爾曼濾波算法對系統線性化型模型進行濾波。
擴展Kalman濾波方程組包含了預測步驟和更新步驟。對于離散系統,控制過程可以用微分方程描述為:
通常,在網絡流量采樣中,U(k)為系統的控制量,如果沒有則為0,W(k)和V(k)可以假設成白噪聲矩陣來近似處理,它們的協方差矩陣分別是Q和R,卡爾曼濾波器可以結合k時刻的預測值和測量值,得到下一時刻k+1的估計值。
假設現在的時刻為k+1,利用k時刻的最優估算,記為:X(k|k),可以得到k的先驗估計,記為:X(k+1|k),則有:
其中,HT是H的轉置矩陣,I為單位矩陣,當系統是單系統模型時,I=1;此時通過k時刻的觀測值和預估值即可使系統進入k+1的狀態,Φ和H分別是f和h的雅各比矩陣,其雅各比矩陣的具體求導法則如下:
2.4 基于Kalman濾波的模型參數識別算法
網絡發生DDoS攻擊時,網絡中的很多性質都發生了變化,如網絡的流量、時延以及數據包量與IP地址的比值等。要想準確地判斷工業控制系統網絡是否發生了DDoS攻擊,只知道流量情況是不夠的,如果知道網絡發生DDoS攻擊時的數據包和IP地址等的關系,就能大大提高DDoS檢測的準確性。
在網絡中,采樣時刻k與流量的關系描述函數f和h,以及系統在發生DDoS攻擊時,IP與流量的擬合關系函數g等都是未知的,它們都表征著網絡的性能特點。并且,這些表征網絡性質的函數都與具體的網絡系統結構有關(如網絡帶寬、端口數量、路由能力等)。但不論這些函數是線性的還是非線性的,均可以用泰勒級數來展開,并可以對函數做近似處理:
將包含參數的函數f(x)和h(x)代入擴展卡爾曼濾波算法中,同時利用網絡的歷史數據,通過使用參數辨識的方法,得到流量的具體模型參數ai、bi和ci(i=0,1,2)。
3 實驗平臺說明
3.1 實驗平臺概況
本實驗的驗證平臺是電子一所研究工業控制系統信息安全所搭建的一套模擬天然氣管道輸送的SCADA系統。除了仿真測試系統的天然氣用壓縮空氣來代替之外,系統平臺的輸送控制流程和工藝均來自中國某油田的實際生產運行系統,并且系統的控制器、工作站、數據庫等均與實際運行的一樣。圖3所示是簡化的仿真測試系統平臺的結構圖。
該SCADA系統具有3個操作站(本地場、工程師站、遠程中心)、若干個RTU(遠程設備終端,協議是Modbus/TCP)、公司上層網以及一個中心服務器。其中,通過RTU將現場的實時數據傳遞到服務器中,各個操作站和管理網通過網絡進行實時數據通信和共享;另外,各個操作站將依據各自的控制權限將控制命令通過服務器發送到RTU,實現對執行機構的實時控制。
3.2 攻擊測試說明
本次攻擊測試針對的是SCADA系統在管道輸送過程中的降壓流程。具體的DDoS攻擊手段是通過使用1臺高性能計算機控制10片刀片式服務器發生針對服務器服務端口進行的。攻擊測試是在500 s的時間內隨機進行多次攻擊,持續時間5 s~10 s不等,同時反復進行多次測試。
4 實驗
4.1 實驗前數據預處理
實驗前,針對網絡進行數據采集。針對該工業控制系統所使用的端口號進行數據統計,采集時間隨機從30 min~24 h等分45組進行,得到具體45組數據,如圖4。
對圖4得到的柱狀圖中的數據進一步處理,得到如圖5所示數據包采樣的均值和平滑處理值。
對系統的仿真測試平臺的數據包采集值與所采集的報文的IP地址進行處理,得到報文數據值與IP地址的比值關系,如圖6所示。
從圖4、圖5和圖6中,可以看出工業控制系統網絡的流量數據基本是平穩的,這與傳統的IT互聯網的網絡流量忽高忽低不同;同時,在正常的網絡運行中,每個IP地址所對應的報文數基本也是恒定的。這些不同于傳統互聯網的網絡特性,為本文提出的算法提供了很好的適用性和檢測的準確性。
4.2 算法實驗
在仿真測試平臺中對所提出的DDoS的檢測算法進行實際的編程測試,得到圖7所示的實際攻擊檢測圖。
在建立的仿真測試平臺中進行算法的測試,可以看出在系統平臺發生DDoS攻擊時,系統的瞬時流量急劇增加,同時數據包量與IP地址的比值也發生了顯著的變化。實驗結果表明,在特定的控制系統網絡中,本文提出的算法可以有效檢測出DDoS的攻擊。
5 結語
隨著計算機和網絡技術的發展,工業控制系統產品越來越多采用通用協議、通用硬件和通用軟件,并以各種方式與互聯網等公共網絡連接,以DDoS為代表的傳統網絡攻擊方式也正在向工業控制系統擴散。由于工業控制系統高實時性、弱防護、計算能力有限等特點,傳統信息系統中的入侵檢測方法不適合直接用于工業控制系統。本文根據工業控制網絡干擾小、數據變化不大等特點,設計出適用于工業系統的入侵檢測方法。實驗證明,提出的基于擴展Kalman濾波和控制系統的模型參數識別算法可以較好地完成工業控制系統DDoS的攻擊檢測。
參考文獻
[1] 周雪.2013工業控制系統迎來“大考”[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攻擊監測方法[J].電子學報,2011(22):1590-1594.
[11] 美國國家標準和技術研究院.NIST-SP800-82,《工業控制系統(ICS)安全指南》[S].北京:國家標準出版社,2012:15-27.