王朝棟,鄭忠斌,蔡佳浩
(工業互聯網創新中心(上海)有限公司,上海 200032)
工業互聯網是機器、物品、控制系統、信息系統、人之間互聯的網絡,是滿足工業智能化發展的關鍵網絡基礎設施,工業環境原有的特性比如封閉性和專用性正在逐漸減弱,工業互聯網在促進工業進步的同時也帶來了不可忽略的安全[1-2]問題。近年來發生的各種工業安全事件,不斷地在給人們敲響警鐘,不管是2010年遭受震網病毒攻擊的伊朗核電站事件,還是2018年發生在委內瑞拉的針對電網的惡性攻擊事件,都發生在核電、能源、交通等不同的領域,病毒和木馬等導致的攻擊事件正在逐漸形成跨行業的特征。提高工業互聯網整體安全防護已迫在眉睫。
國內針對工業互聯網安全制定的相關政策起步較晚,傳統工控網絡蜜罐系統在國內工廠中的應用時間還短,該系統通過軟件編程模擬出工廠擁有的資產設備的虛擬場景,用于迷惑網絡攻擊者,然后當攻擊發生的時候記錄攻擊過程的痕跡,并通過分析獲取攻擊的標本,進而提高工控網絡的安全性。
雖然傳統工控網絡蜜罐系統可以應對來自工業互聯網中黑客或木馬病毒的攻擊,記錄整個攻擊流程痕跡,收集大量蠕蟲、木馬及黑客等的攻擊操作行為,并進行相應的報警,但由于傳統工控網絡蜜罐系統在工業互聯網中只能被動地監測內網系統,不能掌握整個工控網絡設備中的木馬、病毒和系統后門的情況,難以對高速傳播的病毒進行早期預警。本文提出的基于主動防御技術的工業安全誘捕系統可以主動掃描可能存在安全風險的物理設備的端口,并通過構建帶有某些特征的探測數據包,去引誘潛伏在工控網絡內部的蠕蟲、木馬和后門程序進行攻擊行為,然后記錄攻擊痕跡并進行報警。
傳統工控網絡蜜罐[3-9]技術是根據工廠的現實狀況在工控網絡內部虛擬高仿真度控制系統工藝運行環境的蜜罐,是一種被動的安全檢測手段。傳統工控網絡蜜罐可以獲取來自于外部網絡中的攻擊者在攻擊過程中的許多有價值的痕跡,對于研究者具有很大的研究價值。傳統工控網絡蜜罐系統架構圖如圖1所示。

圖1 傳統工控網絡蜜罐系統框架
在外部攻擊者對工控網絡進行攻擊的時候,傳統工控網絡蜜罐系統中的不同子系統發揮著不同的功能,其中蜜罐系統負責通過對Modbus協議、西門子S7協議和IEC104協議的仿真來欺騙攻擊者,引誘攻擊者進行攻擊,數據捕獲系統對攻擊者的數據進行捕獲,獲取攻擊者/掃描者的IP等地址信息進行分析。數據記錄系統對提取出來的攻擊過程的行文特征進行記錄,從而便于研究。
傳統工控網絡蜜罐系統通過提供Modbus、S7、IEC04等一系列的通用工控協議,構建一套復雜的工控基礎設施用于欺騙未知的攻擊者。除此之外,可以通過增加人機接口的方法提升對攻擊者的迷惑性。
由于傳統工控網絡蜜罐系統在工控網絡中只能被動地監測內網系統,不能掌握整個工控網絡設備中的整體安全情況。
本文設計的基于主動防御技術的工業安全誘捕系統[10]是部署于已經搭建好的傳統工控網絡蜜罐系統內,設定檢測規則,在工控網絡內部隱藏的蠕蟲、木馬以及后門程序在傳播之前,對網絡內部設備端口進行掃描。對于檢測結果是開放的設備端口,基于主動防御技術的工業安全誘捕系統將會與開放的設備端口建立連接,連接成功之后會發送探測包,探測包具有一些必要的特征,如在探測包頭的option字段中加載一些特征值。當基于主動防御技術的工業安全誘捕系統接收到探測報文回應后,對探測報文進行分析,即可通過獲取的option字段特征值、源IP等信息判斷該端口是否存在木馬、蠕蟲及系統后門。基于主動防御技術的工業安全誘捕系統的流程圖如圖2所示。

圖2 基于主動防御技術的工業安全誘捕系統流程圖
基于主動防御的工業安全誘捕系統主要由四部分功能組成,第一部分是過濾功能,分析收到的設備端口返回的報文是普通行為或是非法行為。第二部分是探測功能,使用Nmap掃描內網主機服務,獲取正在打開使用的端口地址;并根據探測到的服務端口地址嘗試建立連接,對成功的連接發送探測包進行探測;通過探測包加載服務特征,引誘蠕蟲、木馬等病毒給基于主動防御的工業安全誘捕系統發送信息。第三部分是攻擊記錄功能,記錄所有的攻擊報文進行分析。第四部分是報文協議分析功能,將發送的請求,如不同的工控協議,轉發至對應工控網絡蜜罐中的虛擬環境進行響應。
其中,基于主動防御技術的工業安全誘捕系統嘗試與端口建立連接的流程如圖3所示。

圖3 探測建立連接流程圖
如圖3所示,基于主動防御技術的工業安全誘捕系統想要連接工控網絡內部設備80端口時,會先發送一個帶有SYN標識和端口號的TCP數據包給工控網絡內部設備80端口。如果端口是開放的,則工控網絡內部設備會接受這個連接并返回一個帶有SYN和ACK標識的數據包給工業安全誘捕系統。隨后工業安全誘捕系統會返回帶有ACK和RST標識的數據包,此時基于主動防御技術的工業安全誘捕系統與工控網絡內部設備建立了連接。如果完成一次三次握手,那么工控網絡內部設備上對應的端口肯定就是開放的。
基于主動防御技術的工業安全誘捕系統,通過端口掃描、探測數據包發送和攻擊痕跡記錄分析等功能能夠與潛伏在工控系統中的木馬、病毒和后門程序進行更好的交互,可以解決傳統工控網絡蜜罐系統被動防御的問題,主動地去尋找并發現在工控網絡內部設備中潛伏的木馬、蠕蟲、后門程序等威脅,并在這些威脅竊取關鍵數據之前,獲取潛伏的木馬、蠕蟲、后門程序的信息,實現早期預警防護。
基于主動防御技術的工業安全誘捕系統部署于一臺高性能的服務器上,使用自裁剪Linux安全操作系統,內核版本2.6.32以上版本;數據庫:MySQL 5.0以上版本;Web應用服務器:Tomcat 6.0以上版本作為產品旁路接入內網邊界交換機,系統仿真實驗的架構圖如圖4所示。

圖4 工業安全誘捕系統仿真架構圖
模擬完整的工控網絡內部設備運行環境之后,通過Nmap掃描工具對工控網絡內部設備的端口進行掃描確認端口開放情況和運行的服務,對工控網絡內部設備端口掃描結果如圖5所示。
在獲取工控網絡內部資產設備端口的開放情況和運行的服務之后,基于主動防御技術的工業安全誘捕系統與開放的端口嘗試建立連接發送探測數據包,探測包頭的option字段中加載一些不同協議通信的服務特征,以設備之間采用Modbus協議通信為例,option字段中加載的是Modbus報文的不同功能碼,內部資產設備中隱藏的后門程序等可以基于Modbus協議,對工業控制設備進行基于指令的操作,包括打開或關閉閥門,讀寫線圈數據,啟動或停止PLC,甚至可以更改控制邏輯,下載梯形圖等危險操作。Modbus的報文格式較為簡單,一個通用Modbus數據幀結構由地址域、功能碼、數據、差錯校驗構成,Modbus的數據幀結構如圖6所示。

圖6 Modbus數據幀結構
其中,Modbus的部分功能碼是協議強制要求規定的,部分功能碼允許不同廠商進行自定義實現。工控網絡中,Modbus協議無差錯通信如圖7所示,Modbus協議異常響應通信如圖8所示。

圖7 Modbus事務處理(無差錯)

圖8 Modbus事務處理(異常響應)
內部資產設備中隱藏的后門程序等威脅會攔截發往目標PLC的Modbus流量,一旦獲取明文傳輸的sesseion key,攻擊者就能發送請求增加任意命令。即攻擊者可以通過簡單地發送不同功能碼的報文,就可以達到惡意操作設備的目的。
發送探測報文之后,對接收到的數據報文進行數據鏈路層解碼、IP層解碼,在白名單中查詢該IP地址與端口服務,判斷是否為合法連接,若為非法連接則基于已有的特征庫,如木馬、蠕蟲、入侵、系統后門等規則庫進行分析,將實際數據包與特征碼相匹配,以判斷檢測數據包是否包含了攻擊、木馬、蠕蟲等行為,這些特征碼定義在數據庫中,報文分析的流程圖如圖9所示。

圖9 報文分析流程圖
本文在傳統工控網絡蜜罐系統的基礎上,提出了基于主動防御技術的工業安全誘捕系統,并給出了該系統的框架拓撲圖,該系統利用誘騙探測技術,把傳統工業蜜罐系統的守護者角色由被動轉換為主動,不僅可以應對外部網絡上的攻擊者對工業控制網絡造成的威脅,還可以抵御來自于工控網絡內部設備中隱藏的木馬、病毒、后門程序造成的危害,彌補了傳統工控網絡蜜罐系統技術的不足。
基于主動防御技術的工業安全誘捕系統支持對多種不同攻擊行為的分析,同時又要對數據庫進行大量的讀寫操作,所以必須對相關算法進行精心設計,確保基于主動防御的工業安全誘捕系統有足夠的處理能力。