黑客正在尋求上升到攻擊的頂級梯隊,實現他們可以吹噓多年的單一入侵。這些值得吹噓的黑客之一是獲得對可編程邏輯控制器(PLC)上執行的代碼的未檢測到的訪問權限。為什么?因為這些系統有大量需要繞過的內存保護。如果成功,集成代碼將處于操作系統或安全軟件無法檢測到的現有代碼中。以前的工作需要物理訪問和連接到PLC,或者針對工程工作站和PLC的其他鏈接的技術,以獲得該級別的代碼執行。
Team82 在西門子 PLC、SIMATIC S2020-15782 和 S7-1200 中發現了一個嚴重的內存安全繞道漏洞 CVE-7-1500。常見漏洞和暴露 (CVE) 禁用訪問保護,允許在 PLC 上的任何位置讀取和寫入代碼或遠程執行惡意代碼的能力。
使用 CVE-2020-15782 逃離沙盒
所披露的漏洞在PLC執行生態系統中的安全性以及代碼通常運行的沙箱中滑動。Team82 利用 CVE-2020-15782,躲避沙箱訪問內存,用于編寫和注入外殼代碼以攻擊西門子 1200/1500 PLC。
為了“越獄”本機 SIMATIC S7-1200 和 S7-1500 沙箱,Team82 利用其內存保護繞過漏洞,允許黑帽將隨機數據輸入“受保護”內存或讀取關鍵信息以進一步利用環境。
西門子S7 PLC由ADONIS內核和ARM或MIPS內核供電。該控制器與許多編程語言兼容,包括結構化控制語言 (SCL)、梯形圖(LD)、語句列表 (STL) 和功能塊圖 (FBD)。
Claroty不得不對字節碼語言進行逆向工程(西門子尚未公開披露有關如何解碼MC7 / MC7+字節碼的信息),以了解有關內部環境的更多信息并找到可以利用的領域。
Team82的虛擬機通過操作系統提供的編譯字節碼而不是直接的硬件操作來阻礙用戶程序中的數據流。這會將用戶和代碼限制為安全的特定協議*,將代碼鎖定到沙箱中,減少對存儲和資源的訪問,并削弱功能,從而損壞 PLC。
Team82總結道:“逃離沙箱意味著攻擊者能夠從PLC上的任何地方讀寫,并可以使用惡意代碼修補內存中的現有VM操作碼以根設備。例如,Claroty能夠將ARM或MIPS外殼代碼直接注入內部操作系統結構,這樣當操作系統使用我們選擇的特定操作碼時,我們的惡意shellcode將執行,從而為我們提供遠程代碼執行。我們使用這種技術來安裝一個內核級程序,該程序具有一些對操作系統完全隱藏的功能。
漏洞
CVE-2020-15782
CWE-119 在內存緩沖區范圍內操作的不當限制
CVSS v3.1 成績: 8.1
*例如,操作系統將限制對受保護內存的任何直接訪問,但允許使用西門子提供的標準庫中的任何函數(例如ADD_I - 添加整數子例程)。
審核編輯:郭婷
-
控制器
+關注
關注
112文章
15879瀏覽量
175343 -
plc
+關注
關注
5001文章
12942瀏覽量
459188 -
西門子
+關注
關注
93文章
2958瀏覽量
114818
發布評論請先 登錄
相關推薦
評論