攻擊工業(yè)控制系統(tǒng)(ICS)的惡意軟件,例如2010年的Stuxnet campaign,是非常嚴(yán)重的威脅。此類網(wǎng)絡(luò)行為可以監(jiān)視、擾亂或破壞大規(guī)模工業(yè)流程的管理系統(tǒng)。該威脅的一個重要危險是它將單純的數(shù)字傷害轉(zhuǎn)變?yōu)槿松戆踩珎ΑT诒疚闹校覀儗⒒仡橧CS惡意軟件的歷史,簡要分析一個ICS框架的運作方式,并就如何應(yīng)對這些威脅提供建議。
ICS惡意軟件通常很復(fù)雜,需要足夠的資源和時間來研究。正如在Stuxnet中看到的那樣,攻擊者可能受到經(jīng)濟利益、黑客主義或間諜活動以及政治目的的驅(qū)使。自Stuxnet以來,研究人員發(fā)現(xiàn)了多種工業(yè)攻擊;每年我們都會遇到比之前更糟糕的威脅。
2017年8月發(fā)現(xiàn)的一個復(fù)雜的惡意軟件,專門針對中東的石化設(shè)施。該惡意軟件稱為Triton、Trisis或HatMan,攻擊安全儀表系統(tǒng)(SIS),SIS是一個旨在保護人類生命的關(guān)鍵組件。該攻擊針對的系統(tǒng)是Schneider Triconex SIS。最初的感染媒介目前仍然未知,但很有可能是網(wǎng)絡(luò)釣魚攻擊。
獲取遠(yuǎn)程訪問后,Triton攻擊者開始擾亂、拆除或破壞工業(yè)流程。攻擊者的目標(biāo)仍然不明確,因為攻擊是在工廠意外關(guān)閉導(dǎo)致的進一步調(diào)查后發(fā)現(xiàn)的。一些安全公司進行調(diào)查后發(fā)現(xiàn)了一個復(fù)雜的惡意軟件框架,它嵌入了PowerPC shellcode(Triconex架構(gòu))并實現(xiàn)了專有通信協(xié)議TriStation。惡意軟件允許攻擊者輕松與安全控制器通信并遠(yuǎn)程操作系統(tǒng)內(nèi)存注入shellcode;也就是說,他們完全控制了目標(biāo)。但是,由于失去了攻擊最后階段的有效載荷,攻擊沒有成功。所有調(diào)查都指向了這點。如果最后的有效載荷得以實施的話,那么后果是災(zāi)難性的。
一、ICS惡意軟件歷史
Stuxnet是在2010年發(fā)現(xiàn)的最復(fù)雜的ICS威脅之一。該網(wǎng)絡(luò)武器是針對伊朗的離心機而制造的。它能夠重新編程特定的可編程邏輯控制器以改變離心機旋轉(zhuǎn)的速度。 Stuxnet的目標(biāo)不是破壞,而是控制工業(yè)過程。
2013年,惡意軟件Havex針對能源、電力和許多其他公司。攻擊者收集了大量數(shù)據(jù)并遠(yuǎn)程監(jiān)控工業(yè)系統(tǒng)。Havex是為間諜和破壞而創(chuàng)建的。
BlackEnergy于2015年被發(fā)現(xiàn)。它針對關(guān)鍵基礎(chǔ)設(shè)施并銷毀存儲在工作站和服務(wù)器上的文件。在烏克蘭,黑客入侵了幾個配電中心后,有23萬人被迫在黑暗中待了六個小時。
2015年,IronGate在公共資源上發(fā)現(xiàn)。它針對西門子控制系統(tǒng),具有與Stuxnet類似的功能。目前還不清楚這是概念驗證還是簡單的滲透測試工具。
2016年,Industroyer再次襲擊烏克蘭。該惡意軟件嵌入了數(shù)據(jù)擦除組件以及分布式拒絕服務(wù)模塊。它是為破壞而精心制作的。這次襲擊導(dǎo)致烏克蘭電網(wǎng)再次關(guān)閉。
2017年,Triton被發(fā)現(xiàn)。攻擊沒有成功;否則后果可能是災(zāi)難性的。

ICS惡意軟件至關(guān)重要,因為它們會感染工業(yè)設(shè)備和自動化系統(tǒng)。但是,常規(guī)惡意軟件也會影響工業(yè)流程。去年,WannaCry迫使從醫(yī)療行業(yè)到汽車行業(yè)的部分公司停產(chǎn)。幾個月后,NotPetya襲擊了核電站、電網(wǎng)和醫(yī)療系統(tǒng)。2018年,一位加密貨幣挖礦程序襲擊了歐洲的水務(wù)公司。
面對日益廣泛的風(fēng)險,關(guān)鍵基礎(chǔ)設(shè)施需要特定的方法來保證安全。
二、Triton框架
Triton針對由施耐德電氣銷售的Triconex安全控制器。據(jù)該公司稱,Triconex安全控制器用于18,000家工廠(核能、石油和天然氣煉油廠、化工廠等)。對SIS的攻擊需要高水平的理解認(rèn)識(通過分析獲取的文檔、圖表、設(shè)備配置和網(wǎng)絡(luò)流量)。SIS是針對物理事件的最后一種保護措施。
根據(jù)一項調(diào)查,攻擊者可能通過魚叉式網(wǎng)絡(luò)釣魚獲得了訪問網(wǎng)絡(luò)的權(quán)限。在初步感染之后,攻擊者橫向移動到主網(wǎng)絡(luò)到達(dá)ICS網(wǎng)絡(luò)并以SIS控制器為目標(biāo)。

為了與SIS控制器通信,攻擊者在UDP 1502端口上重新編碼了專有的TriStation通信協(xié)議。這表明他們投入大量時間對Triconex產(chǎn)品進行了逆向。
Nozomi Networks創(chuàng)建了一個Wireshark dissector,非常便于分析TriStation協(xié)議和檢測Triton攻擊。下面的屏幕截圖顯示了Triconex SIS返回的信息。Triton要求控制器處于“運行狀態(tài)”來執(zhí)行下一階段的攻擊。

在上面的屏幕截圖中,Triconex回復(fù)了由Triton發(fā)送的請求“獲取控制程序狀態(tài)”。
Triton框架(dc81f383624955e0c0441734f9f1dabfe03f373c)生成合法的可執(zhí)行文件trilog.exe,它收集日志。可執(zhí)行文件是由python腳本編譯而成的exe。該框架還包含library.zip(1dd89871c4f8eca7a42642bf4c5ec2aa7688fd5c),它包括Triton所需的所有python腳本。最后,兩個PowerPC shellcode(目標(biāo)架構(gòu))用于攻擊控制器。第一個PowerPC shellcode是一個注入器(inject.bin,f403292f6cb315c84f84f6c51490e2e8cd8c686),用于注入第二個階段(imain.bin,b47ad4840089247b058121e95732beb82e6311d0)的后門,該后門允許對Triconex產(chǎn)品進行讀、寫和執(zhí)行訪問。
下面的架構(gòu)圖展示了Triton的主要模塊:

在調(diào)查取證期間,沒有恢復(fù)已丟失的有效載荷。由于攻擊是早期發(fā)現(xiàn)的,攻擊者可能沒有時間進入最后階段。
三、檢測非正常網(wǎng)絡(luò)連接
Nozomi Networks創(chuàng)建了一個模擬Triconex安全控制器的腳本。我們使用Raspberry Pi修改了這個腳本,以創(chuàng)建一個廉價的檢測器。
這種廉價的工具可以很容易的安裝在ICS網(wǎng)絡(luò)上。如果發(fā)生非法連接,設(shè)備會發(fā)出閃爍的LED警報警報。它還顯示連接的IP地址以供進一步調(diào)查。下圖顯示了如何連接LED和蜂鳴器。

四、與ICS惡意軟件作斗爭
ICS惡意軟件變得更加激進和復(fù)雜。許多工業(yè)設(shè)備是在像Triton這樣沒人能預(yù)料到的網(wǎng)絡(luò)攻擊之前建造的。ICS目前處于不是為其專門設(shè)計的連接環(huán)境中,而是與常規(guī)網(wǎng)絡(luò)保持一致。但出于其重要性,工業(yè)系統(tǒng)需要特定的安全措施。工業(yè)網(wǎng)絡(luò)必須與一般業(yè)務(wù)網(wǎng)絡(luò)隔離,并且應(yīng)使用嚴(yán)格的訪問控制和應(yīng)用白名單來仔細(xì)監(jiān)控連接到工業(yè)過程的每臺機器。
更多安全建議:
· 通過強大的身份驗證(包括強密碼和雙重因子,讀卡器,監(jiān)控攝像頭等),對ICS網(wǎng)絡(luò)進行物理和邏輯訪問。
· 使用DMZ和防火墻防止公司和ICS網(wǎng)絡(luò)之間的交互流量。
· 在ICS網(wǎng)絡(luò)邊界上部署強大的安全措施,包括補丁管理、禁用未使用的端口以及限制ICS用戶權(quán)限
· 記錄并監(jiān)控ICS網(wǎng)絡(luò)上的每個操作,用于快速識別故障點
· 可以在關(guān)鍵設(shè)備上實施冗余以避免重大問題
· 制定強有力的安全策略和事件響應(yīng)計劃,以便在事件發(fā)生期間恢復(fù)系統(tǒng)
· 通過模擬事件響應(yīng)和安全意識培訓(xùn)人員
攻擊者可以從之前的攻擊中學(xué)習(xí),也可相互交流。ICS威脅的快速發(fā)展使得安全保護至關(guān)重要。制造商、工廠運營商、政府和網(wǎng)絡(luò)安全行業(yè)必須共同努力,以避免嚴(yán)重的網(wǎng)絡(luò)攻擊。
IoC
· dc81f383624955e0c0441734f9f1dabfe03f373c: trilog.exe
· b47ad4840089247b058121e95732beb82e6311d0: imain.bin
· f403292f6cb315c84f84f6c51490e2e8cd03c686: inject.bin
· 91bad86388c68f34d9a2db644f7a1e6ffd58a449: script_test.py
· 1dd89871c4f8eca7a42642bf4c5ec2aa7688fd5c: library.zip
· 97e785e92b416638c3a584ffbfce9f8f0434a5fd: TS_cnames.pyc
· d6e997a4b6a54d1aeedb646731f3b0893aee4b82: TsBase.pyc
· 66d39af5d61507cf7ea29e4b213f8d7dc9598bed: TsHi.pyc
· a6357a8792e68b05690a9736bc3051cba4b43227: TsLow.pyc
· 2262362200aa28b0eead1348cb6fda3b6c83ae01: crc.pyc
· 9059bba0d640e7eeeb34099711ff960e8fbae655: repr.pyc
· 6c09fec42e77054ee558ec352a7cd7bd5c5ba1b0: select.pyc
· 25dd6785b941ffe6085dd5b4dbded37e1077e222: sh.pyc
參考
· https://blog.schneider-electric.com/cyber-security/2018/08/07/one-year-after-triton-building-ongoing-industry-wide-cyber-resilience/
· https://www.youtube.com/watch?v=f09E75bWvkk
· https://ics-cert.us-cert.gov/sites/default/files/ICSJWG-Archive/QNL_DEC_17/Waterfall_top-20-attacks-article-d2%20-%20Article_S508NC.pdf
· https://www.fireeye.com/blog/threat-research/2017/12/attackers-deploy-new-ics-attack-framework-triton.html
· https://www.midnightbluelabs.com/blog/2018/1/16/analyzing-the-triton-industrial-malware
· https://www.nozominetworks.com/2018/07/18/blog/new-triton-analysis-tool-wireshark-dissector-for-tristation-protocol/
· https://github.com/NozomiNetworks/tricotools
· https://cyberx-labs.com/en/blog/triton-post-mortem-analysis-latest-ot-attack-framework/
· https://vimeo.com/275906105
· https://vimeo.com/248057640
· https://blog.talosintelligence.com/2017/07/template-injection.html
· https://github.com/MDudek-ICS/TRISIS-TRITON-HATMAN
|