文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181173
中文引用格式: 郭肖旺,閔曉霜,韓慶敏. 基于自適應深度檢測的工控安全防護系統設計[J].電子技術應用,2019,45(1):85-87,91.
英文引用格式: Guo Xiaowang,Min Xiaoshuang,Han Qingmin. Design of industrial control safety protection system based on adaptive depth detection[J]. Application of Electronic Technique,2019,45(1):85-87,91.
0 引言
在現有技術中,工業控制系統的安全防護一般采取逐層防護的方式部署,即在攻擊路徑上的任意位置(如企業網入口、監控層網絡入口、現場層網絡入口)設置特定的防護措施,以阻斷攻擊,實現對安全等級最高的現場層的保護。傳統防火墻是專家根據經驗實現設定好過濾規則[1-2],以實現系統的安全防護,需要預先定義各種總線協議及防護規則,通過對每種應用服務建立專門的代理服務程序,但是只能按照事先定義好的過濾規則,在網絡層對數據報進行監控與分析,只能提供單一層面的、靜態的網絡安全防護。其過濾規則是由網絡安全專家根據經驗和已有的知識設定,很難適應網絡的千變萬化[3-4]。雖然可以實現監控和控制應用層通信流的作用,但是其速度較慢,消耗過多的CPU資源,使得防護設備成為安全防護的瓶頸。尤其是在防護設備的CPU資源占用較多、接口流量過大時,處理速度過慢,安全防護設備成為響應瓶頸,對一切數據進行過濾分析導致速度過慢,數據交換有較大的時延,不適應工控系統的實時性要求,嚴重影響工控現場網絡,甚至造成網絡癱瘓,無法動態地適應現場情況,進而造成無法彌補的損失。
本文研究基于自適應深度檢測的工控安全防護系統,所要解決的問題是克服現有技術的不足,提供一種自適應深度檢測方法及系統,對安全防護設備的實際情況進行動態自適應分析,根據用戶配置和防護設備的狀態動態調整安全防護級別,避免造成設備癱瘓的情況。
1 系統設計
如圖1所示,基于自適應深度檢測的工控安全防護系統包含6個模塊:網絡連接管理模塊、設備狀態檢測模塊、工控協議數據包深度檢測模塊、自適應檢測模塊、用戶配置子系統、日志管理子系統。本系統安裝在工控前置機上工作,工控前置機安裝在被保護設備的上游,需提前配置網絡信息和保護規則。
(1)網絡連接管理模塊:包含統透明代理、加載網絡驅動、網絡監聽服務、會話管理、內存池管理、接口管理等功能。
(2)設備狀態檢測模塊:檢測設備的狀態,檢測指標包括并發用戶數、接口流量、內存使用、進程數、CPU占用。這些指標檢測可用戶配置,以使用戶能夠靈活地在不同的環境下配置需要監測的網絡狀態,給后續的自適應算法提供計算依據。
(3)工控協議數據包深度檢測模塊:實現協議識別、協議深度檢測、協議過濾規則庫管理等功能。
①協議識別是根據協議端口、動態端口檢測等識別工控協議;
②協議深度檢測模塊即調用網絡狀態檢測算法、工控協議數據包深度檢測算法、自適應檢測算法等完成協議的深度檢測;
③協議過濾規則庫管理:包括預置規則、用戶自定義規則。
(4)自適應檢測調整模塊:根據用戶配置的檢測級別適應規則,自動按照系統狀態進行深度檢測的自適應調整。
(5)用戶配置子系統:用戶可以通過界面或者Console命令方式配置如下配置項:自適應算法檢測指標(并發用戶數、接口流量、內存使用、進程數、CPU占用);前置機設備網絡接口、DNS配置;系統工作模式(代理模式、路由模式)配置;網絡訪問控制的IP、MAC、IP范圍、子網掩碼、阻斷/通過;工控防護自適應級別配置;端口控制配置。
(6)日志管理子系統:日志審計部分記錄系統運行日志、安全防護日志、訪問日志、安全監控日志等,審計的內容包括協議檢查、過濾、交換、阻斷等內容,包括正常操作和異常操作,每一條審計日志至少應包括事件發生的日期、時間、源IP、目的IP、協議、事件描述和結果。
1.1 設備狀態檢測模塊
設備狀態檢測模塊用于根據用戶配置的檢測指標,提供不同指標的檢測信息,用戶能夠靈活地在不同的環境下配置需要監測的網絡狀態,以給后續的自適應算法提供計算依據。檢測指標包括:響應時間、并發用戶數、吞吐量、服務器指標(內存使用、進程數、CPU占用)。
算法步驟如下:
(1)響應時間,檢測對請求作出響應所需要的時間;
(2)并發用戶數,檢測系統并發連接的數量;
(3)吞吐量,檢測系統吞吐量,記錄服務器承受的壓力和系統的負載能力;
(4)檢測服務器或操作系統性能的一些數據指標,如使用內存數、進程時間等。
1.2 工控協議數據包深度檢測模塊
深度檢測分為不同的檢測級別,從0~5共6個級別,級別0為最低。定義如下:
0級:基于IP、MAC地址的網絡訪問控制;
1級:流量控制、端口控制;
2級:協議控制、完整性檢查、合法性檢查等;
3級:功能碼控制、參數控制;
4級:預置規則庫匹配控制;
5級:參數范圍自定義設置,更加深入地匹配協議的每個控制位和數據位,用戶可以設定具體到協議每個數據位的數據保護規則。
本模塊完成不同工控協議的數據包深度檢測,檢測過程如下:
(1)啟動前置,捕獲每一個經過它的網絡數據包;
(2)根據檢測級別,獲取匹配的檢測順序,該檢測順序按照級別從低到高,不允許跨級檢測;
(3)檢測網絡訪問控制,根據規則過濾;
(4)根據網絡數據包端口號過濾;
(5)識別協議,網絡數據包格式符合協議完整性檢查、合法性檢查等規則,過濾出數據包;
(6)根據對應的預置工控協議功能碼控制、參數控制規則,檢測協議中的各個數據位;
(7)根據用戶配置的自定義規則,檢測協議中的各個數據位。
1.3 自適應檢測調整模塊
自適應檢測調整模塊用于根據網絡狀態進行自動調整,調整流程如下:
(1)調用網絡狀態檢測算法,獲得網絡狀態數據結構。
(2)根據網絡狀態及用戶配置的檢測級別適應規則自動調整深度檢測算法的檢測級別。默認狀態下,系統按照最高深度檢測級別工作,自適應算法按照網絡狀態逐級降級調整,網絡并發最大數量默認500,超過500后系統降級深度檢查;用戶根據網絡擁塞狀態、流量控制信息和系統信息等配置降級工作規則。
2 系統工作流程
本系統利用工控前置機進行工作,工控前置機設置在工業網絡和被保護設備網段之間,外部設備向被保護設備發送數據包,數據包被前置機截獲,系統工作流程如圖2所示。
2.1 深度檢測模塊
嵌入在前置機設備內的自適應深度檢查方法處理所述數據包,按照0~5級控制順序,逐級檢測數據包是否合法:
(1)判斷該數據包的IP地址、MAC地址是否合法,合法則進入下一步,不合法則丟棄,并記錄日志;
(2)解析數據包得到數據包的源端口、目的端口,判斷端口是否合法,合法進入下一步,不合法丟棄,并記錄日志;
(3)判斷數據包的協議類型,根據用戶配置的協議控制要求,判斷該協議數據包的完整性、合法性,合法進入下一步,不合法丟棄,并記錄日志;
(4)根據協議類型,判斷該協議中某些字段,如功能碼控制、參數控制等是否合法,合法進入下一步,不合法丟棄并記錄日志;
(5)根據協議類型匹配預置規則庫匹配,合法進入下一步,不合法丟棄并記錄日志;
(6)對用戶自定義規則進行批評,合法進入下一步,不合法則丟棄并記錄日志。
2.2 自適應檢測模塊
設備狀態檢測模塊周期性運行檢查設備狀態,每5 s運行一次,檢測設備狀態包括并發用戶數、接口流量、內存使用、進程數、CPU占用,檢測到的結果提供給自適應檢測模塊。
自適應檢測模塊接收到設備檢測模塊檢測到的數據,根據用戶配置到觸發條件,動態調節深度檢測級別:
(1)設備狀態為:并發用戶數500、接口流量30 MB/s、內存使用60%、進程數50、CPU占用70%;
(2)用戶配置可自適應動態調整觸發為真;
(3)假設用戶配置的觸發條件為:
①并發用戶數<500、接口流量<20 MB/s、內存使用
<50%、進程數<50、CPU占用<50%時,第二步深度檢測為完全檢測,即2.1節(1)~(6)完全步驟檢測;
②接口流量20~50 MB/s、CPU占用50%~80%時, 第二步深度檢測為不完全檢測,即2.1節(1)~(5)不完全步驟檢測,降級減少用戶自定義規則匹配部分;
③接口流量50~100 MB/s、CPU占用80%~90%時深度檢測基本降級,第二步工作步驟設置為2.1節(1)~(4);
④接口流量>100 MB/s、CPU大于95%時,采用不檢查機制,完全放行,或完全阻塞;
(4)根據用戶配置條件,系統根據當時的設備狀態,動態調整第二步工作步驟為2.1節(1)~(5)不完全檢測。
這樣系統處理速度加快,待系統恢復正常時,自適應檢測算法會再一次調整到完全檢測狀態,防止系統因為某一時段過大的數據流量或設備高負載時造成設備宕機,引起系統癱瘓。
(5)在用戶任務網絡不夠安全時,可設置可自適應動態調整觸發為假,系統不再進行自適應深度調整,則工作方式與一般工控防火墻一致。
3 測試對比
在不使用本系統的工控前置機中,采用透明代理防火墻工作方式保護現場工控網絡,該前置機為內存4 GB的1U設備,安裝一般防火墻軟件,在防火墻軟件中設定網絡連接數最大500,接口流量最大為100 Mb/s;測試采用2臺PC,兩臺PC仿真客戶端與服務器之間的TCP通信過程。在保持舊的通信會話聯接仍有效的基礎上,以批量方式增加新的通信會話過程,通過調整批量的大小,測試裝有一般防火墻軟件前置機能支持的有效TCP并發連接速率,當并發數量在每秒200左右時出現延遲,延遲最大為0.046 s,并發數量超過300每秒時,出現延遲最大為0.53 s,嚴重影響現場工作;
采用本系統的前置機進行測試,前置機為內存4 GB的1U設備,測試方法相同。此時用戶設置深度檢測規則為200<并發用戶數<300時,采用自適應深度調整,取消級別5的檢測;在300<并發用戶數<400時,取消級別4的檢測。測試時,在每秒220左右連接時,系統出現延遲,系統自適應深度檢測級別調整后,延遲消失;繼續增加并發數量超過320每秒時,再次出現延遲,延遲最大為0.025 s,系統再次自適應調整,延遲消失;降低并發連接數到270時,系統自動調整添加級別4的檢測。在整個過程中,系統不會出現延遲越來越嚴重的想象,不會造成系統癱瘓,且如果用戶關閉自適應深度調整,本系統的工作方式將與防火墻等防護系統的工作方式一致,不會形成因自動調整而降低安全策略的情況。
4 總結
本文研究了基于自適應深度檢測的工控安全防護系統,并提出了自適應深度檢測的相關方法。采用對比測試的方法比較了傳統防火墻和本系統的測試結果,證明本研究可以提供一種自適應深度檢測方法及系統,對安全防護設備的實際情況進行動態自適應分析,避免造成設備癱瘓的情況。
參考文獻
[1] STOUFFER K,FALCO J,SCARFONE K.Guide to industrial control systems(ICS) security[J].NIST Special Publication,2011,800 (82):1-2.
[2] GAO W,MORRIS T H.On cyber attacks and signature based intrusion detection for MODBUS based industrial control systems[J].Journal of Digital Forensics,Security and Law,2014,9(1):37-56.
[3] 譚湘.基于防火墻的企業網絡安全設計與實現[D].西安:西安電子科技大學,2013.
[4] 郝玉潔.深度包檢測主機防火墻的研究與實現[D].成都:電子科技大學,2010.
作者信息:
郭肖旺,閔曉霜,韓慶敏
(中國電子信息產業集團有限公司第六研究所,北京100083)