深度剖析:云端博弈——木馬屠城
近半年DDOS攻擊愈發(fā)激烈,而作為攻擊的執(zhí)行者,DDOS木馬也是應(yīng)市場(chǎng)需求也在野蠻生長(zhǎng),筆者就觀察到一款被國(guó)外安全廠商稱之為”XOR DDOS”的木馬不斷更新代碼和功能,甚至還加入了rootkit功能模塊。本文將剖析此木馬,并給出相應(yīng)的檢測(cè)方案。
XOR DDOS木馬淺析
此木馬因其代碼使用xor來隱藏配置信息,被國(guó)外某專注于木馬分析的網(wǎng)站(mmd-0028-2014-fuzzy-reversing-new-china)稱之為‘Linux/XOR.DDoS ’,我們這里也沿用這個(gè)叫法。

XOR DDOS代碼片段
此木馬開發(fā)者也算得上是‘勞模’了,近一年的觀察發(fā)現(xiàn)這個(gè)木馬代碼不斷在更新,早先的版本并未有rootkit模塊,在2014年下半年發(fā)現(xiàn)它已經(jīng)更新了rootkit模塊。

XOR DDOS函數(shù)變更趨勢(shì)

XOR DDOS新版新增內(nèi)核模塊代碼
rootkit功能分析
相似性分析
根據(jù)對(duì)控制內(nèi)核模塊的代碼來看,借鑒了國(guó)外一個(gè)知名rootkit suterusu的代碼,那么接下來XOR DDOS木馬的內(nèi)核模塊功能我們直接看 suterusu 代碼。

XORDDOS借鑒了Suterusu代碼
源碼分析
這個(gè)開源rootkit的代碼剖析不是本文重點(diǎn),這里僅簡(jiǎn)述其最新版功能:
l 提升任意用戶權(quán)限至root權(quán)限:根據(jù)用戶態(tài)指令,將當(dāng)前進(jìn)程設(shè)置為root權(quán)限,然后用戶態(tài)進(jìn)程在root上下文環(huán)境中 啟動(dòng)shell (sh);
l 隱藏進(jìn)程:通過在系統(tǒng)調(diào)用readdir時(shí)抹掉返回的/proc/$pid 目錄信息,來實(shí)現(xiàn)隱藏;
l 隱藏網(wǎng)絡(luò)連接:在系統(tǒng)讀取/proc/net/tcp文件信息中抹掉相應(yīng)網(wǎng)絡(luò)連接來實(shí)現(xiàn)隱藏;
l 隱藏文件:同隱藏進(jìn)程,抹掉readdir返回信息中相應(yīng)希望隱藏的文件信息實(shí)現(xiàn)隱藏;
l 隱藏混雜模式狀態(tài):hook獲取設(shè)備狀態(tài)的函數(shù),始終返回非混雜模式。
檢測(cè)方案
Rootkit檢測(cè)
前面已經(jīng)把木馬的原理剖析得很清楚了,那么檢測(cè)它并不是什么難事。因篇幅有限暫且把“發(fā)現(xiàn)隱藏進(jìn)程”作為目標(biāo),設(shè)計(jì)檢測(cè)方案。
正所謂知己知彼百戰(zhàn)不殆,設(shè)計(jì)檢測(cè)方案的第一步就是搞清楚這些rootkit“隱藏進(jìn)程”是如何實(shí)現(xiàn)的。

Rootkit 隱藏進(jìn)程流程
根據(jù)閱讀suterusu和adore-ng兩份代碼,能看出來,它們都是通過截獲并抹去ps等進(jìn)程讀取proc文件信息來實(shí)現(xiàn)的隱藏。Ps命令實(shí)現(xiàn)請(qǐng)讀者自行閱讀相關(guān)資料,這里不贅述。
在linux系統(tǒng)中,有個(gè)稱之為task的進(jìn)程信息內(nèi)核鏈表,通過遍歷它可以得到系統(tǒng)真實(shí)存在的所有進(jìn)程信息。

內(nèi)核進(jìn)程鏈表
聰明的你應(yīng)該已經(jīng)知道了檢測(cè)方案,那就是“把內(nèi)核進(jìn)程鏈表信息讀取出來的pid與列舉/proc得到的pid做對(duì)比”。

隱藏進(jìn)程檢測(cè)方案

隱藏進(jìn)程檢測(cè)效果
同時(shí)suterusu的其他隱藏功能也是通過對(duì)系統(tǒng)進(jìn)程在讀取/proc下的其他信息時(shí)做手腳,其他功能的檢測(cè),大家可以舉一反三。檢測(cè)工具demo稍后放出。J
通用行為檢測(cè)
說完case by case的純技術(shù)細(xì)節(jié)對(duì)抗,再看看從筆者‘老生常談’的行為檢測(cè)(參考《如何建立有效的安全策略》)模型有那些可做的地方。以下列舉了幾個(gè)可切入的點(diǎn)。
木馬安裝
分析XOR DDOS 用戶態(tài)可執(zhí)行文件,發(fā)現(xiàn)它在啟動(dòng)之后做了一系列的安裝過程,這些過程又異于常見運(yùn)維部署流程,可作為異常檢測(cè)告警規(guī)則。并且非常有意思的是,它為了躲避清理,不斷的改名啟動(dòng),反倒是暴露了它的惡意軟件本質(zhì)。

XOR DDOS安裝指令
異常進(jìn)程
它在運(yùn)行過程中不斷在/etc/rc*d.d/S90*生成軟鏈,指向之前安裝的服務(wù);而二進(jìn)制文件保存在/boot目錄;同時(shí)啟動(dòng)的進(jìn)程,進(jìn)程名又惡意修改為正常的運(yùn)維命令,但遺憾的是類似于ls這類命令根本不應(yīng)該有網(wǎng)絡(luò)連接,這成了它很明顯的罪證。

生成軟鏈

注冊(cè)服務(wù)指向惡意文件

偽裝為普通命令
根據(jù)前面的幾個(gè)異常行為建立檢測(cè)模型規(guī)則,這個(gè)XORDDOS木馬就不難檢測(cè),模型描述如下:

檢測(cè)方案優(yōu)選
文章到這里聰明的讀者可能會(huì)冒出N多疑問,“為什么你要這樣檢測(cè)?網(wǎng)上貌似類似場(chǎng)景的檢測(cè)工具很多,取證工具也很多”。我們?cè)谠跈z測(cè)方案優(yōu)選時(shí)考慮以下幾個(gè)要素:

l 大型網(wǎng)絡(luò)里,較低的誤報(bào)率是可運(yùn)營(yíng)的基本要求,大量的誤報(bào)可能導(dǎo)致最終告警數(shù)據(jù)不被重視,進(jìn)而安全系統(tǒng)被擱置;
l 在線業(yè)務(wù)對(duì)服務(wù)器性能對(duì)要求極為苛刻,非業(yè)務(wù)進(jìn)程對(duì)系統(tǒng)資源對(duì)的大量占用是不可接受的;
l 檢測(cè)方案盡可能的提煉其場(chǎng)景的核心環(huán)節(jié)和通用環(huán)節(jié),以適應(yīng)對(duì)手的不斷變化,case by case的檢測(cè)手段固然直接有效,但對(duì)于安全系統(tǒng)建設(shè)來說往往性價(jià)比太低。
本文所述檢測(cè)方案既滿足了本次case的檢測(cè)需求,也滿足上述方案選型要求。
由于安全管理和技術(shù)架構(gòu)的原因,這種木馬對(duì)騰訊自有的服務(wù)器沒有太多影響,但是對(duì)騰訊云的用戶影響較大。我們?cè)谕瓿深A(yù)研工作后,將檢測(cè)機(jī)制整合到騰訊云的入侵檢測(cè)系統(tǒng)里(騰訊云的服務(wù)器入侵檢測(cè)主要依靠我們安全平臺(tái)部的入侵檢測(cè)系統(tǒng)“洋蔥”),現(xiàn)在只要啟用安全組件的騰訊云商戶就能夠發(fā)現(xiàn)此類木馬。