我們的假想敵 數(shù)據(jù)中心威脅來自APT
去年,信息安全廠商接獲一連關(guān)于“Nitro Attack” 此 APT-進(jìn)階持續(xù)性滲透攻擊APT通報(bào)。它所采用的后門程序?yàn)?PoisonIvy,亦稱 BKDR_POISON。網(wǎng)絡(luò)上可以找到此后門程序的產(chǎn)生器。當(dāng)時(shí),信息安全廠商已采取反制措施來協(xié)助客戶對抗這項(xiàng)威脅并防范未來類似的感染。但是,從最近發(fā)現(xiàn)的一些匿蹤機(jī)制來看,對抗該惡意程序的戰(zhàn)斗尚未結(jié)束。
當(dāng)我們第一次分析這個(gè)惡意下載程序時(shí),原本以為它沒有什么驚人之處。它是一個(gè)由 Visual Basic 編譯出來的執(zhí)行文件,所做的事情不過就是透過 HTTP GET 來開啟某個(gè) HTML 網(wǎng)頁。
APT 攻擊-BKDR_POISON:未來將出現(xiàn)更多挑戰(zhàn)
當(dāng)我們透過瀏覽器連上該網(wǎng)頁時(shí),表面上看起來也是一個(gè)無害的網(wǎng)頁,但是經(jīng)過詳細(xì)解碼之后里面卻大有文章。
如同微軟所指出,此惡意下載程序有別于其他程序。它不會下載二進(jìn)制文件來執(zhí)行,但它會執(zhí)行已下載文件當(dāng)中看似無害的一些代碼。要達(dá)成此目的,惡意程序會將文字內(nèi)容轉(zhuǎn)成可執(zhí)行的程序代碼,然后呼叫 DllFunctionCall 來執(zhí)行。
而它所執(zhí)行的程序代碼其實(shí)就是 BKDR_POISON 惡意程序家族的變種,此惡意程序家族涉及了去年多起鎖定特定目標(biāo)攻擊。
BKDR_POISON 背景簡介
BKDR_POISON 惡意程序家族亦稱為 PoisonIvy (毒藤),已經(jīng)在網(wǎng)絡(luò)上肆瘧多年。原因是它的產(chǎn)生器很容易使用,而且可從其網(wǎng)站免費(fèi)下載。其自動啟用機(jī)制以及 mutex 和惡意文件名稱皆可透過產(chǎn)生器輕易設(shè)定,因此,每一個(gè)產(chǎn)生出來的樣本,其行為可能不盡相同。
BKDR_POISON 的后門程序功能包括:鍵盤側(cè)錄、聲音/影像側(cè)錄、畫面擷取、處理程序和服務(wù)管理,文件存取或上傳、以及其他等等。簡而言之,它基本上可讓其使用者完全存取受感染的系統(tǒng)。
此外,BKDR_POISON 也很容易整合至其他惡意程序,因?yàn)槠浜箝T程序產(chǎn)生器也提供了選項(xiàng)讓使用者產(chǎn)生一段 shellcode 攻擊程序代碼,而非完整的執(zhí)行文件。
在前述的 Nitro Attack 惡意下載程序案例中,一旦它執(zhí)行了 BKDR_POISON 的 shellcode,就能因而繼承其后門程序特性。
由于 shellcode 不像獨(dú)立的二進(jìn)制執(zhí)行文件可單獨(dú)偵測并分析,它必須和繼承其特性的執(zhí)行文件一并分析才看得出端倪。因此,信息安全研究人員若沒有拿到配對的 shellcode 和執(zhí)行文件 (例如,執(zhí)行文件經(jīng)過加密或隱藏),那么很可能就不會偵測到 shellcode。
根據(jù)一份安全工作者的分析表示,兩者還有另一項(xiàng)差異,那就是執(zhí)行方式:“PoisonIvy 產(chǎn)生器可輸出一個(gè) Windows 執(zhí)行文件或一段 Windows shellcode。二者之間的唯一差別在于 shellcode 版本必須經(jīng)由另一個(gè)處理程序直接注入內(nèi)存當(dāng)中 (例如藉由系統(tǒng)或軟件漏洞) 才能執(zhí)行,無法經(jīng)由正常的執(zhí)行文件啟動方式。”
他補(bǔ)充道:“由于使用 shellcode 時(shí)不需下載完整的文件,因此可直接在攻擊過程中使用,甚至可運(yùn)用一些二進(jìn)制執(zhí)行文件的混淆編碼技巧,例如加密,而且一切都在內(nèi)存當(dāng)中完成,因此可躲過傳統(tǒng)文件式偵測技術(shù)。”
#p#
BKDR_POISON 未來將更加危險(xiǎn)
以下是我們所知有關(guān)Nitro Attack惡意下載程序的資料:
它可從一個(gè)網(wǎng)址下載一個(gè)內(nèi)含 shellcode 的純文字文件。接著,它會將這些純文字內(nèi)容轉(zhuǎn)成可執(zhí)行的程序代碼。
Shellcode“不會”儲存。
接著下載程序會執(zhí)行此惡意程序代碼。
以下是一些技術(shù)人員對 BKDR_POISON 的了解:
它很容易整合至其他惡意程序。
它具備后門程序功能,而且也曾用于過去出現(xiàn)的攻擊當(dāng)中。
由于上述惡意下載程序的行為變化多端,而且目前的功能還在陽春階段,因此,網(wǎng)絡(luò)犯罪者應(yīng)該會繼續(xù)加以強(qiáng)化,未來將更難對付。此外,若將它和 BKDR_POISON 結(jié)合,由于后者曾參與過許多鎖定特定目標(biāo)的攻擊,因此,對信息安全研究人員來說將是一大挑戰(zhàn)。以下是這類威脅組合可能發(fā)展的一些狀況:
狀況 1:如果 HTML 經(jīng)過加密或者 shellcode 隱藏在圖片中,例如透過信息隱藏術(shù) (Seganography),就威脅分析師的角度來看,研究人員可能會因?yàn)?URL 指向了一個(gè)圖片而以為它沒有作用。但使用者將因?yàn)檫@個(gè) URL 沒有被封鎖而陷于危險(xiǎn)當(dāng)中。事實(shí)上,TDL4 便運(yùn)用了信息隱藏術(shù)。
直接將 shellcode 本身加密,或許更讓研究人員頭痛。因?yàn)椋f一解密的程序代碼是內(nèi)建在惡意下載程序當(dāng)中,那么,在取得惡意下載程序的樣本之前,研究人員將無法分析 shellcode。
ZBOT 就運(yùn)用到這項(xiàng)技巧。ZBOT 會將組態(tài)設(shè)定文件加密,而且研究人員唯有配合對應(yīng)的二進(jìn)制文件才有辦法正確進(jìn)行分析。
狀況 2:服務(wù)器端會檢查連上它的使用者 IP 位址或地點(diǎn),并且視不同地點(diǎn)傳回不同的惡意文件。如果受感染的使用者位于中國,但分析人員在美國,那么二者所拿到的 shellcode 就可能有所不同。一旦分析端與感染端的結(jié)果有異,那就很難清除使用者的感染。
狀況 3:客戶已經(jīng)遭到感染,但相關(guān)的 URL 卻已無法連上。威脅分析師可能會不曉得使用者遇到什么狀況,因?yàn)橐呀?jīng)無法取得當(dāng)初的 shellcode。這類惡意下載程序很可能會讓我們完全摸不著頭緒。
當(dāng)然,這類情況也并非完全無解,只是難度更高。而且,下載的二進(jìn)制程序代碼“并未”儲存成實(shí)體文件,也增加了問題的挑戰(zhàn)性。不過,藉由信譽(yù)評等和云端技術(shù),這樣的情況還是能夠改善。