方 源,鮑 克,趙一凡,李富勇
(浙江省電子信息產品檢驗所,浙江 杭州310007)
工業控制系統(Industrial Control System,ICS)指能夠對工業生產起到調控作用的系統,包含監視控制與數據采集系統(SCADA)、分布式控制系統(DCS)及其他工業有關部門和生產現場的小型控制系統(PLC)等,是電力、能源、化工等國家關鍵基礎設施的核心[1-2]。
互聯與共享成為工業控制系統新的發展方向,工控系統與企業辦公網和互聯網逐漸相連,工業控制網絡環境變得越來越開放。而由于傳統工業控制系統本身缺乏對網絡信息安全的保障,缺乏專門的安全防御措施[3]。近年來,工業控制系統新型攻擊手段層出不窮,尤其是震網(Stuxnet)病毒事件發生后,鑒于工業控制系統的安全直接關系到國家關鍵基礎設施的安危,影響社會穩定,因此引起各國高度重視。
工業控制系統需從設備安全和信息數據安全兩方面保障系統穩定運行,從ICS自身結構看,由于通信協議相對簡單、操作系統和軟件沒有相應的防護措施,這些漏洞都可被利用進行破壞性的操作;從外部網絡環境看,ICS廣泛使用TCP/IP等通信協議,導致傳統的IT系統攻擊行為蔓延到工控網絡,致使工業控制系統面臨更大的安全威脅[4]。
目前,工業控制入侵檢測系統(IDS)是依據安全架構和策略進行設計,并對系統進行安全漏洞掃描、安全配置加強、身份認證處理,同時采用訪問控制、滲透檢測等技術進行安全防御,保障工控系統安全穩定運行[5]。入侵檢測是一種主動的安全防護技術,通過對系統通信行為的實時監視、分析,以檢測出異常的攻擊行為操作,并在攻擊行為產生危害前進行攔截、報警、系統恢復等操作[6]。
當前,已經有很多面向ICS的安全產品,如殺毒軟件、工控火墻、網閘等。但安全產品的研發需考慮ICS的特殊性,若直接使用IT領域原有的產品,不但達不到期望的效果,反而會帶來新的適應性問題。
目前廣泛應用的ICS入侵檢測主要采用基于特征和基于異常兩種原理。基于特征的檢測技術類似殺毒軟件,對于已發生的攻擊方式檢測效率較高,但無法識別新類型的攻擊方式;基于異常的入侵檢測與攻擊方式無關,因此具有更高的安全性[7]。但由于技術發展尚不成熟,誤報率和漏報率相比前者要高。對于傳統的TCP/IP網絡,入侵檢測系統是一個研究成熟的領域,但由于通信協議和工業安全要求的特殊性,傳統的入侵檢測系統不能提供針對工業控制系統攻擊的有效安全防護。以SCADA系統為例,最近發布了一些可檢測針對SCADA協議的攻擊的規則和預程序模型,利用這些規則的IDS能夠確定基于單包的攻擊。然而,針對SCADA的攻擊不僅基于單包,需要一個攻擊的關聯機制。本文提出了一種基于流量的入侵檢測方法,其原理是根據通過數據包的IP地址和端口號來確定不同的通信雙方,從而可更加準確地檢測通過的數據包,提高入侵檢測系統的準確性。
實際的工業生產基本都具有周期性特點,這也是ICS網絡跟傳統IT網絡之間的區別。IT網絡由于使用者的隨機性很強,比如在某個辦公網內,不能保證各時間段內使用人數不變,因此網絡流量呈現出不確定的特點;但針對工業控制系統通信網絡來說,由于生產流程需預先設定,因此周期性特點較突出,而這也是將流量特征作為檢測特征的原因。
工業控制系統通信網絡具有周期性特點,這是基于流量特征的入侵檢測模塊的適用條件。基于流量特征的入侵檢測模塊選取的檢測特征是流量特征,具體來說即某個時間段內,由IP地址和端口號確定通信雙方通過的數據包數量。流量特征的選取意味著要求工業控制系統通信網絡需要具有周期性特點假設工業控制系統通信網絡不具有周期性特點,即任意時間段內,由 IP 地址和端口號確定的通信雙方之間通過的數據包數量是隨機的,將會導致流量特征失效,無法使用流量特征作為入侵模塊的檢測特征。
根據工業控制系統環境中通信的周期性特點,將實際的通信流量和時間的對應關系作為一種檢測特征,根據生產工藝特征,計算出不同時間段內通過流量的上限閾值和下限閾值。檢測過程中,若某個時間段內出現數值不在上、下閾值范圍內的情況則報警。
本文提出了一種基于流量特征的入侵檢測方法,先記錄下控制端和執行端的IP和端口號等,再處理數據,將流量和時間對應的特征建立向量集合,最后進行入侵檢測;若發現有未知IP地址或端口進行通信,且某個時間段內的通信流量大于或小于學習階段的閾值,則報警。這種方法能極大地提高系統的通信安全性,具體流程如圖1所示。

圖1 基于流量統計的入侵檢測流程圖
當系統數據包經過基于流量特征的入侵檢測模塊時,檢測模塊會統計對應時間段內通過的數據包數量,并跟預先設定的對應數據包數量做比對,若檢測合法則令其通過,否則報警。
該流程為基于流量特征的入侵檢測流程,其中數據包截取字段后需要處理成(YIP,Yd,DIP,Dd,T,N)向量格式。YIP是通信數據包的源IP地址;Yd為通信數據包源端口;DIP為通信數據包目的IP地址;Dd為通信數據包目的端口;T為時刻值;N為T時間段內通過的數據包數量。超過統計合法數據包范圍,判斷為通信異常,這代表攻擊者通過對服務器端發送大量的請求數據包使得服務器端無法正常響應。
假設主設備1的IP地址是 192.10.16.222,端口號是228,跟3個不同的從設備通信分別使用3個不同的端口1228,2228,3228,3個從設備的 IP 地址分別為 192.10.16.101,192.10.16.102,192.10.16.103,此處從設備通信對待檢測的工業控制系統通信進行數據包檢測、識別和分析。首先進行數據包截取,提取的字段包括源IP地址、源端口號、目的IP地址、目的端口號等。
根據雙方通信的數據包數量進行統計分析,而此處的通信雙方不僅是不同的主設備和從設備組合,還包含同樣的主設備、從設備組合中的不同端口組合。通信數據包的上限為 60,下限為 30,第3行中通信數據包的數量是 120,遠遠超過了統計合法數據包范圍,判斷為通信異常,這代表攻擊者通過對通信的服務器端發送大量的請求數據包,使得服務器端無法響應流量數據包樣本見表1所列。

表1 流量數據包樣本
對于多設備間互相傳輸的工業控制系統來說,可將數據包組合成M×N組向量的形式。在 M×N組數據中,分別將每組數據組成向量(YIP,Yd,DIP,Dd,T,N),再將 M×N 組向量傳入檢測模塊,基于兩個條件判斷其是否異常:
(1)基于時間流量的入侵檢測模塊監測某一組向量是否出現非法IP,非法端口或非法組合,若出現非法的數據包流向,則判斷該組向量異常;
(2)根據源 IP 地址和設備端口號確定通信雙方,若時刻值T通信雙方的通信數據包數量N在合法的通信數據包上、下限閾值之間,則判斷該組向量正常,否則判斷該組向量異常,并報警。
針對當今工業控制系統入侵檢測技術針對性不強的問題,本文根據工業生產周期性的特點,提出了一種基于流量特征的入侵檢測技術,通過IP地址和端口號將不同的通信方區分開,針對工業控制網絡設備多、線路多的特點,先通過數據流向判斷其是否合法,再根據流量的上、下限閾值識別出異常數據,提高檢測的準確性,經驗證,該方法有效、可靠。