新聞中心
在過(guò)去的幾個(gè)月中,checkpoint公司的漏洞和惡意軟件研究團(tuán)隊(duì)共同專(zhuān)注于對(duì)惡意軟件內(nèi)部的漏洞利用,尤其是漏洞利用開(kāi)發(fā)者本身的研究。本文會(huì)從一個(gè)事件響應(yīng)示例開(kāi)始,構(gòu)建一個(gè)最全面的Windows開(kāi)發(fā)者分析,本文研究人員將這些黑客統(tǒng)稱(chēng)為“Volodya”或“BuggiCorp”。有研究人員發(fā)現(xiàn)黑客Volodya是零日漏洞最多產(chǎn)的供應(yīng)商之一,Volodya也被稱(chēng)為BuggiCorp??ò退够?015年以來(lái)一直在跟蹤Volodya,他是一個(gè)多產(chǎn)的開(kāi)發(fā)者和零日漏洞賣(mài)家。Volodya是“volo”的縮寫(xiě),這個(gè)昵稱(chēng)經(jīng)常出現(xiàn)在他的開(kāi)發(fā)一些惡意軟件中,根據(jù)追蹤分析,他很有可能是烏克蘭人。

定制制作可以根據(jù)自己的需求進(jìn)行定制,網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)構(gòu)思過(guò)程中功能建設(shè)理應(yīng)排到主要部位公司網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義
另外Volodya似乎是CVE-2019-0859漏洞的開(kāi)發(fā)者,這個(gè)漏洞被網(wǎng)絡(luò)犯罪集團(tuán)用于金融盜竊。Volodya開(kāi)發(fā)的另一個(gè)漏洞CVE-2016-7255,曾被著名的俄羅斯APT組織FancyBear(也稱(chēng)為APT28、PawnStorm、Sednit、Sofacy或Strontium)使用??ò退够难芯咳藛T表示,黑客還與中低端網(wǎng)絡(luò)犯罪組織合作,這些組織一直在購(gòu)買(mǎi)和使用零日漏洞。除了零日漏洞之外,Volodya還在開(kāi)發(fā)針對(duì)修復(fù)程序的漏洞。
到目前為止,研究人員設(shè)法跟蹤了他們Windows內(nèi)核本地特權(quán)升級(jí)(LPE)漏洞中的10多個(gè)(!),其中許多漏洞在開(kāi)發(fā)時(shí)為零天。
事件響應(yīng)示例
本文會(huì)從一個(gè)事件響應(yīng)示例開(kāi)始,在分析針對(duì)研究人員的一個(gè)客戶的復(fù)雜攻擊時(shí),研究人員注意到該惡意軟件執(zhí)行了一個(gè)很小的64位可執(zhí)行文件。該示例包含不尋常的調(diào)試字符串,這些調(diào)試字符串指向試圖利用受害者計(jì)算機(jī)上的漏洞嘗試。更重要的是,該示例具有一個(gè)剩余的PDB路徑,該路徑明確地聲明并刪除了此二進(jìn)制文件的目標(biāo):...\cve-2019-0859\x64\Release\CmdTest.pdb。由于CVE-2019-0859實(shí)現(xiàn)缺少任何在線資源,我這意味著研究人員看到的不是一個(gè)公開(kāi)可用的PoC,而是一個(gè)真實(shí)的開(kāi)發(fā)工具,這激發(fā)了研究人員深入研究的興趣。
CVE-2019-0859是一個(gè)CreateWindowEx函數(shù)中的UAF(Use-After-Free)漏洞。成功利用此漏洞的攻擊者可以在內(nèi)核模式下運(yùn)行任意代碼。然后攻擊者可以安裝程序;查看,更改或刪除數(shù)據(jù);或創(chuàng)建具有完全用戶權(quán)限的新帳戶。要利用此漏洞,攻擊者首先必須登錄系統(tǒng)。然后,攻擊者可以運(yùn)行可以利用此漏洞并控制受影響系統(tǒng)的特制應(yīng)用程序。
對(duì)這個(gè)漏洞進(jìn)行逆向工程非常簡(jiǎn)單,二進(jìn)制文件很小,并且還能找到調(diào)試消息。它利用CreateWindowEx中的UAF漏洞來(lái)獲取對(duì)父進(jìn)程的提升特權(quán)。研究人員很快做出了一個(gè)有趣的觀察:看來(lái)該漏洞利用程序和惡意軟件本身的開(kāi)發(fā)者不是同一個(gè)人編寫(xiě)的。代碼質(zhì)量、缺乏混淆、PDB和時(shí)間戳都表明了這一結(jié)論。
在Cutter中可以看到對(duì)CreateWindowEx的調(diào)用
惡意軟件開(kāi)發(fā)者的套路
研究人員傾向于將特定惡意軟件家族背后的開(kāi)發(fā)者視為一個(gè)完整的整體,這樣就可以想象每個(gè)組件都是由其中一個(gè)人、一個(gè)團(tuán)隊(duì)或一個(gè)小組編寫(xiě)的。事實(shí)上,高級(jí)一點(diǎn)的惡意軟件,都涉及具有不同技能的不同人員。特別是由國(guó)家組織開(kāi)發(fā)的黑客軟件可能涉及不同的團(tuán)體和分支機(jī)構(gòu)的數(shù)百甚至數(shù)千名員工。組織中的每個(gè)人員都有特定的角色,并經(jīng)過(guò)特殊的技術(shù)培訓(xùn)和多年的專(zhuān)業(yè)知識(shí)積累。在這樣的組織中,編寫(xiě)通用組件的工作量在專(zhuān)業(yè)團(tuán)隊(duì)之間分解,由不同的團(tuán)隊(duì)負(fù)責(zé)初始訪問(wèn),收集敏感數(shù)據(jù),橫向傳播等。
旨在將漏洞利用模塊嵌入其惡意軟件中的運(yùn)營(yíng)對(duì)象不能僅依靠惡意軟件開(kāi)發(fā)者,找到漏洞并可靠地利用漏洞,最有可能由專(zhuān)門(mén)從事特定角色的特定團(tuán)隊(duì)或個(gè)人完成。就其本身而言,惡意軟件開(kāi)發(fā)者并不在乎它在后臺(tái)如何工作,他們只想集成此模塊并完成它即可。
為了實(shí)現(xiàn)這種分工,兩個(gè)團(tuán)隊(duì)需要就某種API達(dá)成一致,該API將成為不同組件之間的橋梁。這種集成API并不是國(guó)家所開(kāi)發(fā)的黑客軟件所獨(dú)有的,而是自由市場(chǎng)中常見(jiàn)的特性。無(wú)論它涉及地下論壇,漏洞利用經(jīng)紀(jì)人,還是網(wǎng)絡(luò)公司,它們都向客戶提供有關(guān)如何將漏洞利用方法集成到其惡意軟件中的說(shuō)明。
從本質(zhì)上講,這一整合點(diǎn)是研究人員在研究中要重點(diǎn)關(guān)注的關(guān)鍵方面。假設(shè)攻擊開(kāi)發(fā)者是獨(dú)立工作的,并且只將他們的代碼/二進(jìn)制模塊傳播給惡意軟件開(kāi)發(fā)者,研究人員決定對(duì)他們進(jìn)行改變。通過(guò)分析嵌入在惡意軟件示例中的漏洞,研究人員可以了解更多關(guān)于漏洞開(kāi)發(fā)者的信息,希望通過(guò)研究他們的編碼習(xí)慣和在他們的開(kāi)發(fā)過(guò)程中留下的其他內(nèi)容作為線索來(lái)識(shí)別他們。
識(shí)別開(kāi)發(fā)者的線索
研究人員沒(méi)有關(guān)注整個(gè)惡意軟件并尋找惡意軟件家族或攻擊者的新示例,而是想提供另一種視角,并決定將重點(diǎn)放在由開(kāi)發(fā)人員編寫(xiě)的這些函數(shù)上,從事件響應(yīng)示例中獲得這個(gè)小的64位二進(jìn)制文件看起來(lái)是一個(gè)有不錯(cuò)的開(kāi)始。
該二進(jìn)制文件除了利用CVE-2019-0859之外沒(méi)有任何作用,并且不基于公開(kāi)共享的源代碼或POC。它是研究人員進(jìn)行線索識(shí)別的一個(gè)很好的選擇,因?yàn)榭蓤?zhí)行文件是從其他人編寫(xiě)的代碼中提煉出來(lái)的,而不是漏洞開(kāi)發(fā)者。此外,可執(zhí)行文件與惡意軟件(一種臭名昭著的犯罪軟件)的主二進(jìn)制文件是分開(kāi)的,這讓研究人員相信這個(gè)漏洞不是惡意軟件開(kāi)發(fā)者自己開(kāi)發(fā)的。根據(jù)這個(gè)線索,研究人員開(kāi)始尋找同一開(kāi)發(fā)者開(kāi)發(fā)的更多惡意軟件。
研究人員首先從已有的二進(jìn)制文件中收集簡(jiǎn)單的工件:字符串、內(nèi)部文件名、時(shí)間戳和PDB路徑。第一個(gè)結(jié)果立即出現(xiàn)——一個(gè)與64位示例完全匹配的32位可執(zhí)行文件。具體來(lái)說(shuō),正如它們的時(shí)間戳和嵌入的PDB路徑所示,它們是同時(shí)從相同的源代碼編譯在一起的?,F(xiàn)在研究人員有了這兩個(gè)示例,就能夠確定研究人員應(yīng)該尋找什么線索了。
為了確定這個(gè)漏洞的開(kāi)發(fā)者,研究人員將注意以下的線索:
1. 二進(jìn)制文件中的獨(dú)特工件:
- 硬編碼值(加密常數(shù),“垃圾”值,例如0x11223344);
- 數(shù)據(jù)表(通常是特定于版本的配置);
- 字符串(GDI對(duì)象名稱(chēng):“MyWindow”,“MyClass_56”,“findme1”等);
- PDB路徑;
2. 代碼段
(1) 獨(dú)特的函數(shù)實(shí)現(xiàn):
- Syscall包裝器;
- 內(nèi)聯(lián)組裝;
- 專(zhuān)有加密函數(shù)/實(shí)現(xiàn);
(2) 技術(shù)和習(xí)慣:
- 首選的泄漏技術(shù)(HMValidateHandle,gSharedInfo等);
- 首選提升技術(shù)(令牌替換是如何執(zhí)行的?);
- 堆噴涂技術(shù)(使用AcceleratorTables?Windows?Bitmaps?)
(3) 框架
漏洞利用的進(jìn)程:
- 選項(xiàng)#1:幾乎沒(méi)有分支的主要開(kāi)發(fā)進(jìn)程;
- 選項(xiàng)#2:針對(duì)不同版本的操作系統(tǒng)的多重扭曲和旋鈕;
(4) 代碼的結(jié)構(gòu)及其中的函數(shù):
- 模塊化:函數(shù)分離;
- 結(jié)構(gòu):分離出刪除階段(初始化,配置,噴涂,令牌交換等);
- 全局變量:哪些信息存儲(chǔ)在全局變量中?(操作系統(tǒng)版本?操作系統(tǒng)版本枚舉?只是特定的字段偏移量?)
(5) 特定于版本的配置:
- 字段偏移量:哪些字段特別重要?
- 首選系統(tǒng)調(diào)用:首選系統(tǒng)調(diào)用集
(6) 提供給客戶的API
研究人員將尋找與利用漏洞相關(guān)的工件集
考慮到這些屬性,研究人員回顧了研究人員擁有的兩個(gè)示例,并標(biāo)記了一些研究人員認(rèn)為獨(dú)特的工件。即使研究人員只有兩個(gè)小的二進(jìn)制文件(本質(zhì)上是相同的),研究人員仍然能夠創(chuàng)建搜尋規(guī)則來(lái)查找該開(kāi)發(fā)者編寫(xiě)的更多示例。令研究人員驚訝的是,研究人員能夠找到比想象中更多的開(kāi)發(fā)線索。
順著這個(gè)邏輯,一個(gè)接一個(gè)最后總共發(fā)現(xiàn)了幾十個(gè)示例,并且每個(gè)示例都改進(jìn)了研究人員的搜索規(guī)則和方法。通過(guò)對(duì)示例的仔細(xì)分析,研究人員能夠了解哪些示例利用了哪個(gè)CVE,并以此為基礎(chǔ)創(chuàng)建了時(shí)間表,以了解該漏洞是在暴露之前寫(xiě)為零日漏洞,一日漏洞還是基于修復(fù)程序擴(kuò)散和類(lèi)似技術(shù)實(shí)現(xiàn)的。
到目前為止,僅基于研究人員的線索識(shí)別技術(shù),而沒(méi)有進(jìn)一步的情報(bào),可以將10多個(gè)CVE來(lái)自于同一個(gè)漏洞利用開(kāi)發(fā)者。后來(lái),公開(kāi)報(bào)道披露了研究人員的目標(biāo)漏洞利用銷(xiāo)售者的名稱(chēng):Volodya(又名Volodimir),以前稱(chēng)為BuggiCorp。似乎研究人員并不是唯一追蹤此漏洞利用者的人,因?yàn)榭ò退够啻螆?bào)告了有關(guān)他們的一些相關(guān)信息。此外,ESET在其VB2019關(guān)于Buhtrap的演講中還提到了Volodya的一些重要線索。
根據(jù)卡巴斯基的說(shuō)法,Volodya最初以其“BuggiCorp”綽號(hào)被人所熟知,當(dāng)時(shí)他們?cè)诔裘阎腅xploit[.]in網(wǎng)絡(luò)犯罪論壇上宣傳了Windows零日漏洞的待售廣告,起價(jià)為95000美元。多年來(lái),價(jià)格上漲,他們的某些WindowsLPE零日漏洞利用軟件的售價(jià)高達(dá)20萬(wàn)美元。正如卡巴斯基報(bào)告中所發(fā)表的,后來(lái)得到研究人員的確認(rèn),Volodya將漏洞利用軟件賣(mài)給了犯罪軟件和APT團(tuán)體。
漏洞分類(lèi)
盡管研究人員的一些最初的搜索規(guī)則需要進(jìn)行一些微調(diào),甚至我們收到的即時(shí)結(jié)果也是相當(dāng)令人吃驚的。經(jīng)過(guò)進(jìn)一步的搜索方法改正后,研究人員又設(shè)法找到了許多示例,所有示例都是Windows中的本地特權(quán)升級(jí)(LPE)漏洞。在這些示例中,研究人員能夠確定攻擊者所利用的以下CVE列表。
另外,在對(duì)漏洞進(jìn)行分類(lèi)的過(guò)程中,研究人員選擇了一種保守的方法來(lái)判斷一個(gè)給定的漏洞是在零日漏洞還是一日漏洞。如果其他安全供應(yīng)商認(rèn)為只是野外利用,那么它就是零日漏洞。如果研究人員找到足夠的證據(jù),證明研究人員的一個(gè)樣本確實(shí)是在野外傳播的利用,就像一個(gè)供應(yīng)商在他們的報(bào)告中描述的那樣,那么研究人員也標(biāo)記它,除此之外都標(biāo)記為一日漏洞。
下一篇文章我們來(lái)具體講講具體的漏洞。
網(wǎng)站欄目:以Volodya惡意組織為例談一談如何通過(guò)查找惡意開(kāi)發(fā)者的線索來(lái)尋找漏洞(上)
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/cdidscj.html


咨詢
建站咨詢
