王朝棟,鄭忠斌,蔡佳浩
(工業(yè)互聯(lián)網(wǎng)創(chuàng)新中心(上海)有限公司,上海 200032)
工業(yè)互聯(lián)網(wǎng)是機器、物品、控制系統(tǒng)、信息系統(tǒng)、人之間互聯(lián)的網(wǎng)絡,是滿足工業(yè)智能化發(fā)展的關鍵網(wǎng)絡基礎設施,工業(yè)環(huán)境原有的特性比如封閉性和專用性正在逐漸減弱,工業(yè)互聯(lián)網(wǎng)在促進工業(yè)進步的同時也帶來了不可忽略的安全[1-2]問題。近年來發(fā)生的各種工業(yè)安全事件,不斷地在給人們敲響警鐘,不管是2010年遭受震網(wǎng)病毒攻擊的伊朗核電站事件,還是2018年發(fā)生在委內(nèi)瑞拉的針對電網(wǎng)的惡性攻擊事件,都發(fā)生在核電、能源、交通等不同的領域,病毒和木馬等導致的攻擊事件正在逐漸形成跨行業(yè)的特征。提高工業(yè)互聯(lián)網(wǎng)整體安全防護已迫在眉睫。
國內(nèi)針對工業(yè)互聯(lián)網(wǎng)安全制定的相關政策起步較晚,傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)在國內(nèi)工廠中的應用時間還短,該系統(tǒng)通過軟件編程模擬出工廠擁有的資產(chǎn)設備的虛擬場景,用于迷惑網(wǎng)絡攻擊者,然后當攻擊發(fā)生的時候記錄攻擊過程的痕跡,并通過分析獲取攻擊的標本,進而提高工控網(wǎng)絡的安全性。
雖然傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)可以應對來自工業(yè)互聯(lián)網(wǎng)中黑客或木馬病毒的攻擊,記錄整個攻擊流程痕跡,收集大量蠕蟲、木馬及黑客等的攻擊操作行為,并進行相應的報警,但由于傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)在工業(yè)互聯(lián)網(wǎng)中只能被動地監(jiān)測內(nèi)網(wǎng)系統(tǒng),不能掌握整個工控網(wǎng)絡設備中的木馬、病毒和系統(tǒng)后門的情況,難以對高速傳播的病毒進行早期預警。本文提出的基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)可以主動掃描可能存在安全風險的物理設備的端口,并通過構(gòu)建帶有某些特征的探測數(shù)據(jù)包,去引誘潛伏在工控網(wǎng)絡內(nèi)部的蠕蟲、木馬和后門程序進行攻擊行為,然后記錄攻擊痕跡并進行報警。
傳統(tǒng)工控網(wǎng)絡蜜罐[3-9]技術(shù)是根據(jù)工廠的現(xiàn)實狀況在工控網(wǎng)絡內(nèi)部虛擬高仿真度控制系統(tǒng)工藝運行環(huán)境的蜜罐,是一種被動的安全檢測手段。傳統(tǒng)工控網(wǎng)絡蜜罐可以獲取來自于外部網(wǎng)絡中的攻擊者在攻擊過程中的許多有價值的痕跡,對于研究者具有很大的研究價值。傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)架構(gòu)圖如圖1所示。
圖1 傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)框架
在外部攻擊者對工控網(wǎng)絡進行攻擊的時候,傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)中的不同子系統(tǒng)發(fā)揮著不同的功能,其中蜜罐系統(tǒng)負責通過對Modbus協(xié)議、西門子S7協(xié)議和IEC104協(xié)議的仿真來欺騙攻擊者,引誘攻擊者進行攻擊,數(shù)據(jù)捕獲系統(tǒng)對攻擊者的數(shù)據(jù)進行捕獲,獲取攻擊者/掃描者的IP等地址信息進行分析。數(shù)據(jù)記錄系統(tǒng)對提取出來的攻擊過程的行文特征進行記錄,從而便于研究。
傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)通過提供Modbus、S7、IEC04等一系列的通用工控協(xié)議,構(gòu)建一套復雜的工控基礎設施用于欺騙未知的攻擊者。除此之外,可以通過增加人機接口的方法提升對攻擊者的迷惑性。
由于傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)在工控網(wǎng)絡中只能被動地監(jiān)測內(nèi)網(wǎng)系統(tǒng),不能掌握整個工控網(wǎng)絡設備中的整體安全情況。
本文設計的基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)[10]是部署于已經(jīng)搭建好的傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)內(nèi),設定檢測規(guī)則,在工控網(wǎng)絡內(nèi)部隱藏的蠕蟲、木馬以及后門程序在傳播之前,對網(wǎng)絡內(nèi)部設備端口進行掃描。對于檢測結(jié)果是開放的設備端口,基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)將會與開放的設備端口建立連接,連接成功之后會發(fā)送探測包,探測包具有一些必要的特征,如在探測包頭的option字段中加載一些特征值。當基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)接收到探測報文回應后,對探測報文進行分析,即可通過獲取的option字段特征值、源IP等信息判斷該端口是否存在木馬、蠕蟲及系統(tǒng)后門?;谥鲃臃烙夹g(shù)的工業(yè)安全誘捕系統(tǒng)的流程圖如圖2所示。
圖2 基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)流程圖
基于主動防御的工業(yè)安全誘捕系統(tǒng)主要由四部分功能組成,第一部分是過濾功能,分析收到的設備端口返回的報文是普通行為或是非法行為。第二部分是探測功能,使用Nmap掃描內(nèi)網(wǎng)主機服務,獲取正在打開使用的端口地址;并根據(jù)探測到的服務端口地址嘗試建立連接,對成功的連接發(fā)送探測包進行探測;通過探測包加載服務特征,引誘蠕蟲、木馬等病毒給基于主動防御的工業(yè)安全誘捕系統(tǒng)發(fā)送信息。第三部分是攻擊記錄功能,記錄所有的攻擊報文進行分析。第四部分是報文協(xié)議分析功能,將發(fā)送的請求,如不同的工控協(xié)議,轉(zhuǎn)發(fā)至對應工控網(wǎng)絡蜜罐中的虛擬環(huán)境進行響應。
其中,基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)嘗試與端口建立連接的流程如圖3所示。
圖3 探測建立連接流程圖
如圖3所示,基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)想要連接工控網(wǎng)絡內(nèi)部設備80端口時,會先發(fā)送一個帶有SYN標識和端口號的TCP數(shù)據(jù)包給工控網(wǎng)絡內(nèi)部設備80端口。如果端口是開放的,則工控網(wǎng)絡內(nèi)部設備會接受這個連接并返回一個帶有SYN和ACK標識的數(shù)據(jù)包給工業(yè)安全誘捕系統(tǒng)。隨后工業(yè)安全誘捕系統(tǒng)會返回帶有ACK和RST標識的數(shù)據(jù)包,此時基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)與工控網(wǎng)絡內(nèi)部設備建立了連接。如果完成一次三次握手,那么工控網(wǎng)絡內(nèi)部設備上對應的端口肯定就是開放的。
基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng),通過端口掃描、探測數(shù)據(jù)包發(fā)送和攻擊痕跡記錄分析等功能能夠與潛伏在工控系統(tǒng)中的木馬、病毒和后門程序進行更好的交互,可以解決傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)被動防御的問題,主動地去尋找并發(fā)現(xiàn)在工控網(wǎng)絡內(nèi)部設備中潛伏的木馬、蠕蟲、后門程序等威脅,并在這些威脅竊取關鍵數(shù)據(jù)之前,獲取潛伏的木馬、蠕蟲、后門程序的信息,實現(xiàn)早期預警防護。
基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)部署于一臺高性能的服務器上,使用自裁剪Linux安全操作系統(tǒng),內(nèi)核版本2.6.32以上版本;數(shù)據(jù)庫:MySQL 5.0以上版本;Web應用服務器:Tomcat 6.0以上版本作為產(chǎn)品旁路接入內(nèi)網(wǎng)邊界交換機,系統(tǒng)仿真實驗的架構(gòu)圖如圖4所示。
圖4 工業(yè)安全誘捕系統(tǒng)仿真架構(gòu)圖
模擬完整的工控網(wǎng)絡內(nèi)部設備運行環(huán)境之后,通過Nmap掃描工具對工控網(wǎng)絡內(nèi)部設備的端口進行掃描確認端口開放情況和運行的服務,對工控網(wǎng)絡內(nèi)部設備端口掃描結(jié)果如圖5所示。
在獲取工控網(wǎng)絡內(nèi)部資產(chǎn)設備端口的開放情況和運行的服務之后,基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)與開放的端口嘗試建立連接發(fā)送探測數(shù)據(jù)包,探測包頭的option字段中加載一些不同協(xié)議通信的服務特征,以設備之間采用Modbus協(xié)議通信為例,option字段中加載的是Modbus報文的不同功能碼,內(nèi)部資產(chǎn)設備中隱藏的后門程序等可以基于Modbus協(xié)議,對工業(yè)控制設備進行基于指令的操作,包括打開或關閉閥門,讀寫線圈數(shù)據(jù),啟動或停止PLC,甚至可以更改控制邏輯,下載梯形圖等危險操作。Modbus的報文格式較為簡單,一個通用Modbus數(shù)據(jù)幀結(jié)構(gòu)由地址域、功能碼、數(shù)據(jù)、差錯校驗構(gòu)成,Modbus的數(shù)據(jù)幀結(jié)構(gòu)如圖6所示。
圖6 Modbus數(shù)據(jù)幀結(jié)構(gòu)
其中,Modbus的部分功能碼是協(xié)議強制要求規(guī)定的,部分功能碼允許不同廠商進行自定義實現(xiàn)。工控網(wǎng)絡中,Modbus協(xié)議無差錯通信如圖7所示,Modbus協(xié)議異常響應通信如圖8所示。
圖7 Modbus事務處理(無差錯)
圖8 Modbus事務處理(異常響應)
內(nèi)部資產(chǎn)設備中隱藏的后門程序等威脅會攔截發(fā)往目標PLC的Modbus流量,一旦獲取明文傳輸?shù)膕esseion key,攻擊者就能發(fā)送請求增加任意命令。即攻擊者可以通過簡單地發(fā)送不同功能碼的報文,就可以達到惡意操作設備的目的。
發(fā)送探測報文之后,對接收到的數(shù)據(jù)報文進行數(shù)據(jù)鏈路層解碼、IP層解碼,在白名單中查詢該IP地址與端口服務,判斷是否為合法連接,若為非法連接則基于已有的特征庫,如木馬、蠕蟲、入侵、系統(tǒng)后門等規(guī)則庫進行分析,將實際數(shù)據(jù)包與特征碼相匹配,以判斷檢測數(shù)據(jù)包是否包含了攻擊、木馬、蠕蟲等行為,這些特征碼定義在數(shù)據(jù)庫中,報文分析的流程圖如圖9所示。
圖9 報文分析流程圖
本文在傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)的基礎上,提出了基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng),并給出了該系統(tǒng)的框架拓撲圖,該系統(tǒng)利用誘騙探測技術(shù),把傳統(tǒng)工業(yè)蜜罐系統(tǒng)的守護者角色由被動轉(zhuǎn)換為主動,不僅可以應對外部網(wǎng)絡上的攻擊者對工業(yè)控制網(wǎng)絡造成的威脅,還可以抵御來自于工控網(wǎng)絡內(nèi)部設備中隱藏的木馬、病毒、后門程序造成的危害,彌補了傳統(tǒng)工控網(wǎng)絡蜜罐系統(tǒng)技術(shù)的不足。
基于主動防御技術(shù)的工業(yè)安全誘捕系統(tǒng)支持對多種不同攻擊行為的分析,同時又要對數(shù)據(jù)庫進行大量的讀寫操作,所以必須對相關算法進行精心設計,確?;谥鲃臃烙墓I(yè)安全誘捕系統(tǒng)有足夠的處理能力。