今天我們來聊一聊PLC武器化探秘:邪惡PLC攻擊技術的六個關鍵步驟詳解。
以色列工業網絡安全公司Claroty旗下的Team82研究團隊開發了一種稱為Evil PLC攻擊的新技術,其中PLC被武器化并用于突破并控制工程師站。在工程師站上立足的攻擊者可以訪問連接該機器的OT網絡上的任何其他設備,包括其它PLC。攻擊的目標是從事工業網絡運維、PLC配置和故障排除的工程師,他們的工作是確保公用事業、電力、水和廢水、重工業、制造和汽車等關鍵行業的流程的安全性和可靠性。Team82團隊的研究成果在7家自動化公司(羅克韋爾自動化、施耐德電氣、通用電氣、貝加萊、信捷、OVARRO和艾默生)的相應設備上進行了有效的概念驗證利用。
PLC在工業領域的重要作用不言而喻,典型的工業網絡可能有幾十臺PLC執行不同的操作,因之它也成為極其具有吸引力的攻擊目標。但通常我們所能理解的大多數涉及PLC的攻擊場景都是圍繞PLC本身的訪問、控制和利用。
Team82研究團隊另辟蹊徑,他們試圖尋找一種不同的方法,將PLC作為工具而不是目標。基于此,研究人員希望利用PLC來訪問它的維護者,工程師站。攻擊者引誘工程師連接到受感染的PLC的最快方法是使PLC發生故障或異常。這將迫使工程師使用工程師站軟件連接作為故障排除工具。一旦控制工程師站,它將是獲取相關信息的最佳來源,并將通過它訪問網絡上的所有其他PLC。通過這些訪問和信息,攻擊者可以很容易地改變任何PLC上的邏輯。
通過Team82的研究,他們試圖對多個領先的ICS平臺執行這種新的攻擊向量。研究人員在七家自動化廠商的平臺上發現了各種漏洞,這些漏洞使他們能夠將PLC武器化,當執行上傳程序時,研究人員專門制作的輔助數據片段會導致工師站執行預制的惡意代碼。
一 基礎知識
對于每個目標供應商平臺,需要研究的完整生態系統包括:
-工程師站軟件-工程師站項目文件-專有協議(PLC和工程師站)-PLC固件-邏輯代碼(字節碼,文本代碼)
1、項目文件通常情況下,項目文件是簡單的基于存檔的文件,具有相對容易理解的結構;大多數情況下,研究工作都是從那里開始的。例如,GE MarkVIe項目文件包含具有易于理解的命名約定的文本XML文件。它幫助研究人員了解工程師站生成并傳輸給PLC的全部數據類型范圍。如下圖是一個GE ToolBoxST的項目文件。
當然,也一些項目文件是以研究人員需要分析和逆向工程的專有格式存儲的。例如,艾默生工程師站PAC機器版使用的是一種專有的.swxcf項目文件格式,它是基于二進制的MFC序列化數據。這個項目文件存儲了一個完整的操作項目所需的數百個序列化的c++對象。為了完成研究工作,研究人員為所有文件格式編寫了解析器,并提取了項目的源代碼邏輯、元數據和配置數據。下圖就是一個艾默生工程師站PAC機器版使用的是一種專有的.swxcf項目文件示例。
2、通信協議
另一個需要考察的重要方面,每個供應商開發和實現的專有協議。通過該協議,工程師站軟件可以與兼容的PLC進行通信,執行獲取其狀態、進行監控和數據采集(SCADA)操作、進行固件升級等操作,對研究人員來說最重要的是執行上傳/下載程序,修改或獲取當前運行的邏輯。有些協議很容易分析,而有些則很復雜。最終,研究人員為這個研究項目范圍內的所有專有協議開發了解析器和客戶端。
例如,信捷XD工程師站PLC Program Tool就是使用基于UDP modbus協議與PLC進行通信的。大部分功能是通過Modbus讀取/寫入文件記錄和/或多寄存器Modbus功能代碼實現的。下圖是上傳過程中對信捷協議網絡流量的Wireshark截圖。
3、文本代碼和字節碼
除了項目文件和專有協議之外,還研究了文本代碼(源代碼)和字節碼(編譯代碼)。這是研究工作的一個重要方面,因為它允許研究人員執行全面的下載/上傳程序,并幫助研究人員實現自動化和獲得對PLC邏輯的控制。
雖然在研究中這不是必要的,但在某些情況下,為專有的PLC字節碼開發了部分/完全工作的編譯器和反編譯器。
4、惡意代碼或攻擊載荷
最后,為了實現有效載荷和演示目的,研究人員準備了一個假的WannaCry勒索軟件,它只是向用戶顯示一個看起來很嚇人的彈出的勒索通知。在實際的攻擊場景下,這個惡意代碼很可能是敏感信息竊取、隱蔽后門、內網滲透等等不同用途的木馬,加密文件的勒索軟件,甚至是破壞性的文件擦除器。
通過Team82全面的研究,能夠找到7個以前未報告的漏洞,這些漏洞使Team82能夠將受影響的PLC武器化,并在每次上傳過程發生時攻擊工程師站。所有的發現都按照Team82的協調披露政策報告給受影響的供應商。
二 攻擊場景想定
當觀察Team82的邪惡PLC攻擊向量時,研究人員得出的結論是,它可以用于進攻和防御兩種方式。考慮到這一點,Team82設計了三種不同的攻擊場景,可以使用這種新的攻擊向量。
1、將PLC武器化以實現初始訪問
攻擊者可以使用武器化的PLC來在內部網絡上獲得初步立足點,甚至是橫向移動。目前,利用Shodan和Censys在內的大多數公共互聯網掃描服務,可以確定有數十萬臺ICS設備暴露在互聯網上。這些面向互聯網的設備通常缺乏安全性,允許任何人訪問它們,修改參數,甚至通過下載程序改變它們的行為和邏輯。Team82的研究表明,攻擊者可以利用面向互聯網的PLC作為支點,滲透整個OT網絡。攻擊者不是簡單地連接到暴露的PLC并修改邏輯,而是可以武器化這些PLC并故意造成錯誤,從而引誘工程師使用它們。作為一種診斷方法,工程師將執行一個上載程序,這將危及他們工作站。攻擊者進一步控制工作站,在OT網絡上站穩了腳跟。
2、攻擊系統集成商
攻擊者可以針對系統集成商和承包商,作為進入世界各地許多不同組織和站點的手段。攻陷設備集成商:因為OT網絡管理中,第三方工程師和承包商管理OT網絡,它需要與許多不同的OT網絡設備和PLC交互。這給這個新的攻擊向量提供了另外另一個應用場景。即攻擊者可以攻陷并利用這些系統集成商作為支點,以大幅擴大他們的控制和影響范圍。
實際步驟將會是:攻擊者在一個遠程的、不太安全的設施中定位了PLC,已知該設施由系統集成商或承包商管理。然后攻擊者將PLC武器化,故意使PLC出現故障。這樣,統集成商或承包商的工程師就會被引誘到可編程控制器前進行診斷。通過診斷過程,集成商將做一個上傳程序,從而使他們的機器被控制。在進入集成商的機器后,通過設計可以訪問許多其他PLC,攻擊者可以反過來攻擊甚至武器化其他組織內的更多可訪問的PLC,進一步擴大他們的控制范圍。
3、將PLC武器化為蜜罐
防御者可以使用蜜罐PLC來吸引和攻擊可能的攻擊者,從而威懾和挫敗潛在的攻擊者。從防御的角度來看,這種新的攻擊向量可以用來為可能的攻擊者設置陷阱,即蜜罐。通過利用攻擊者也使用與工程師相同的商業工具這一事實,防御者可以故意設置公開可訪問的可武器化的PLC,并允許攻擊者與它們交互。這些PLC將充當一個蜜罐,吸引攻擊者與它們交互。但是,如果攻擊者落入陷阱,并從誘餌PLC嘗試執行上載過程,我們的武器化代碼將在攻擊者的機器上執行。這種方法可以用于早期階段的攻擊檢測,也可能阻止攻擊者以面向互聯網的PLC為目標,因為他們需要保護自己不會成為有計劃攻擊的目標。
三 攻擊步驟
對于每個目標/平臺,研究人員試圖通過對固件和工程師站軟件進行逆向工程來剖析整個下載/上傳機制。研究人員的目標是找出PLC和工程師站之間的差異。如果發現了這種不一致,就可以通過惡意下載程序將PLC武器化,存儲一段專門制作的數據,這段數據不會影響PLC本身,但當工程平臺解析它時,它會觸發并利用一個漏洞。
1、研究驗證的步驟
Team82的研究過程和方法有如下十個關鍵的步驟。
1)環境設置:使用目標PLC、兼容的工程師站和I/O現場設備建立測試平臺環境。
2)建立“Hello World”:閱讀PLC手冊,觀看教學視頻,建立一個無惡意/良性的程序來控制簡單的過程。
3)分析項目文件:分析項目文件中存儲的內容(元數據、配置、文本代碼)以及數據是如何序列化的。事實上,PLC存儲了工程軟件使用的其他類型的數據,而不是PLC本身使用的數據,這讓修改存儲在PLC上的未使用數據以操縱工程軟件成為可能。
4)逆向工程:除了工程師站軟件之外,探索PLC硬件和固件。這是圍繞PLC的軟件、硬件和固件開展漏洞挖掘的前奏。
5)上傳/下載過程:了解上傳/下載過程的機制,以及通過專有協議傳輸哪些數據。往PLC上傳輸數據和將數據存儲于PLC上,稱為下載過程。獲取當前PLC邏輯的工作副本,工程師將從PLC中讀取存儲的數據,這稱為上傳過程。
6)協議分析:分析私有協議及其功能,并構建一個功能齊全的客戶端。
7)找出差異:了解在PLC中傳輸和存儲的信息之間的差異,這些信息沒有被解析或使用。
8)尋找漏洞:研究工程師站傳輸到PLC的所有信息片段的所有解析代碼流,這些信息在PLC上沒有被使用/修改。主要是針對運行在工程師站上的PLC連接軟件進行漏洞挖掘。在Team82的研究中,他們發現了羅克韋爾CCW中的多個漏洞,其中一個是不安全的.net反序列化漏洞。
9)武器化:使用客戶端實現一個惡意下載過程,將專門制作的數據存儲在PLC上。這里的專門制作的數據,應該是相應的漏洞利用程序、勒索軟件、木馬等的組合進行的編碼。
10)漏洞利用:工程師連接PLC,執行上傳程序。工程師站解析研究人員專門制作的數據。解析流觸發漏洞并執行預先編制的代碼。
2、關鍵步驟
仔細分析Team82團隊的研究驗證步驟,不難發現,其中前半部分的主要是類似偵察準備的階段,真正可稱為攻擊動作的應當在后半部分。也就是說,拋開研究的成分,從攻擊的角度看,關鍵的攻擊步驟可梳理如下:
1)找到可以公開訪問PLC,并且能夠現連接軟件建立連接,即對PLC可管理。
2)PLC連接軟件的漏洞挖掘。也就是對工程師站軟件的逆向分析,找出其存在的各種可利用漏洞。
3)惡意代碼的編碼。使其以PLC工程文件形式儲存于PLC。
4)PLC的武器化,即利用下載過程將預制的工程文件下載至PLC。
5)制造PLC異常或故障,引誘工程師來連接排障。
6)漏洞利用。工程師上傳預制工程文件到工程師站,解析時觸發漏洞。
從網絡攻擊的角度看,參照工業控制系統的ATT@CK威脅框架,在初始突破(Initial Access)、命令執行(Execution)、持久潛伏(Persistence)、權限提升(Privilege Escalation)、防御規避(Evasion)、內部偵察(Discovery)、橫向移動(Lateral Movement)、信息收集(collection)、命令和控制(C&C)、抑制響應功能(Inhibit Response Function)、損害過程控制(Impair Process Control)、后果影響(Impact)這十二個步驟中,Team82的研究成果實際上已完成了關鍵的初始突破、命令執行、持久潛伏等任務,在OT網絡構筑了關鍵的支點,后續的系列偵察活動和影響行動,幾乎就沒有了難度。
四 小結
Team82認為邪惡PLC攻擊是一種新的攻擊技術。這項技術使PLC武器化,使數據不再是普通靜態/離線項目文件的一部分,并使代碼能夠在工程連接/上傳過程中執行。通過這種攻擊方式,攻擊目標并不是PLC,即有別于臭名昭著的Stuxnet惡意軟件,它偷偷改變PLC的邏輯,造成物理破壞。相反,Team82希望利用PLC作為一個支點/跳板,攻擊編程和診斷它的工程師站,以此獲得對更多PLC的控制,并獲得對OT網絡的更深入訪問。
值得注意的是,Team82發現的所有漏洞都是在工程師站軟件端,而不是在PLC固件中。在大多數情況下,漏洞的存在是因為軟件完全信任來自PLC的數據,而沒有進行廣泛的安全檢查。
從防御者的視角看,邪惡PLC攻擊技術中,PLC的武器化是第一步。毫無疑問,這些設備不應該從外部訪問或暴露在網絡上,即使內部訪問也應限于授權的工程師和操作員。如何阻斷這一源頭非常關鍵,因此應嚴格限制對PLC的物理和網絡訪問。其次才是OT網絡的隔離分段、基本網絡衛生的落實、用戶客戶端的鑒別認證、PKI體系的引入、網絡流量監測、軟件和固件的持續更新等等防護措施。
審核編輯:湯梓紅
-
控制器
+關注
關注
112文章
16445瀏覽量
179451 -
plc
+關注
關注
5016文章
13387瀏覽量
465394 -
工業網絡
+關注
關注
0文章
90瀏覽量
16427
發布評論請先 登錄
相關推薦
評論