羅 野,王 英,閆懷超,陳政熙,張家鵬
(上海工業自動化儀表研究院有限公司,上海 200233)
隨著工業互聯網的快速發展,工業互聯網技術逐漸應用到了化工、汽車、智能制造等工業行業。工業控制網絡作為工業互聯網的重要組成部分,其安全問題也逐漸凸顯[1]。從2010年伊朗核電站的震網到2020年的本田汽車遭受Ekans病毒勒索,原本處在相對物理隔離環境中的工業控制系統,出現了不少具有針對性和破壞性的安全事件。在工業互聯網安全領域,針對人員攻擊行為與模式的認識仍然處于一個模糊的狀態,攻擊和防護之間事中存在著差距。這使得針對工業互聯網的安全研究處于一個不利的局面。
蜜罐是一種經過特定設計的用于吸引潛在攻擊者的陷阱工具[2]。蜜罐通過模擬一種或多種服務或者設備來吸引攻擊者進行攻擊,記錄攻擊者的攻擊數據(例如攻擊的起點、終點、攻擊時間、攻擊者信息等),通過對攻擊行為的分析,可以研究攻擊者的攻擊策略形成威脅情報數據庫,為工業互聯網安全防護提供有效的技術支持。但蜜罐一旦被攻擊者所識別,就會失去其原有的價值,是一種識破即失效的被動式主動防御手段[3]。因此,本文提出一種基于真實工控環境的高交互式蜜罐系統。該系統模擬工業現場搭建可編程邏輯控制器(programmable logic controller,PLC)控制系統,最大程度還原工業互聯網現場層的真實狀態,可以增加攻擊探測真實設備信息的時間、干擾惡意人員對被攻擊設施的判斷;利用現有信息安全技術對攻擊行為和攻擊策略進行審計,從而采取更有針對性的防護手段,確保工業互聯網網絡環境的安全與穩定。
蜜罐系統的種類很多,但可根據特點分為低、中、高三種交互類型。低交互型蜜罐系統的功能最少[4],可以模擬的服務種類最少,但是可以減小攻擊活動帶來的影響,一般很容易識別蜜罐系統;中交互型的蜜罐系統會在低交互蜜罐的基礎上加入一些仿真軟件來模擬復雜的服務,迷惑性較強,可捕獲的攻擊信息較多;高交互型的蜜罐系統是根據真實的控制系統搭建,相對于低交互型蜜罐系統,其在協議、人機界面、設備模擬三方面做了提升,提高了PLC的高交互性,且配置相對簡單,迷惑性最強。三種類型蜜罐對比如表1所示。

表1 三種類型蜜罐對比
本文所設計蜜罐系統是基于真實工控環境的高交互式蜜罐系統,主要具備如下功能。
(1)識別攻擊來源。蜜罐系統應能夠識別攻擊者的源IP。
(2)記錄攻擊過程。
①蜜罐應能夠記錄攻擊者完整的攻擊過程。
②蜜罐系統應能夠記錄攻擊者發送給PLC及組態軟件的攻擊數據包。
③一次攻擊完成后,蜜罐系統應能恢復到攻擊前的狀態。
①蜜罐主機系統。
蜜罐主機系統為暗藏監控采集功能的Windows 10主機,預留一部分管理員已知的部分安全漏洞。數據采集方式由主機采集及網絡旁路采集兩部分組成。主機采集部署于蜜罐主機中,用于記錄主機中的各類信息。旁路采集部署于系統網絡中,用于記錄網絡中的全部通信數據,主要包括:蜜罐主機鍵盤輸入、網絡通信端口、系統日志、主機文件變化、網絡通信數據包、PLC的運行狀態和遠程操作日志能夠隱蔽地記錄攻擊者的鍵盤輸入、通信端口、日志、文件變化、網絡通信等。
②網絡數據旁路監測系統。
網絡數據旁路監測通過采集交換機鏡像的網絡通信數據,對攻擊者的通信數據包進行分析,發現攻擊者的網絡攻擊行為及其數據包。
③PLC狀態監控系統和遠程操作日志。
PLC狀態監控系統通過周期性地獲取現場PLC的寄存器數值、PLC運行狀態等數據,判斷PLC是否遭受攻擊。當發現PLC遭受攻擊后進行報警及記錄。開啟PLC的日志功能,在遠端操作時,將操作日志事項發送至記錄主機中。PLC狀態監控系統同時具備部署功能,能夠對現場PLC進行備份、恢復。在記錄一次攻擊行為后,能夠將系統恢復到攻擊前的狀態,準備接受下一次攻擊。
蜜罐系統拓撲圖如圖1所示。

圖1 蜜罐系統拓撲圖
PLC系統可以方便地對現場的運行設備進行監視和控制,以實現生產過程數據采集、設備控制、測量、參數調節以及各類信號報警等功能[5]。在現代化的工業企業中,PLC系統有著極其重要的意義,是不可缺少的系統。
(1)軟件。
PLC由多個任務組成,每個任務完成特定的功能,包括組態系統、Web發布、數據采集、數據處理、歷史數據存儲等。系統將服務器再細化為多個專門服務器,各服務器邏輯上作為統一整體,但物理上可以放置在不同的機器上。PLC系統應用層次劃分如圖2所示。

圖2 PLC系統應用層次劃分
(2)硬件。
傳統的工業控制系統分為客戶端/服務器(client/server,C/S)和瀏覽器/服務器(brouser/server,B/S)架構。C/S架構中,客戶端提供(human machine interface,HMI)用于控制一些現場設備。而服務器采集設備對象的數據,然后對數據進行處理和分析[6]。B/S架構中,將監控畫面通過Web發布Internet上,方便運維管理。硬件設備通常以總線方式(RS-485、以太網等)或者干節點的方式連接,本方案選擇以太網連接方式。
(3)主要功能。
①與控制單元進行實時通信,數據的監控與采集不間斷。
②具有功能全面的操作界面,可隨時根據數據的分析情況由主控計算機自動或手動地對控單元發出控制或調節命令,控制執行器動作。
③現場數據越限時,及時上傳報警信息時,主控計算機會出現明顯的報警畫面和報警信息。
④可在上位機顯示工藝流程圖等。
⑤具備Web發布功能,將過程系統,數據瀏覽系統,數據查詢系統,數據分析系統以Web的方式提供出來。
⑥具備數據追溯,可根據需求(任意時間段)輸出報表。
根據上述設計方案,蜜罐系統選用軟硬件包括AB 1756 PLC模塊組、西門子S7-400,施耐德M580PLC模塊組、赫斯曼交換機、工業審計設備、工控機、組態軟件及人機交互軟件。
三臺不同品牌的PLC以及工控機分別通過以太網的方式連接至交換機。交換機配置其中一個端口為鏡像口,用于復制其他端口的數據。工業審計裝置的管理端口通過以太網的方式連接至此鏡像口。
工控機上安裝3套虛擬機軟件,分別安裝logix5000、Portal V15、UnityPRO軟件,用于對三套PLC進行組態。工控機主機安裝HMI軟件iFix,用于與三套PLC進行數據通信。其中:AB PLC通過OPC協議的方式與iFix進行通信,施耐德PLC通過MBE的Modbus TCP/IP協議與iFix進行通信[7],西門子PLC通過Socket的方式將數據通訊至AB PLC后傳輸至iFix。最后,為蜜罐主機設置一個公網IP,將蜜罐發布到公網,確保可以用網絡掃描器掃描到蜜罐系統。
本次經過滲透測試方法對蜜罐系統進行測試,滲透測試過程主要包括信息收集、漏洞分析、滲透攻擊以及總結4個方面。通過網絡搜索引擎shodan,從公網掃描發現蜜罐系統;使用kali-linux系統中的nmap漏洞掃描工具,掃描對應存活主機開放的端口;根據開放的端口,找到對應的漏洞和漏洞利用載荷;啟動漏洞載荷利用平臺msfconsole,設置相應的參數;啟動載荷,攻擊蜜罐系統[8]。
蜜罐系統公網地址設置為180.xxx.xxx.6。首先,使用網絡搜索引擎shodan,確定可以從公網掃描到蜜罐系統;然后,使用nmap掃描工具,掃描蜜罐系統端口開放的情況。結果發現上位機開放了3389、445等高危漏洞端口,發現存在高危端口暴露公網的情況。通過NetBIOS設備探針以及SMB探測信息結果為Windows 10虛擬環境。
利用微軟SMBv3 Client/Server遠程代碼執行漏洞(漏洞編號:CVE-2020-0796)進行滲透攻擊。滲透測試流程如圖3所示。

圖3 滲透測試流程圖
該漏洞是由于SMBv3協議在處理惡意的壓縮數據包時出錯所造成的,可讓遠程且未經身份驗證的攻擊者在目標系統上執行任意代碼[9-10]。使用驗證POC腳本發現漏洞存在,隨后使用getshell腳本嘗試進行權限獲取,生成shellcode。使用工具msfconsole監聽生成shellcode時設置的監聽2333端口,使用exp嘗試攻擊反彈回一個shell,最終審計系統識別并記錄了此次滲透攻擊數據。
本次測試過程發現多個安全風險,最終都未能獲取服務器權限。發現服務器上的web應用未提供正常業務,同時服務器在測試過程中存在多次端口無法訪問的情況,可進行攻擊的突破點較為有限。
漏洞利用過程中,發現漏洞攻擊腳本程序都未能生效。測試中發現端口運行服務經常出現異常的響應情況,懷疑端口服務是否正常運行或者配置上存在問題,希望對服務配置進行相應的檢查。
在工業互聯網安全防護領域中,蜜罐系統既可以作為吸引攻擊者的陷阱,又可以作為安全防護的工具,在網絡安全防護體系中的應用將會越來越廣泛。本文根據蜜罐系統的發展背景和網絡安全研究的顯示需求,提出了基于真實工控環境的高交互式蜜罐系統,模擬了工業現場搭建PLC控制系統。系統還原了工業控制系統的真實狀態,增加了攻擊探測真實設備信息的時間,以迷惑攻擊者對目的攻擊設備的判斷[11]。運用滲透測試的方式,驗證了蜜罐系統的可用性和安全性,確保工業互聯網網絡環境的安全,也為下一步依靠蜜罐系統開展網絡安全研究打下基礎。