Havex:以工控設(shè)備為狩獵目標(biāo)的惡意軟件
在過(guò)去一年,我們對(duì)Havex惡意程序家族及其背后的組織保持了高度的關(guān)注。Havex被認(rèn)為以不同工業(yè)領(lǐng)域?yàn)槟繕?biāo)進(jìn)行攻擊的惡意軟件,并且在最初的報(bào)告中,該惡意軟件對(duì)能源行業(yè)尤為感興趣。
Havex的主要構(gòu)成為通用的遠(yuǎn)程木馬(Remote Access Trojan,RAT)和用PHP編寫(xiě)的服務(wù)器程序??梢栽诜?wù)器的代碼中看到“Havex”這個(gè)名字。
在2014年的春天,我們發(fā)現(xiàn)Havex開(kāi)始對(duì)工業(yè)控制系統(tǒng)(IndustrialControl Systems, ICS)有特殊的興趣,該惡意軟件背后的組織使用了一個(gè)創(chuàng)新型木馬來(lái)接近目標(biāo)。攻擊者首先把ICS/SCADA制造商的網(wǎng)站上用來(lái)供用戶(hù)下載的相關(guān)軟件感染木馬病毒,當(dāng)用戶(hù)下載這些軟件并安裝時(shí)實(shí)現(xiàn)對(duì)目標(biāo)用戶(hù)的感染。
我們收集并分析了Havex的88個(gè)變種,主要分析了它們的訪(fǎng)問(wèn)目標(biāo)、從哪收集數(shù)據(jù)、網(wǎng)絡(luò)和機(jī)器。這一分析發(fā)現(xiàn)Havex通信用的C&C服務(wù)器多達(dá)146個(gè),并且有1500多個(gè)IP地址向C&C服務(wù)器通信,從而識(shí)別最終的受害者。
攻擊者利用被攻陷的網(wǎng)站、博客作為C&C服務(wù)器,如下為用于C&C服務(wù)器的一些實(shí)例。
我們還發(fā)現(xiàn)了一個(gè)額外的功能組件,攻擊者利用此組件從應(yīng)用于ICS/SCADA系統(tǒng)中的機(jī)器上盜取數(shù)據(jù)。這意味著攻擊者不僅僅對(duì)目標(biāo)公司的網(wǎng)絡(luò)感興趣,還有對(duì)這些公司的ICS/SCADA系統(tǒng)進(jìn)行控制的動(dòng)機(jī)。我們目前對(duì)這一動(dòng)機(jī)的緣由還不太清楚。
以包含木馬病毒的軟件安裝包作為感染媒介
Havex RAT以如下途徑進(jìn)行傳播,
(1)垃圾郵件
(2)漏洞利用工具
(3)在被入侵的廠(chǎng)商的主站上,使其為用戶(hù)提供的軟件安裝包包含該木馬
利用垃圾郵件和漏洞工具是相當(dāng)簡(jiǎn)單的傳播機(jī)制,我們對(duì)此不進(jìn)行深入分析。更值得關(guān)注的第三中方式,它可以被看做是水坑式攻擊(Water-hole attack),因?yàn)楣粽哌x擇ICS的供應(yīng)商作為中間目標(biāo),來(lái)實(shí)現(xiàn)其對(duì)最終目標(biāo)的攻擊。
攻擊者利用網(wǎng)站的漏洞,入侵了網(wǎng)站,并將正常的供用戶(hù)下載的安裝軟件替換為包含木馬的安裝軟件。
我們的研究者發(fā)現(xiàn)有三個(gè)廠(chǎng)商的主站被這種方式被攻入,在網(wǎng)站上提供的軟件安裝包中包含了HavexRAT。我們懷疑還會(huì)有更多類(lèi)似的情況,但是尚未確定。
根據(jù)他們網(wǎng)站的內(nèi)容,這三家公司都是開(kāi)發(fā)面向工業(yè)的設(shè)備和軟件,這些公司的總部位于德國(guó)、瑞士和比利時(shí)。其中兩個(gè)供應(yīng)商為ICS系統(tǒng)提供遠(yuǎn)程管理軟件,第三個(gè)供應(yīng)商為開(kāi)發(fā)高精密工業(yè)攝像機(jī)及相關(guān)軟件。
作為一個(gè)例子,我們可以看一下包含了木馬病毒的安裝包安裝時(shí)的動(dòng)態(tài)分析結(jié)果。
正常的安裝程序是不會(huì)包含這個(gè)名為“mbcheck.dll”的文件的。這個(gè)文件實(shí)際上是Havex的惡意軟件,包含木馬病毒的安裝程序會(huì)釋放并執(zhí)行這一文件作為其軟件安裝過(guò)程中的一部分。這樣攻擊者可以用此后門(mén)來(lái)訪(fǎng)問(wèn)和控制用戶(hù)的工作電腦。
目標(biāo)組織
我們能夠找到一些受感染的系統(tǒng),并根據(jù)樣本的分析報(bào)告,來(lái)追蹤向Havex RATC&C服務(wù)器進(jìn)行通信的IP地址。
所有受感染的這些實(shí)體都是與工業(yè)應(yīng)用或者工業(yè)機(jī)器有一定的關(guān)系,大多數(shù)受害者位于歐洲,在本文撰寫(xiě)時(shí),我們發(fā)現(xiàn)至少有一家位于加利福尼亞的公司在向C&C服務(wù)器發(fā)送數(shù)據(jù)。其中歐洲的基礎(chǔ)機(jī)構(gòu)中,有兩個(gè)為法國(guó)的眾所周知的教育機(jī)構(gòu),這兩個(gè)機(jī)構(gòu)是進(jìn)行技術(shù)相關(guān)的研究,兩個(gè)德國(guó)的工業(yè)應(yīng)用程序和機(jī)器制造商,一個(gè)法國(guó)的工業(yè)機(jī)器生產(chǎn)生還有一個(gè)是專(zhuān)門(mén)從事結(jié)構(gòu)工程的俄羅斯建筑公司。
ICS/SCADA 嗅探
對(duì)于Havex樣例代碼的分析發(fā)現(xiàn),其包含對(duì)于ICS/SCADA的嗅探行為。C&C服務(wù)器會(huì)指示受感染的計(jì)算機(jī)下載并執(zhí)行更進(jìn)一步的組件,其中一個(gè)組件很有趣。當(dāng)分析此組件時(shí),我們發(fā)現(xiàn)它會(huì)枚舉局域網(wǎng),并尋找連接的資源和服務(wù)器。(譯注:通過(guò)匯編代碼可知,該程序調(diào)用了Windows的庫(kù)函數(shù)“WNetEnumResource”,關(guān)于該函數(shù)的信息可以參照:http://msdn.microsoft.com/zh-cn/library/aa918051)
然后我們發(fā)現(xiàn),該程序調(diào)用了微軟的COM對(duì)象接口(CoInitializeEx,CoCreateInstanceEx),來(lái)連接特定的服務(wù)。
為了確認(rèn)樣例代碼對(duì)哪個(gè)服務(wù)感興趣,我們特意的檢索了GUID值,通過(guò)對(duì)于GUID值的檢索可以知道哪種類(lèi)型的接口被調(diào)用了。通過(guò)Google可知如下:
9DD0B56C-AD9E-43EE-8305-487F3188BF7A = IID_IOPCServerList2
13486D51-4821-11D2-A494-3CB306C10000 = CLSID_OPCServerList
譯注(上述兩個(gè)接口應(yīng)該是OPC標(biāo)準(zhǔn)基金會(huì)定義的OPCEnum.exe來(lái)實(shí)現(xiàn)的,這段代碼的目的應(yīng)該就是訪(fǎng)問(wèn)局域網(wǎng)中運(yùn)行的OPCEnum.exe程序,通過(guò)調(diào)用IID_OPCServerList2接口來(lái)獲取機(jī)器上運(yùn)行的OPCServer程序。各大工控廠(chǎng)商都開(kāi)發(fā)了自己的OPCServer服務(wù)程序,但是大家都遵守了統(tǒng)一的OPC標(biāo)準(zhǔn),從面向?qū)ο蟮慕嵌葋?lái)說(shuō),就是所有的OPCServer都派生自O(shè)PC標(biāo)準(zhǔn)基金會(huì)定義的接口。OPCEnum.exe主要是負(fù)責(zé)枚舉OPCServer列表用的,例如一臺(tái)機(jī)器上安裝三個(gè)自動(dòng)化廠(chǎng)商的OPCServer,別人想訪(fǎng)問(wèn)OPCServer時(shí),可以先通過(guò)調(diào)用OPCEnum來(lái)獲取這臺(tái)機(jī)器上安裝了哪些OPCServer,然后再與OPCServer進(jìn)行交互。通過(guò)本文來(lái)看,似乎Havex程序僅僅是獲取了OPCServer的基本信息,沒(méi)有進(jìn)一步與OPCServer打交道,但通過(guò)另外一篇分析文章來(lái)看,Havex還是與OPCServer進(jìn)行了打交道,獲取到了OPCServer內(nèi)部更為詳細(xì)的情報(bào)。)
注意到“OPCServer”這個(gè)名字,還有更多的指示指向了這個(gè)單詞,在可執(zhí)行文件中的資源處找到了更多的OPC字符串關(guān)鍵字。
事實(shí)上,OPC指的是OLE for ProcessControl,它是一種標(biāo)準(zhǔn),實(shí)現(xiàn)Windows應(yīng)用程序與過(guò)程控制硬件進(jìn)行交互。通過(guò)OPC,惡意軟件可以獲取設(shè)備更為詳細(xì)的信息,然后將他們發(fā)送給C&C服務(wù)器,供攻擊者分析??雌饋?lái)這一組件僅僅是作為攻擊者收集情報(bào)的工具,到目前為止我們還沒(méi)有發(fā)現(xiàn)試圖控制連接在控制系統(tǒng)中的硬件的PayLoad。
深度解讀
Havex主要有兩大組件構(gòu)成,下載器和OPC情報(bào)收集模塊。有關(guān)下載器的分析文章可以參見(jiàn)此文:http://blog.fortinet.com/Evolving-History-of-Havex-Module-Downloader/
在測(cè)試環(huán)境中,首先在局域網(wǎng)的其他機(jī)器上安裝兩個(gè)OPCServer,如下圖所示,惡意軟件成功的獲取到了這兩個(gè)OPCServer的情報(bào)(譯注:根據(jù)圖可知,安裝OPCServer的PC名稱(chēng)為R3P-PC,安裝的OPCServer是ICONICS公司的OPCServer AD和AE)
收集到情報(bào)以bzip格式壓縮,然后利用RSAEuro進(jìn)行加密,最后保存為.yls文件,放置于機(jī)器的臨時(shí)文件夾下。
在我們目前的測(cè)試環(huán)境中,這一.yls文件并沒(méi)有發(fā)送回攻擊者那里。(譯注:從后面生成的txt文件來(lái)看,這些文件肯定傳回過(guò)C&C服務(wù)器)
另外兩個(gè)文件被創(chuàng)建出來(lái)分別是OPCServer1.txt和OPCServer2.txt,每個(gè)文件記錄了一個(gè)OPCServer的具體情報(bào)。
(譯注:如下圖,文件中記錄了OPCServer中的較為詳細(xì)的信息,包括OPCServer中的組情況,Tag名稱(chēng)、類(lèi)型等。其實(shí)搞工業(yè)控制的人,看到這些情報(bào),通過(guò)Tag數(shù)量就能大概的推斷出工廠(chǎng)的規(guī)模,另外就是某些個(gè)Tag可能會(huì)很敏感,對(duì)這一數(shù)據(jù)值進(jìn)行強(qiáng)行修改的話(huà)可能會(huì)產(chǎn)生對(duì)控制系統(tǒng)運(yùn)行非常嚴(yán)重的后果。另外就是某些廠(chǎng)商的OPCServer中可能存在漏洞,通過(guò)ICS-CERT的官方公告就能知道,利用這些已知的、未知的漏洞可以進(jìn)一步侵入OPCServer,這樣離控制系統(tǒng)的核心部分就會(huì)越來(lái)越近。)
小結(jié)
Havex背后的攻擊者采用了一個(gè)巧妙的方法來(lái)進(jìn)行工業(yè)間諜活動(dòng),通過(guò)對(duì)ICS/SCADA軟件安裝包中植入木馬,是一種訪(fǎng)問(wèn)目標(biāo)系統(tǒng)很有效的方法,甚至能夠入侵到關(guān)鍵技術(shù)設(shè)施。
(譯注:OPC協(xié)議主要是流程工業(yè)上用的比較多,例如石油石化行業(yè),這也是為什么說(shuō)Havex是針對(duì)能源行業(yè)了,用該協(xié)議主要是過(guò)程數(shù)據(jù)的存取等,這是過(guò)程控制的范疇,Havex主要可能是偷取數(shù)據(jù)情報(bào)為目的。例如,通過(guò)OPC層層的入侵,最后可能偷取到過(guò)程控制中的控制方案或者說(shuō)是配方,例如煉油廠(chǎng)中的配方、或者制藥廠(chǎng)中的配方等。Stunex主要是針對(duì)PLC這種工廠(chǎng)控制,其涉及到的協(xié)議可能是Modbus、Profibus等偏向底層,主要實(shí)現(xiàn)對(duì)于控制系統(tǒng)底層終端的控制。例如閥門(mén)的開(kāi)關(guān)、電機(jī)的啟停、正反轉(zhuǎn)。)
原文地址:
http://www.f-secure.com/weblog/archives/00002718.html
http://blog.fortinet.com/Havex–Meet-OPC-Server/
相關(guān)參照文章:
http://www.csmonitor.com/World/Security-Watch/Cyber-Conflict-Monitor/2014/0701/An-anti-US-Stuxnet-Startling-attack-against-industrial-complex-revealed
http://www.drivesncontrols.com/news/fullstory.php/aid/4498/Malware_targets_industrial_controls_and_OPC_servers.html
http://threatpost.com/motives-behind-havex-ics-malware-campaign-remain-a-mystery/107046#comment-234144
http://www.crowdstrike.com/sites/all/themes/crowdstrike2/css/imgs/platform/CrowdStrike_Global_Threat_Report_2013.pdf
http://www.pcworld.com/article/2367240/new-havex-malware-variants-target-industrial-control-system-and-scada-users.html