安全動態(tài)

FireEye報告:揭露新型工控系統(tǒng)惡意軟件TRITON

來源:聚銘網(wǎng)絡(luò)    發(fā)布時間:2017-12-24    瀏覽次數(shù):
 

信息來源:FreeBuf

Mandiant最近針對中東某企業(yè)關(guān)鍵基礎(chǔ)設(shè)施遭受的攻擊事件進行了安全響應(yīng),攻擊者通過部署特制的惡意軟件來控制目標(biāo)工業(yè)安全系統(tǒng),由于工業(yè)安全系統(tǒng)具備對工控系統(tǒng)的緊急關(guān)閉功能,因此我們有足夠信心斷定,該惡意軟件是攻擊者針對工控系統(tǒng)的硬件破壞或突然關(guān)停而開發(fā)的。目前,我們把這種惡意軟件命名為TRITON,攻擊者利用TRITON攻擊框架能與施耐德電氣公司的Triconex安全儀表系統(tǒng)控制器(SIS)形成通信交互,盡管我們暫時還未追溯定位到實際的攻擊者,但我們肯定該攻擊事件的幕后黑手為國家支持型黑客。

TRITON特點

TRITON是繼2010年針對伊朗的Stuxnet和2016年針對烏克蘭的Industroyer后,為數(shù)不多可以被公開檢測識別到的工控系統(tǒng)惡意軟件系列之一,TRITON與這些攻擊類似,它可以破壞工控系統(tǒng)安全機制并執(zhí)行預(yù)期惡意功能,從而造成嚴重的物理破壞攻擊后果。

2017-12-19_160520.png

攻擊事件概述

攻擊者通過獲得安全儀表系統(tǒng)(SIS)工作站的遠程訪問控制權(quán)限,對SIS控制器進行了重編譯,進而在SIS系統(tǒng)中部署了TRITON攻擊框架。

此次攻擊事件中,一些SIS控制器都形成了失效保護狀態(tài)(failed safe state),造成工控進程的自動關(guān)閉,因此引起了管理者的察覺并展開了調(diào)查。調(diào)查后發(fā)現(xiàn),當(dāng)應(yīng)用代碼在冗余處理單元之間驗證失效時(可引發(fā)量產(chǎn)診斷錯誤消息),就會導(dǎo)致SIS控制器進入安全關(guān)閉狀態(tài)。

我們確信攻擊者希望隱蔽執(zhí)行自動關(guān)閉操作造成對工控系統(tǒng)的物理破壞,主要基于以下幾方面原因:

修改安全儀表系統(tǒng)(SIS)可以導(dǎo)致功能異常,增加物理破壞機率

TRITON會修改SIS控制器中的應(yīng)用程序內(nèi)存導(dǎo)致驗證失效

驗證失效狀態(tài)在TRITON處于運行狀態(tài)時發(fā)生

工控網(wǎng)絡(luò)中存在的孤立或外部條件不可能造成這種錯誤

攻擊溯源

針對此次攻擊事件,F(xiàn)ireEye目前還暫未準(zhǔn)確溯源定位到實際的攻擊者,但可以肯定的是這是國家支持型的黑客攻擊。攻擊以關(guān)鍵基礎(chǔ)設(shè)施為目標(biāo),具備持續(xù)性,且缺乏明確的經(jīng)濟利益目的,結(jié)合創(chuàng)建TRITON攻擊框架所需的充足技術(shù)資源來看,這明顯是國家黑客形為??梢詮囊韵聨追矫鎭碜鞒雠袛啵?

攻擊者以SIS系統(tǒng)為目標(biāo),體現(xiàn)出其希望造成嚴重物理破壞的目的,這與網(wǎng)絡(luò)犯罪集團行為不符。

攻擊者在獲得SIS系統(tǒng)后不久就部署了TRITON,表示他們已經(jīng)預(yù)先構(gòu)建并測試了需要訪問硬件和軟件的工具。 TRITON也被設(shè)計為使用專有的TriStation協(xié)議進行通信,該協(xié)議沒有被公開記錄,暗示對手獨立地反向設(shè)計了該協(xié)議。

攻擊者在取得SIS系統(tǒng)控制權(quán)后不久就部署了TRITON,明顯表示他們已經(jīng)預(yù)先創(chuàng)建并測試過該惡意工具的軟硬件運行環(huán)境;另外,TRITON框架還被設(shè)置為使用專門未公開的TriStation協(xié)議來進行通信,可以說明,攻擊對手已經(jīng)可以完全獨立地逆向該通信協(xié)議。

這種以關(guān)鍵基礎(chǔ)設(shè)施為目標(biāo)的破壞、中斷或癱瘓攻擊特征,與俄羅斯、伊朗、朝鮮、美國和以色列在全球進行的大量網(wǎng)絡(luò)攻擊和偵察活動相符,這種攻擊不會馬上造成立竿見影的破壞效果,它會形成駐留為后續(xù)的深入攻擊進行潛伏。

過程控制和安全儀表系統(tǒng)(Safety Instrumented Systems)背景

現(xiàn)代工業(yè)過程控制和自動化系統(tǒng)依靠各種先進的控制系統(tǒng)和安全功能,這些系統(tǒng)和功能通常被稱為工業(yè)控制系統(tǒng)(ICS)或操作技術(shù)(OT)。

分布式控制系統(tǒng)(DCS)為操作人員提供遠程監(jiān)視和控制工業(yè)過程的能力。它是由計算機、軟件應(yīng)用程序和控制器組成的計算機控制系統(tǒng)。工程工作站是用來對控制系統(tǒng)應(yīng)用和其他控制系統(tǒng)設(shè)備進行配置、維護和診斷的獨立計算機。

安全儀表系統(tǒng)(Safety Instrumented Systems,SIS)是一個獨立的控制系統(tǒng),可獨立監(jiān)控受控過程狀態(tài)。如果過程超過定義危險狀態(tài)的參數(shù),則SIS會嘗試將過程恢復(fù)到安全狀態(tài)或自動執(zhí)行過程的安全關(guān)閉。如果SIS和DCS控制都失效,那么只有看工業(yè)設(shè)施的安全設(shè)計了,如對設(shè)備(e.g防爆片)的機械保護、物理警報、應(yīng)急程序和其他危險狀況的緩解機制。

資產(chǎn)設(shè)備管理者會采用不同方法將工廠的DCS與SIS系統(tǒng)連接起來,傳統(tǒng)方法是依賴通信基礎(chǔ)設(shè)施和控制策略的隔離原則。至少在過去十年間,基于低成本、易用性和信息交流目的,出現(xiàn)了集成DCS和SIS設(shè)計的趨勢。此次TRITON攻擊反映出了DCS與SIS集成設(shè)計雙向通信的安全風(fēng)險。

安全儀表系統(tǒng)(SIS)威脅建模和攻擊場景

針對工控系統(tǒng)(ICS)破壞性攻擊的生命周期與其他類型網(wǎng)絡(luò)攻擊類似,但有幾個關(guān)鍵的區(qū)別。 首先,攻擊者的任務(wù)是破壞業(yè)務(wù)流程而不是竊取數(shù)據(jù);其次,攻擊者必須進行OT偵察,并有足夠的專業(yè)工程知識來了解目標(biāo)系統(tǒng)工業(yè)過程,以實現(xiàn)對其成功的控制利用。

上圖表示過程控制環(huán)境中的網(wǎng)絡(luò)安全和安全控制之間的關(guān)系,即使網(wǎng)絡(luò)安全措施失效,安全控制措施也會防止物理破壞,為了最大化實現(xiàn)物理破壞,網(wǎng)絡(luò)攻擊者還需繞過一些安全控制手段。

以下安全儀表系統(tǒng)(SIS)威脅模型揭露了多種攻擊者可用的攻擊路徑:

攻擊路徑 1: 使用SIS系統(tǒng)進行過程關(guān)閉。攻擊者重編譯SIS邏輯控制器導(dǎo)致其跳閘或關(guān)閉一個處于安全狀態(tài)的控制過程,換句話說,也能觸發(fā)誤報。

目的:導(dǎo)致停機后造成經(jīng)濟損失,或引起停工后復(fù)雜的啟動程序。

攻擊路徑 2: 重編譯SIS以支持不安全狀態(tài)。攻擊者重編譯SIS邏輯控制器,讓其支持不安全狀態(tài)的存在。

目的:由于SIS功能喪失,增加的危險狀況會導(dǎo)致嚴重物理后果風(fēng)險,如對設(shè)備、產(chǎn)品、環(huán)境和人員安全的影響。

攻擊路徑 3:重編譯SIS控制器,當(dāng)使用DCS時,讓其支持不安全的危險狀態(tài)。攻擊者可以控制DCS進程形成危險狀態(tài),并阻止SIS系統(tǒng)正常運行。

目的:對人身安全、工廠環(huán)境或設(shè)備造成破壞,其影響程度取決于過程和設(shè)備設(shè)計的物理限制條件。

攻擊意圖分析

我們認為攻擊者的長期目的是造成物理破壞,基于這樣的事實,攻擊者具備了操縱過程或關(guān)閉設(shè)備的能力后,首先會在DCS系統(tǒng)上形成駐留,以伺機入侵SIS系統(tǒng)。對DCS和SIS系統(tǒng)的入侵會導(dǎo)致物理和機械保障措施的最大程度破壞。

一旦滲透進入SIS網(wǎng)絡(luò)后,攻擊者會立即部署預(yù)先構(gòu)建的TRITON攻擊框架,利用TriStation協(xié)議與SIS控制器發(fā)起通信,攻擊者可以發(fā)送停止命令形成進程關(guān)閉,或向SIS控制器上傳惡意代碼造成保護失效。與此不同的是,攻擊者為了在SIS控制器中形成功能控制邏輯,會在一段時間內(nèi)反復(fù)進行多次嘗試,即使由于攻擊腳本的條件檢查提示出錯,但攻擊者還會繼續(xù)嘗試,這也表明攻擊者的最終意圖就是要造成控制進程的意外關(guān)閉。

值得注意的是,我們曾多次發(fā)現(xiàn)了一些長期入侵工控系統(tǒng)(ICS)但并未造成系統(tǒng)破壞或中斷的攻擊事件,如長年入侵西方ICS的俄羅斯沙蟲團隊(Sandworm)等組織,他們似乎只是入侵,還沒表現(xiàn)出明顯的指哪打哪的系統(tǒng)中斷攻擊能力。

TRITON惡意軟件功能

TRITON攻擊框架具備多種惡意功能,包括程序讀寫、各種功能讀寫以及查詢SIS控制器狀態(tài),但trilog.exe樣本只具備某些功能,不包括TRITON的全面?zhèn)刹旃δ堋?

TRITON惡意軟件具備與Triconex SIS控制器進行通信的能力(如發(fā)送特定指令,實現(xiàn)關(guān)?;騼?nèi)容讀取),并可用攻擊者定義的Payload對其進行遠程重編譯。Mandiant分析的TRITON樣本中包含了攻擊者制作的運行Triconex控制器執(zhí)行表的程序,該樣本包含了一個正常且監(jiān)控控制器運行狀態(tài)的合法程序,如果控制器發(fā)生失效故障,TRITON會嘗試返回一個偽造的正常運行狀態(tài);如果控制器發(fā)生故障而在規(guī)定時間內(nèi)未恢復(fù)到安全狀態(tài)時,則該樣本將會用無效數(shù)據(jù)覆蓋SIS控制器中的惡意程序形成隱蔽。

TRITON攻擊技術(shù)分析

Fig4 HR.png

TRITON攻擊框架會被部署在運行有Windows操作系統(tǒng)的SIS工程工作站中,其中的惡意軟件偽裝成合法的用于查看日志的TriStation Triconex Trilog應(yīng)用程序,并通過一個Py2EXE編譯后的Python腳本進行植入,而該Python腳本程序又依賴于一個包含標(biāo)準(zhǔn)Python庫和開源庫的zip壓縮文件,以及攻擊者開發(fā)的用于與Triconex控制器交互的Triconex攻擊框架。 與可執(zhí)行的惡意程序一起,還會生成兩個二進制文件inject.bin(惡意功能代碼)和imain.bin(惡意控制邏輯)作為攻擊控制器的Payload,這兩個文件名也被硬編碼寫入到了Py2EXE編譯的python腳本中。

Trilog.exe在命令行中會選擇目標(biāo)Triconex設(shè)備IP地址作為攻擊選項,它沒有利用底層TRITON庫的Triconex設(shè)備發(fā)現(xiàn)功能,而是為環(huán)境中的每個目標(biāo)控制器分別調(diào)用trilog.exe實例,一旦被調(diào)用,trilog.exe將檢查控制器狀態(tài),然后讀取由TriStation協(xié)議公開的配置信息,如果控制器處于運行狀態(tài),trilog.exe會把兩個Payload文件inject.bin和imain.bin進行編碼,并將它們傳遞給通信庫,以便將其附加到控制器的程序存儲器和執(zhí)行表中。

當(dāng)Payload文件被插入Triconex控制器內(nèi)存后,腳本開始倒計時,并執(zhí)行控制器狀態(tài)定期檢查,如果檢測到控制器錯誤,通信庫的方法SafeAppendProgramMod會嘗試使用TriStation協(xié)議命令將控制器重置為之前狀態(tài),如果檢測到控制器失效,trilog.exe會向內(nèi)存嘗試寫入一個小的“虛擬”程序。我們認為這是一種反取證技術(shù),用于隱藏Triconex控制器中的攻擊代碼。

Mandiant與被攻擊企業(yè)合作,利用實驗室環(huán)境中有效的Triconex控制器運行trilog.exe后,在惡意軟件中發(fā)現(xiàn)了一個防止Payload文件持久駐留的檢查條件,Mandiant通過修改攻擊腳本刪除該檢查條件后,Payload文件則會持久駐留于控制器內(nèi)存中,且不影響控制器運行。

TRITON可以執(zhí)行合法TriStation應(yīng)用程序的TriStation協(xié)議,并通過該協(xié)議來配置SIS控制器。

另外,攻擊者還創(chuàng)建了一個名為TsHi的高層接口,通過該接口使用TRITON框架實現(xiàn)攻擊腳本執(zhí)行。TsHi接口暴露了惡意軟件的偵察和攻擊能力,這些功能實現(xiàn)通常需要接收來自用戶的二進制數(shù)據(jù),并在數(shù)據(jù)傳遞到低級庫中以進行序列化到網(wǎng)絡(luò)的過程之前,會進行代碼“簽名”和校驗步驟。

另一個攻擊者編寫的模塊TsBase則包含了TsHi調(diào)用函數(shù),它能將攻擊者的預(yù)期操作轉(zhuǎn)化為相應(yīng)的TriStation協(xié)議功能代碼。對于某些功能而言,它還可將數(shù)據(jù)打包填充為適當(dāng)格式。

TsLow攻擊模塊實現(xiàn)了TriStation UDP通信協(xié)議。TsBase庫則主要依賴ts_exec方法,該方法采用功能代碼和預(yù)期響應(yīng)代碼,并通過UDP將Payload命令序列化,它還會檢查控制器對期望值的響應(yīng),并當(dāng)檢查成功或失敗時,返回相應(yīng)的數(shù)據(jù)結(jié)構(gòu)表示對象。

TsLow中還包含了用于檢查目標(biāo)控制器連通性的連接測試方法,如果調(diào)用沒發(fā)現(xiàn)目標(biāo),它會運行設(shè)備發(fā)現(xiàn)功能detect_ip,該功能使用IP廣播包方式,通過腳本調(diào)用,在TriStation協(xié)議中執(zhí)行“ping”消息,來探測控制器。

防護建議

為避免遭受TRITON類攻擊,資產(chǎn)設(shè)備管理者可以考慮以下幾種防護措施:

以技術(shù)可行方式,將儀表安全系統(tǒng)網(wǎng)絡(luò)與過程控制和信息系統(tǒng)網(wǎng)絡(luò)隔離,能對SIS控制器執(zhí)行編程的工程工作站不應(yīng)與其它任何DCS過程控制或信息系統(tǒng)形成雙宿網(wǎng)絡(luò);

充分利用對安全控制器進行控制編程的硬件功能,這些功能通常采用物理鑰匙形成交換控制,在Triconex控制器上,除了預(yù)定的編程事件期間,其它時候,鑰匙不應(yīng)處于編程模式狀態(tài);

對鑰匙關(guān)鍵位置變化實施變更管理措施,定期審核當(dāng)前的關(guān)鍵狀態(tài);

對于依賴SIS系統(tǒng)提供數(shù)據(jù)的任何應(yīng)用程序,應(yīng)使用單向網(wǎng)關(guān)而不是雙向網(wǎng)絡(luò)進行連接;

在任何通過TCP / IP訪問SIS系統(tǒng)的服務(wù)器或工作站終端上,實行嚴格的訪問控制和應(yīng)用程序白名單機制;

監(jiān)控ICS系統(tǒng)異常的網(wǎng)絡(luò)通信流量。

下圖為Triconex系統(tǒng)主機架鑰匙開關(guān):

IoC威脅指標(biāo)

Indicators


ioc1.png

ioc2.png



 
 

上一篇:中國電信告別程控交換 開啟中國全光高速新時代

下一篇:2017年12月24日 聚銘安全速遞