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