劉煜堃,諸葛建偉*,吳一雄,2
(1.清華大學網絡科學與網絡空間研究院,北京100084; 2.福州大學數學與計算機科學學院,福州350116)(*通信作者電子郵箱zhugejw@cernet.edu.cn)
工業控制系統(Industrial Control System,ICS)用于連接、控制和監測諸如電力生產、輸配電、石油化工、水處理和傳輸等工業生產環境。近年來,由于物聯網及工控互聯網的發展,工控系統與互聯網的連接增多[1],工控系統暴露的安全問題也逐漸增多,工控系統安全愈發受到關注[2]。
工控系統的監控和操作主要通過可編程邏輯控制器(Programmable Logic Controller,PLC)作為嵌入式信息物理系統(Cyber Physical System,CPS)連接到數據采集與監測(Supervisory Control And Data Acquisition,SCADA)系統,工程師可以通過SCADA系統的人機交互接口(Human Machine Interface,HMI)進行監視和控制。PLC是一種專門為在工業環境下應用而設計的數字運算操作電子系統。它們基于從輸入端口和存儲的程序接收到的信號來控制輸出端口的狀態,并且在輸入和輸出方面的邏輯行為可由工程師編程。SCADA是以計算機為基礎的生產過程控制與調度自動化系統,它可以對現場的運行設備進行監視和控制。它需要運行在已有操作系統(如Windows)的計算機(該計算機可以直接發出操控命令,又被稱為上位機)上,并可以由工程師編程。
針對工控系統的攻擊可能會產生導致危及生命財產安全的嚴重后果。“震網”[3]是一個針對工業控制系統的蠕蟲,它的攻擊目標是伊朗的鈾濃縮設施;“震網”采用了一些未公開漏洞,可以逃避傳統的網絡安全檢測。“WannaCry”[4]是在2017年大規模傳播的勒索蠕蟲,它利用Windows系統的漏洞實現蠕蟲式傳播,并鎖定文件以此向用戶勒索。對工控系統來講,勒索蠕蟲軟件無疑是一個巨大的安全威脅[5]。
在以往的針對工業控制系統的攻擊方式研究之中,作者的攻擊思路與傳統的攻擊思路相同。他們通過首先發現暴露在公網上特定的工控組件,利用其漏洞獲取其權限,進而進行勒索或進一步傳播。但由于工控組件大部分位于內網中,只有少部分暴露在公網上,所以這種攻擊路徑的威脅程度有限。針對工業控制系統高度隔離化的問題,本文提出一種基于新的攻擊路徑的勒索蠕蟲威脅模型。它可以穿越工控系統內網限制,實現蠕蟲式感染和勒索;其傳播路徑基于工業控制系統實際的開發場景,較難檢測和防范。
本文的主要工作如下:
1)總結工業控制系統存在的安全風險和攻擊方法。
2)根據觀察到的工業控制系統實際開發場景和存在的安全風險,提出一種基于新的攻擊路徑的勒索蠕蟲威脅模型。
3)實現一種針對工業控制系統勒索蠕蟲原型“ICSGhost”。
4)提出針對工業控制系統勒索蠕蟲威脅的縱深防御方案。
工業控制系統網絡是一個高度定制化的網絡,不同行業的工業控制系統網絡結構存在較大差異,但總體呈現出明顯的網絡層次結構。自下往上可以劃分為:
1)現場儀表網絡。由現場的儀器儀表設備組成,如傳感器、電機等。
2)本地控制網絡。由對現場的儀器儀表進行數據獲取及控制的PLC、遠程終端單元(Remote Terminal Unit,RTU)等設備組成。
3)監測控制網絡。工程師在此網絡進行監測和控制物理過程,HMI、工程師站等在此網絡中。
4)非軍事區(DeMilitarized Zone,DMZ)網絡。非軍事區域,向上層網絡提供下層工業控制網絡內的數據和應用。
5)企業工作網絡。企業內部辦公網絡,包括企業辦公系統、內部員工主機、打印機等。
6)互聯網。
在現場儀表網絡和本地控制網絡中針對PLC等工控組件的攻擊主要可以總結為以下幾種形式:
1)勒索軟件。2017年,Formby等[6]首次提出了針對工控系統的勒索軟件,其將勒索軟件感染的目標從IT主機轉向工控組件,通過感染工控組件威脅受害者提供贖金,否則對工控系統發出破壞指令。其工作方式與傳統的勒索軟件相同,首先發現暴露在公網上特定的工控組件,利用漏洞獲取其權限,進而進行勒索或進一步傳播。但由于工控組件大部分位于內網中,只有少部分暴露在公網上,所以這種攻擊路徑的威脅程度有限。
2)PLC蠕蟲。2016年,Spenneberg等[7]提出了針對 PLC的工控蠕蟲PLC Blaster。蠕蟲在感染第一個目標之后在內網之中不斷自我復制并傳播直至感染整個內網,接著再執行一些預置的惡意攻擊。
3)跳板機。2015年,Klick等[8]提出了一個新的攻擊路徑,其將暴露在公網之中的PLC作為一個跳板機進入內網從而實施對內網中工控系統的攻擊。
在監測控制網絡中,上位機系統漏洞可能會被黑客利用從而實施攻擊。而工程師站則有可能收到魚叉式釣魚攻擊、U盤攻擊、密碼攻擊、社會工程學攻擊等方式組合的攻擊。
非軍事區網絡提供數據和應用服務的服務器可能存在如未授權訪問、信息泄露等安全問題,而提供中轉服務的服務器可能存在被攻擊者進行水坑攻擊[9]的安全風險。
企業工作網絡中的邊界服務器、打印等共享設備是可能被攻擊者攻擊的薄弱點,同時弱口令等配置不當問題也是在企業工作網絡中常出現的安全問題。
在互聯網接入時,由于運維以及業務需要,工控系統往往需要為工程師提供能夠進入工控網絡的遠程連接服務(如虛擬專用網絡(Virtual Private Network,VPN)服務等)。若遠程連接服務配置不當,諸如將內部服務錯誤暴露在公網或使用弱口令,則攻擊者可以通過不當配置的遠程連接服務攻擊企業內網。
本章將介紹觀察到的工控系統實際開發場景和存在的安全風險。基于這些觀察,在第3章提出一種新的勒索蠕蟲威脅模型。
在實際的工控系統開發場景中,對于不同的工控組件,工程師需要采用不同的方式進行開發,以下主要討論PLC與SCADA兩種主要的工控組件。
對于PLC的組態開發、安裝和維護的工作通常由PLC工程師完成。由于PLC設備被安裝在工程現場,所以PLC工程師通常需要前往工程現場,將其工作站通過諸如串口、以太網的方式直接接入到PLC,并通過組態軟件對PLC進行組態開發與調試。
對于HMI等SCADA系統的組件,由于其大多數基于通用操作系統,所以可以通過操作系統的遠程連接功能接入進行開發。負責SCADA系統開發的工程師無須前往工程現場,可以在辦公室中通過遠程連接接入上位機,通過SCADA系統的組態軟件對SCADA系統進行開發、監控與維護。由于工控網絡大多數處于內網中,所以工程師需要使用諸如VPN等的遠程連接服務的方式接入到位于內網的上位機。根據實際情況的不同,工程師有時候需要通過多級遠程連接的方式接入內容的上位機。
此外,通過調研發現,在現有的工控系統開發中,還存下著以下三個方面的安全風險:
1)不設密碼。雖然工業控制設備一般都提供密碼控制的功能。但是由于忘記密碼需要設備廠商的工程師的支持才能重置,這導致很多工程師為了簡單起見就不為工業控制設備設置管理密碼。
2)固件和上位機系統不升級。由于工控系統的第一要求是高可用性,且工控軟件高度定制化,對于操作系統等基礎組件的升級可能會工控軟件產生兼容性問題,所以很多工控系統在部署之后基本不進行升級操作;而且,工業控制設備的生存周期長,這導致工控方面的漏洞存活周期長。
3)使用盜版軟件。由于不同工控廠商采用不同的組態軟件,在加上正版的組態軟件需要額外付費,許多工程師會在網上查找破解版的組態軟件進行組態開發工作。
基于第2章觀察到的工控系統實際開發場景及安全風險,提出一種針對工控系統實際開發場景設計的勒索蠕蟲威脅模型。該威脅模型針對承載SCADA系統的上位機和PLC設備這兩種工控系統中的重要組件。該模型不同于傳統的發現暴露在互聯網上的受害者進行感染與傳播的感染思路,而是以工程師站作為入口,進而感染工控組件。對于三個工控系統的主要目標——工程師站、上位機及PLC,圖1展示了完整的攻擊模型。
在工控系統的開發和配置過程中,工程師需要先將工程師站通過接線等方式連接到相應的工控組件。工程師站主要為筆記本電腦。工程師通過攜帶工程師站進入設備現場接入或通過遠程連接服務等方式連接到工控系統內網從而對工控組件進行開發和配置。在此過程中,工程師站繞過了工業控制網絡內網隔離或者物理隔離的限制,直接連接到位于工業控制網絡中的工控設備。

圖1 威脅模型Fig.1 Threat model
本文提出的威脅模型將工程師站作為初次感染目標,并以工程師站作為跳板,當工程師站接入工業控制網絡時,對處于內部網絡的工業控制設備進行攻擊,實現蠕蟲式感染和勒索。該威脅模型在工控網絡內的傳播路徑與工控系統實際開發運行場景相符。勒索蠕蟲的傳播隱藏在工程師對工控系統進行開發運維的行為之中,更加難以捕獲與發現;并且,由于第一步的攻擊目標是經常會接觸到互聯網的工程師站,所以更容易實現針對工控系統的大規模攻擊。
工程師站主要是運行著Windows系統的筆記本電腦,由于不同廠商生產的PLC及SCADA系統的差異,廠商會開發出專用的組態和SCADA編程軟件。由于這些軟件的購買使用價格不菲,相當多的工程師會下載和使用網絡上發布的破解版,所以在網上發布捆綁有勒索蠕蟲程序的工控軟件是一種非常有效的攻擊方式。XcodeGhost[10]就是一個類似的成功案例。攻擊者在網絡上發布了帶有惡意程序的Xcode,被大量開發者下載,導致使用此帶有惡意程序的Xcode開發出的軟件都被植入惡意程序。
釣魚攻擊也是非常有效的攻擊方式,攻擊者可以誘使工程師打開含有惡意攻擊載荷的網頁或文檔程序,使工程師站受感染。
使用U盤攻擊同樣是一種有效的方式[11],工程師站將在被插入含有惡意攻擊載荷的U盤時受到感染。
除此之外還存在一種反向感染的途徑。工程師站需要通過遠程連接服務連入上位機對SCADA系統進行開發與配置。若某臺上位機已受感染,則可以通過與此上位機建立的連接會話反向感染工程師站。
若工程師站已經受到感染,則勒索蠕蟲可以通過建立的遠程連接會話作為通道將勒索蠕蟲傳播到遠程連接另一端的上位機。
勒索蠕蟲還可以利用上位機系統漏洞或以弱口令為代表的配置疏忽導致的安全漏洞在上位機之間進行蠕蟲傳播并實施勒索。
在組態開發過程中,工程師站可以通過工控網絡訪問到PLC,且組態軟件與PLC也建立了連接。勒索蠕蟲可以直接嘗試連接PLC并對其進行感染從而實施勒索,或通過組態軟件與PLC建立的連接對PLC進行感染并實施勒索。
在工控系統中,SCADA系統可以對PLC進行直接的訪問和控制,所以當上位機被感染之后,勒索蠕蟲也可以通過SCADA和PLC直接建立的連接對PLC進行感染并勒索。除此之外,PLC之間同樣有可能直接進行迭代式的蠕蟲傳播。
基于第3章提出的威脅模型,本文實現了勒索蠕蟲原型ICSGhost以證實威脅切實存在。ICSGhost首先捆綁在組態軟件上被發布到互聯網中,當工程師在工程師站下載并安裝了捆綁著ICSGhost的組態軟件后就會受到感染。ICSGhost針對Windows上位機以及羅克韋爾型號為 MicroLogix 1400的PLC,當工程師連接入工控系統內網中時,可對上位機和相應PLC進行蠕蟲式傳播并勒索。針對Windows上位機,ICSGhost利用遠程桌面協議(Remote Desktop Protocol,RDP)會話將其自身傳播到上位機中,并且可以在上位機中利用MS17-010漏洞在上位機之間進行蠕蟲傳播。當上位機受感染之后,ICSGhost將加密系統的關鍵文件實施勒索。針對羅克韋爾的MicroLogix 1400 PLC,ICSGhost通過劫持組態軟件與PLC的會話或利用此PLC加鎖未驗證的漏洞對該款PLC進行鎖定,實現勒索。
ICSGhost只是一個概念驗證原型,在封閉的實驗環境中開發和實驗。為避免在實驗過程中出現意外的傳播和危害,對其作了如下的額外限制:首先,ICSGhost的感染目標僅被限定在特定的內網網段當中,迭代次數限制為2次;其次,加密后不刪除或破壞系統文件,不長期駐留。
ICSGhost借助RDP的部分功能實現在工程師站和Windows上位機之間的相互傳播。其中,從工程師站到Windows上位機的傳播(簡稱為正向傳播)是 ICSGhost感染攻擊工控系統的過程;從Windows上位機到工程師站的傳播(簡稱為反向傳播)是ICSGhost完成對工控系統的感染之后,再感染其他連接到受感染的工控系統的工程師站,從而通過該工程師站完成對其他未感染的工控系統的攻擊。
在從工程師站到 Windows上位機的傳播的過程中,ICSGhost針對不同的Windows操作系統版本采用不同的攻擊方式來實現RDP傳播。
4.1.1 正向傳播
針對Windows XP和Windows Server 2003的Windows操作系統版本,ICSGhost通過遠程桌面協議的功能特性進行攻擊。首先,ICSGhost通過鍵盤鉤子和讀取遠程桌面協議配置文件的方式獲得建立遠程桌面連接所需的相關信息,如用戶名、密碼和上位機IP等。其次,ICSGhost使用獲取的數據生成一個惡意的RDP配置文件。該配置文件主要實現三個功能:一是通過之前獲取的賬號密碼實現自動認證登錄過程;二是通過”alternate shell”配置選項指定遠程桌面連接建立時在遠程主機上所調用的程序為ICSGhost,ICSGhost在啟動后再執行遠程桌面連接的初始化工作;三是通過文件系統重定向的功能將本地硬盤掛載到Windows上位機,ICSGhost再將自身復制到Windows上位機的自啟動文件夾中。最后,ICSGhost通過生成的惡意RDP配置文件在后臺實現感染過程。
針對Windows XP和Windows Server 2003以后的Windows操作系統版本,由于安全策略的改變和遠程桌面連接協議的升級,導致上述的攻擊方式失效。ICSGhost通過模擬鍵盤輸入的方式進行攻擊。首先,ICSGhost通過鍵盤鉤子和讀取遠程桌面協議配置文件的方式獲得建立遠程桌面連接所需的相關信息。其次,ICSGhost創建全局的低級鍵盤鉤子和低級鼠標鉤子防止意外的鍵盤鼠標輸入對后續攻擊過程的影響。之后,ICSGhost通過修改遠程桌面連接協議的配置文件來修改連接設置。最后,ICSGhost通過“keybd_event”函數從底層模擬鍵盤鼠標輸入進行遠程桌面連接的建立和惡意代碼的執行。
4.1.2 反向傳播
在從Windows上位機到工程師站的傳播的過程中,ICSGhost采用Windows自帶的遠程桌面服務(Remote Desktop Services,RDS)實現 RDP反向傳播。ICSGhost通過修改注冊表等方式開啟RDS服務和指定用戶在連接到 Windows上位機的時候所運行的初始化程序為 ICSGhost,然后由 ICSGhost完成正常的初始化工作,這樣就可以保證ICSGhost存活于每個與Windows上位機建立的遠程桌面連接。在檢測到新連接建立的時候,ICSGhost會檢測所連接的客戶端是否將文件系統重定向到服務端。如果是,ICSGhost則將客戶端的磁盤映射到本地,之后自我復制到該磁盤上,再通過自啟動方式在客戶端下次系統重啟的時候自我啟動。在遠程桌面連接協議中的文件系統重定向默認值關閉狀態,所以,這種攻擊方式的成功與否取決于用戶是否開啟文件系統重定向功能。
ICSGhost使用了“永恒之藍”漏洞進行Windows上位機之間的蠕蟲傳播,“永恒之藍”的漏洞編號為MS17-010,它被“影子經紀人(The Shadow Brokers)”曝光到互聯網,并被使用在影響巨大的勒索蠕蟲“WannaCry”之中,影響從Windows XP到Windows 10、Windows Server 2016的所有 Windows系統。該漏洞存在于SMB(Server Message Block)通信協議當中。借助該漏洞,攻擊者可以使用惡意構造的數據包導致遠程任意代碼執行,從而控制遠程計算機。
如今,大部分PLC集成了加鎖功能,可以通過密碼對PLC本身的配置進行鎖定。鎖的類型分為讀鎖、寫鎖和讀寫鎖。讀鎖是指在對PLC的某些配置進行讀取時需要密碼驗證,寫鎖是指在對PLC的某些配置進行寫入時需要密碼驗證,讀寫鎖是指在對PLC的某些配置進行讀取和寫入時都需要密碼驗證。為了實現勒索的目的,ICSGhost采用對PLC加上寫鎖的方式,在保證PLC正常運行的同時,開發者無法對加了鎖的PLC進行配置寫入。
針對 ICSGhost的目標設備 MicroLogix 1400,發現該款PLC的控制指令沒有身份驗證機制。攻擊者只需要接入到PLC所在網絡,能夠與其通信,就可以將控制指令直接發送到MicroLogix 1400,對其加鎖,并且該加鎖操作可以繞過已經存在的密碼保護。
當PLC本身已經被加鎖保護時,直接攻擊PLC的方法可能就無法生效。ICSGhost還實現了先通過劫持組態軟件的方式獲取PLC密碼,再對PLC進行鎖定的攻擊方式。
當工程師使用組態軟件對PLC進行配置時,若PLC被加鎖保護,工程師需要在組態軟件當中輸入密碼才能繼續對PLC進行配置。ICSGhost首先使用遠程線程注入的方法將惡意動態鏈接庫注入組態軟件,注入之后將自動運行動態鏈接庫中的程序,修改組態軟件指令,從而對組態軟件的代碼進行劫持,獲取工程師輸入的密碼。在獲取PLC的密碼之后,可以使用發送控制指令的方式加鎖PLC,也可以直接通過劫持組態軟件的執行,通過組態軟件對PLC加鎖。
ICSGhost是一個針對工控系統的勒索蠕蟲,本節將描述ICSGhost針對工控系統的特點對傳統勒索方式所作的改進。
4.5.1 身份判斷及潛伏
由于傳播的目標是工控系統,ICSGhost在傳播中對目標身份進行判斷。在感染目標時,ICSGhost通過搜索注冊表中與工控軟件相關的鍵值,來判斷此目標是否與工控系統相關。若相關,則對其進行感染;若不相關,則刪除自身。
4.5.2 文件加密與密鑰預生成
當加密Windows主機時,ICSGhost隨機生成一個文件加密密鑰,隨機使用預置的某個RSA(Rivest-Shamir-Adleman)公鑰對其進行加密并保存加密后的文件。之后利用此文件加密密鑰使用高級加密標準(Advanced Encryption Standard,AES)算法對SCADA系統的配置及組態文件進行加密。當加密完成后刪除文件加密密鑰,保留RSA公鑰及被加密的文件加密密鑰。若受害者需要恢復被加密的文件,則需要提供RSA公鑰及被加密的文件加密密鑰,可以通過查詢公鑰對應的私鑰,利用此私鑰解密獲得文件加密密鑰,進而使用文件加密密鑰來解密文件。
由于ICSGhost需要在內網傳播,但內網中受感染的主機可能無法與外網通信。所以ICSGhost需要在初次感染工程師站時預生成多組的RSA公私鑰對,然后將該公私鑰對回傳并刪除私鑰。在之后的傳播中,對每一個目標,ICSGhost選取一對未使用的RSA公私鑰。若所有生成的公私鑰對都已經被使用,則對已使用的公私鑰重新進行隨機選擇使用。
基于上面的分析,本文搭建了一個模擬工控網絡的封閉實驗環境以驗證ICSGhost的威脅。模擬的封閉實驗環境的拓撲圖如圖2所示。在該實驗環境中,搭建了兩臺操作系統為Windows 7的上位機,分別為上位機A和上位機B,其中上位機之間沒有設置網絡隔離。上位機A負責監控和管理羅克韋爾型號為MicroLogix 1400的PLC。此外,還存在一個工控工程師,該工程師使用操作系統為Windows 7的工程師站,負責上位機A管理的PLC的開發和維護工作。

圖2 ICSGhost實驗傳播路徑Fig.2 Propagation path of ICSGhost experiment
圖2 的灰色點線部分展示了ICSGhost在實驗環境中的傳播路徑。首先,將捆綁ICSGhost的RSLogix 500(羅克韋爾PLC的組態開發軟件)的組態軟件上傳到一個FTP服務器(File Transfer Protocol Server,FTP),模擬上傳到互聯網的過程。工程師從FTP服務器下載該組態軟件進行安裝來進行MicroLogix 1400的組態開發工作。此時,ICSGhost潛伏在工程師的工程師站中。在完成組態開發之后,工程師通過OpenVPN服務進入工業控制系統網絡,然后通過 RDP連接接入上位機A對PLC進行作業。在此過程中,ICSGhost通過工程師的RDP連接將自身傳播到上位機A。然后,ICSGhost發起針對上位機A及其控制的PLC的攻擊,將上位機A的文件加密并通過上位機A與PLC的連接通道對PLC進行加鎖。與此同時,ICSGhost通過掃描發現處于同一內網的上位機B。ICSGhost利用漏洞發起針對上位機B的攻擊,將自身傳播到上位機B并完成對上位機B的文件加密的攻擊。
實驗結果表明,ICSGhost能夠將工程師站作為初次感染目標,并以工程師站為跳板,感染處于內網其他工控組件,實現蠕蟲式感染和勒索。此種威脅確實存在,并且可以被用來進行大規模針對工控系統的攻擊。
針對此威脅模型,從不同網絡層次以及不同組件提出縱深防御與加固方案。
從組件角度進行防御,對于工程師站,建議應用軟件應該從正規渠道獲取,并對軟件使用校驗碼等方法進行校驗。此外,工程師站應該做到專機專用,將生活場景與工作場景相隔離,減少受感染的可能性。對于Windows上位機,提出以下加固建議:首先,上位機應該及時更新安全補丁,并且以最小權限原則創建和使用賬戶;除此之外,可以安裝防病毒軟件以防止惡意軟件感染。對于PLC,可以對其設置保護密碼,防止非授權操作。
由于PLC高度的定制化,所以對PLC進行升級、加固較為困難。對于Windows上位機,由于工控軟件大多高度定制化,所以系統管理員為避免兼容性問題,不敢輕易對系統進行修改或升級,所以本文認為在網絡層面通過對流量的監控和網絡的控制更加具有實踐性;并且由于工控系統對可靠性要求高,防御措施需要盡可能不影響工控系統正常運行,以監測為主是更具有實踐性的防御策略。
1.1 節提到,工控網絡可以以層次結構分為現場儀表網絡、本地控制網絡、監測控制網絡、非軍事區網絡、企業工作網絡、互聯網。針對各個網絡層次的特點,提出以下在網絡層之中或網絡層之間的縱深防御方案。
對于大部分企業來說,將充滿威脅互聯網與內部辦公網絡進行邏輯隔離,是安全、有效的保護內網安全的最重要的措施。文獻[12-16]討論了互聯網與內部辦公網絡隔離需要注意的安全問題。
非軍事區網絡作為企業工作網絡到監測控制網絡的交界處,應該設置防火墻對企業工作網絡到監測控制網絡進行過濾。由于企業工作網絡到監測控制網絡連接的需求是確定的,例如進行數據傳輸、工程師的遠程操作、供應商的遠程維護等。設置白名單規則可以有效地阻止非工控系統的操作者連接到監測控制網絡。
在監測與控制網絡中,可能存在多臺運行不同任務的上位機。若它們之間相互獨立,不需要互相訪問,則應該將其劃分在不同的子網當中,進行更細粒度的網絡隔離,防止蠕蟲通過網絡在上位機之間傳播。
入侵檢測系統(Intrusion Detection Systems,IDS)是一種對網絡傳輸進行即時監視,在發現可疑傳輸時發出警報或者采取主動反應措施的網絡安全設備。對于監測控制網絡,使用入侵檢測系統可以發現在監測控制網絡內的異常操作。由于工控系統是個高度確定性的系統,當SCADA系統被開發完畢投入應用后,其操作行為基本上也被確定。因此,建立一個系統訪問正常行為的模型,并基于此模型通過諸如基于機器學習等的異常檢測方法來檢測異常行為,可以有效地實現對監測控制網絡中的異常行為的檢測[17]。
目前大量PLC大多數沒有訪問控制,并且PLC基于硬件高度定制化,對PLC進行升級、加固較為困難,所以對發送到PLC的指令實施過濾與分析是一種有效的防御方式。所有發送到PLC的指令需要通過PLC流量防火墻,在防火墻上對指令進行分析與過濾。此外,由于工業控制網絡是一個高度確定性的網絡,當一個PLC的組態開發完成后,它所進行的操作也是高度確定的,一些異常行為可以很容易地被檢測。例如,對PLC進行加鎖的指令不會出現在生產過程中,所以PLC流量防火墻發現此種類型的指令就可以判斷其為異常指令[18]。
攻擊者直接對PLC發送指令對PLC而言是一種巨大的安全威脅,所以保證與PLC通信的網絡信道安全也是非常必要的。虛擬專用網絡可以在公用網絡上建立專用網絡,進行加密通信。將PLC接入到VPN中與上位機進行通信,可以保證信道安全,防止中間人攻擊。在對請求分析與過濾的同時,還需要對所有的操作請求記錄日志,以便在安全事件發生后分析和溯源。
到目前為止,工業控制系統網絡還沒有受到大規模的勒索軟件攻擊。這不是因為它們比傳統網絡更安全,而是網絡犯罪分子還沒有找到一種可以大規模感染并且有利可圖的方式。最近對于酒店門禁卡系統的攻擊已經給我們敲響了警鐘。本文總結了工業控制系統存在的安全風險和攻擊方法并根據觀察到的工業控制系統實際開發場景和存在的安全風險,提出一種基于新的攻擊路徑的勒索蠕蟲威脅模型。基于此威脅模型,本文實現了ICSGhost勒索蠕蟲原型,實驗證實了此威脅。最后,我們從不同網絡層次以及不同組件提出縱深防御與加固方案以防御勒索蠕蟲威脅。由于工控組件的高度定制化,對組件進行升級加固的防御方法在工程實踐中難以普及,通過不同網絡層次的縱深防御更加容易部署應用且有效。由于工控網絡高度定制化,其內部的行為模式在系統開發完成投入使用之后基本確定,所以在網絡層面對系統行為進行建模,并基于此模型進行異常檢測可以作為進一步的研究方向。