當前位置:
首頁 > 最新 > 工控系統安全—PLC攻擊路徑研究

工控系統安全—PLC攻擊路徑研究

摘 要

PLC(Programmable Logic Controller,可編程邏輯器件)是關鍵基礎設施中的基礎控制設備,其安全性涉及到整個控制系統的穩定運行。但是,隨著兩化融合的不斷加深以及工業4.0的推進,工業控制系統在提高信息化水平的同時,其信息安全問題也日益突出。PLC遭受黑客攻擊的途徑也日益翻新,各種木馬和病毒變體數量不斷攀升,威脅工業控制系統的安全穩定運行和人員生命財產安全。本文通過介紹常見的幾種PCL遭受攻擊的途徑,為工業控制系統安全敲響警鐘。

隨著技術的不斷進步,PLC在向著智能化的方向發展,介面數量和類型越來越多,功能也日益豐富。目前的PLC一般都是基於裁剪後的嵌入式系統,同時將原來位於串列鏈路上的通信協議轉移到TCP/IP之上,為黑客實施攻擊提供了便捷的途徑。

1、通過嵌入式系統漏洞實施攻擊

PLC採用的大多是經過裁剪的實時操作系統(RTOS),比如Linux RT、QNX、Lynx、VxWorks等。這些操作系統廣泛的應用於通信、軍事、航空、航天等高精尖技術及實時性要求較高的領域中。但是其安全問題不容忽視。常見的PLC使用的操作系統如表1所示。

表1 常用PLC的操作系統

Beresford等[1]指出,Simatic PLC運行在x86 Linux系統之上,那就意味著如果插入一段載荷,就可以對shell進行爆破並連接到該設備。尤其需要注意的是PLC上運行的所有程序都是以root許可權運行的,一旦被攻擊者攻入,後果非常嚴重。如圖1所示:

圖1 對shell系統的爆破

西門子、施耐德的多款PLC設備軟體搭載在VxWorks系統上運行,wdbrpc是VxWorks的遠程調試埠,以UDP方式進行通信,埠號為17185。該協議基於sun-rpc,提供的服務主要用於支持系統遠程通過集成開發環境Tornado交互(如圖2)。根據燈塔實驗室公布的資料[2],黑客可以通過wdbrpc協議dump全部內存空間數據,找到內存中的所有ftp、telnet登錄密碼,進一步可以實現的攻擊有:篡改bootline繞過登錄驗證、Dump內存數據從中抓取登錄密碼等。通過攻擊嵌入式實時操作系統進而控制PLC的正常運行。

圖2 Tornado開發環境與VxWorks系統圖

2、通過PLC通信協議漏洞實施攻擊

一般常見工控協議中包含了大量的命令字,如讀取、寫入數據等,然而其中一部分高級或協議約定的自定義功能往往會給用戶安全帶來更多的威脅,如Modbus協議的從機診斷命令將會造成從機設備切換到偵聽模式、CIP協議某些命令字還能導致設備直接重啟、S7協議的STOP CPU功能將會導致PLC程序運行停止,在大多數的情況下用戶在上位機進行組態時僅會使用協議的某些讀取數據功能和固定範圍、固定地址的寫數據功能,而協議棧上更多的功能則不會應用於系統集成中。

Langner等[3]指出不需要控制系統內部知識,不需要編程技巧就可以實現一次攻擊。利用S7協議漏洞,注入代碼到組態OB1(相當於main函數)之前,這樣PLC在每次掃描之前都會首先執行惡意代碼,並可以通過調用BEC(block end condition)指令,隨時終止合法代碼的運行。就Stuxnet而言,終止條件是基於時間和工業過程。

Meixell等[4]指出,簡單的串口協議(比如Modbus 和DNP3)已經被包含在IP數據報內,攻擊者僅僅構造一個基於IP的控制數據包並發送給PLC就可以造成嚴重的後果。以Modbus協議為例,其常用主要功能碼如下表2所示:利用功能碼0x05就可以將所有的寄存器置1,打開所有的閥門。

表2 Modbus數據包結構及主要功能碼

Tzokatziou等[5]指出,由於PLC通信協議是明文傳輸,而且對於通信對象沒有認證過程。因此攻擊者可以利用CoDeSys 系統,直接和PLC進行連接,捕獲兩者之間的通信的數據包,然後直接給PLC發送篡改後的控制指令,達到任意啟停PLC的操作。

3、通過PLC軟體漏洞實施攻擊

PLC的軟體系統包括系統監控軟體和用戶組態軟體,前者用於監視控制器本身的運行,後者用於編寫用戶程序。以西門子(Siemens)PLC為例,STEP 7 編程軟體用於PLC的編程、參數設置和在線調試,而WinCC則主要用於過程監視。

典型的攻擊案例是2010年的「震網」病毒攻擊伊朗核電站事件[6]。「震網」病毒除了利用windows操作系統的4個0-day漏洞,還利用了西門子WinCC中的兩個漏洞(1)WinCC系統中存在一個硬編碼漏洞,保存了對訪問數據的默認賬戶名和密碼,Stuxnet利用這一漏洞嘗試訪問該系統的SQL資料庫;(2)在WinCC需要使用的Step7工程中,打開工程文件時,存在DLL載入策略上的缺陷,從而導致一種類似於「DLL預載入攻擊」的利用方式。然後Stuxnet通過使用自身的s7otbxsx.dll替換Step7軟體中的s7otbxsx.dll,實現對一些查詢、讀取函數的額Hook。

其他的攻擊途徑包括攻擊人機交互界面(HMI),使得操作員失去視圖。典型的攻擊案例是2015年的烏克蘭電網攻擊事件[7]。攻擊者取得工作站節點的控制權,獲取與操作員一致的操作界面和操作許可權,通過遠程控制對PLC進行開關控制或改變運行參數,從而引起電網故障或者斷點。燈塔實驗室指出[8],Unity Pro是施耐德系列PLC的編程軟體,Unity Pro 附帶的OSLoader軟體可以完成PLC的操作系統固件升級。OSLoader登錄設備後會嘗試遠程讀取文件系統,這樣即可實現遠程上傳下載,攻擊者可以通過替換固件的方式輕鬆讓PLC宕機。

4、通過PLC互連實施攻擊

當前的工業控制網路朝著「一網到底」的方向發展,工業控制系統橫向和縱向連接更加緊密:業務層可以直接訪問控制層的數據,甚至對設備進行控制;同一層次內的設備由於相互間的協作工作而聯結在一起。對於PLC而言,由於PLC主要用於過程式控制制,而生產流程往往由諸多控制過程組成,因此需要多個PLC協同工作,共同完成某項生產任務。

圖3 利用人機交互界面攻擊PLC過程

Radvanovsky等[9]指出,美國啟動的SHINE(SHodan Intelligence Extraction)項目是為了提取關於可以從互聯網訪問的SCADA和ICS設備的信息(尤其是PLC和RTU)。SHODAN搜索引擎是通過搜索常用的TCP/UDP埠來工作的,如表3:

表3 常用協議及埠對照表

Newman[10]指出,監獄中控制室值班通過在線瀏覽圖片和電影引入病毒和蠕蟲。一些監獄為犯人提供上網服務,雖然不和監獄控制和監視系統直接連接,但是也是一個可攻入的脆弱點。還要監獄的巡邏車,使用的是無線信號,需要連接監獄網路上傳數據,也是一個攻擊入口。

Klick[11]在2015 USABlackHat上指出,PLC缺乏安全機制,通常可以上傳代碼到這些面向互聯網的PLC,利用這些PLC作為網關,滲透生產網路,甚至是公司IT網路。Kclik利用PLC編程語言STL編寫埠掃描器和SOCKS代理,然後利用感染的PLC去掃描本地網路,並將其作為網關,從而連接與其相連的其他PLC甚至滲透到公司業務網路,如圖4所示:

圖4 公司內系統層級圖

McLaughlin[12]設計了一款針對PLC的惡意軟體,能夠生成動態數據包載荷,攻擊者使用這個工具,可以不用提前對控制系統有先驗知識就可以實施攻擊,極大的降低了攻擊PLC的門檻。首先利用生成的載荷感染一個到多個主機,然後進行工業過程分析,接著對二進位文件進行解碼,最後對生成的載荷進行裁剪,上傳到PLC並運行,具體過程如圖5所示:

圖5 動態生成惡意載荷過程

McLaughlin在另一篇文章[13]中開發了一種自動生成PLC載荷的工具—Sabot,自動識別PLC邏輯控制,並生成惡意的PLC代碼,具體過程如圖6所示:

圖6 Sabot攻擊過程示意圖

Spenneberg[14]等在2016 Asia BlackHat上西門子SIMATICA S7-1200為例,展示了一款專門在PLC上存活的蠕蟲。此蠕蟲不需要依賴於PC電腦去擴散,僅僅活躍並運行於PLC中,通過網路掃描來發現新的目標(PLC),然後攻擊這些目標並將複製自身到新的PLC中,而且受感染的PLC主程序不會發生任何改變。從而可以做到目標發現,攜帶惡意載荷等攻擊手段。而且,清除這些蠕蟲非常困難,目前只能通過恢復出廠設置或者複寫蠕蟲所在的功能塊(Function Block)。感染過程如圖7所示:

圖7 蠕蟲感染PLC過程

代碼的執行過程如圖8所示:

圖8 蠕蟲惡意代碼執行過程

綜上所述,PLC的安全態勢不容樂觀,針對PLC的攻擊路徑比較多,而且攻擊層次在逐漸深入,要做好PLC的安全防護任重道遠。

參考文獻:

[1]Beresford D. Exploiting siemens simatic s7 plcs[J]. Black Hat USA, 2011, 16(2): 723-733.

[2]Kimon. 揭秘VxWorks——直擊物聯網安全罩門[EB/OL]. http://chuansong.me/n/1864339, 2015-11-01

[3]Langner R. A time bomb with fourteen bytes[J]. Available: hUp: llwww. langner. comlen, 2011.

[4]Meixell B, Forner E. Out of control: Demonstrating scada exploitation[J]. Black Hat USA, 2013.

[5]Tzokatziou G, Maglaras L, Janicke H. Insecure by design: using human interface devices to exploit SCADA sys-tems[C]//Proceedings of the 3rd International Sympo-sium for ICS & SCADA Cyber Security Research. British Computer Society, 2015: 103-106.

[6]Chen T M, Abu-Nimeh S. Lessons from Stuxnet[J]. Computer, 2011, 44(4):91-93.

[7]Case D U. Analysis of the cyber attack on the Ukrainian power grid[J]. Electricity Information Sharing and Analysis Center (E-ISAC), 2016.

[8]Z-One. 施耐德PLC乙太網模塊後門賬戶解密[EB/OL]. http://plcscan.org/blog/2014/06/schneider-electric-quantum-ethernet-module-hard-coded-credentials/, 2014-06-12

[9]Radvanovsky B. Project shine: 1,000,000 internetcon-nected scada and ics systems and counting[J]. Tofino Security, 2013, 19.

[10]Newman T, Rad T, ELCnetworks L L C, et al. SCADA & PLC vulnerabilities in correctional facilities[J]. Core Security, 2011.

[11]Klick J, Lau S, Marzin D, et al. Internet-facing PLCs-a new back orifice[J]. Blackhat USA, 2015.

[12]McLaughlin S E. On Dynamic Malware Payloads Aimed at Programmable Logic Controllers[C]//HotSec. 2011.

[13]McLaughlin S, McDaniel P. SABOT: specification-based payload generation for programmable logic control-lers[C]//Proceedings of the 2012 ACM conference on Computer and communications security. ACM, 2012: 439-449.

[14]Spenneberg R, Brüggemann M, Schwartke H. Plc-blaster: A worm living solely in the plc[J]. Black Hat Asia, Marina Bay Sands, Singapore, 2016.

作者:徐 震 周曉軍

責編:高 琪

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |