隧道戰(zhàn):使用生成式模型暴露DNS隧道活動- CoinLoader案例研究
嚴(yán)格來說,生成式人工智能已經(jīng)存在了近十年,但最近這項(xiàng)技術(shù)的蓬勃發(fā)展激發(fā)了人們應(yīng)用它來尋找潛在信息安全挑戰(zhàn)的新興趣。要想找到這些挑戰(zhàn),就必須進(jìn)行“大海撈針式”的搜索,而這其中包括每天都會涌入網(wǎng)絡(luò)的全新二進(jìn)制文件、文檔、域名和其他工件,任務(wù)的艱巨性可想而知。
在本文中,我們將深入介紹Check Point正用于開展“大海撈針式”搜索的一種生成式AI模型,該模型已被證實(shí)能夠成功阻止濫用DNS協(xié)議與C&C服務(wù)器通信的惡意活動。下面將以CoinLoader活動為例,展示其基礎(chǔ)設(shè)施以及對其DNS隧道功能的深入技術(shù)分析。
DNS隧道解析
什么是DNS?
域名服務(wù)器(DNS)協(xié)議可以被看作“互聯(lián)網(wǎng)的電話簿”。當(dāng)用戶在瀏覽器的地址欄中輸入一個(gè)網(wǎng)站地址(比如wikipedia.org)并按回車鍵時(shí),其瀏覽器會向它最喜歡的DNS服務(wù)器發(fā)送一個(gè)DNS請求,詢問哪些IP地址與該域名對應(yīng)。此默認(rèn)DNS服務(wù)器的IP地址可以由用戶的網(wǎng)絡(luò)提供商提供,也可以由用戶手動指定。
在后端,典型的DNS查詢在UDP協(xié)議上運(yùn)行。一個(gè)DNS數(shù)據(jù)包,無論是查詢還是響應(yīng),均由一個(gè)包頭和4個(gè)主要部分組成:
- 問題或查詢列表——例如,“什么域名?你想要什么樣的回答?”
- 記錄列表——對問題的回答;
- 權(quán)威服務(wù)器列表——關(guān)于負(fù)責(zé)跟蹤域地址的服務(wù)器的信息;
- 附加信息列表——其他數(shù)據(jù),如授權(quán)服務(wù)器的IP地址。
DNS隧道運(yùn)行原理
“DNS隧道”技術(shù)已經(jīng)存在了很多年,它是一種濫用DNS的實(shí)踐,將DNS用作惡意軟件與其C&C服務(wù)器之間的秘密通信通道。在這種情況下,惡意參與者將能同時(shí)控制客戶端和服務(wù)器,從而在執(zhí)行哪種查詢以及在何處隱藏響應(yīng)的“敏感”部分方面獲得很大的回旋余地。
然而,參與者選擇的方案本質(zhì)上受制于DNS協(xié)議本身的限制。例如:
- 請求和響應(yīng)的長度是有限的。查找的整個(gè)域不能超過255字節(jié),DNS數(shù)據(jù)包的最大長度為576字節(jié)。
- DNS協(xié)議自適應(yīng)緩存。服務(wù)器記錄一小時(shí)前發(fā)送的響應(yīng),當(dāng)被請求時(shí),只需重復(fù)該響應(yīng),而不是一路跑到權(quán)威服務(wù)器并質(zhì)詢“一小時(shí)前的回答仍然有效嗎?”這對于DNS的合法用戶來說很好,但對于DNS隧道客戶端來說就不太好了,因?yàn)樗鼈兺ǔG笾诓樵冊S多虛構(gòu)的子域(maliciousdomain. xyz,然后是48bd9a577d114.maliciousdomain. xyz等等)以保持查詢的新鮮感。
如果這一切聽起來太過理論化,那么以一個(gè)眾所周知的利用DNS隧道的惡意軟件SUNBURST為例,作為2020年SolarWinds黑客攻擊的一部分,它被傳遞給了毫無戒心的受害者。SUNBURST使用DNS查詢作為輕量偵察通道,秘密傳輸作為標(biāo)識符加密的受害者信息,然后將其用作DNS查詢中的子域。此子域名被附加到四個(gè)主要域名之一:
- appsync-api.us-east-1[.]avsvmcloud[.]com
- appsync-api.us-east-2[.]avsvmcloud[.]com
- appsync-api.eu-west-1[.]avsvmcloud[.]com
- appsync-api.us-west-2[.]avsvmcloud[.]com
例如,生成的虛擬FQDN看起來像這樣:
7cbtailjomqle1pjvr2d32i2voe60ce2[.]appsync-api[.]us-east-1[.]avsvmcloud[.]com
基于通過DNS請求傳輸?shù)男畔?,DNS服務(wù)器將向感興趣的目標(biāo)返回CNAME記錄。CNAME將指向通過HTTPS與惡意軟件通信的C&C服務(wù)器。
引入DeepDNS
為了更好地解析DNS隧道和惡意網(wǎng)絡(luò)流量,Check Point于今年引入了DeepDNS,這是一種人工神經(jīng)網(wǎng)絡(luò),可以搜索和阻止濫用DNS的活動。DeepDNS是一種門控循環(huán)單元自動編碼器(Gated Recurrent Unit Autoencoder,GRU-AE),基于Check Point常規(guī)可用的大量DNS流量訓(xùn)練而成。DeepDNS得出的結(jié)論也會自動推送到Check Point ThreatCloud。
為了加深了解,下面將對“門控循環(huán)單元自動編碼器”進(jìn)行簡單解釋。
首先,自動編碼器是一種人工神經(jīng)網(wǎng)絡(luò),也就是說,它是一個(gè)虛擬的大腦,生命始于一張白紙。在訓(xùn)練階段,給它一個(gè)輸入,然后觀察輸出,之后用微積分來確定大腦參數(shù)的變化,使輸出更理想,然后進(jìn)行應(yīng)用。這個(gè)過程不斷重復(fù),直到虛擬大腦的實(shí)際輸出與期望的輸出完全相似。
【人工神經(jīng)網(wǎng)絡(luò)(ANN)示意圖】
人工神經(jīng)網(wǎng)絡(luò)具有學(xué)習(xí)各種函數(shù)的驚人能力(這甚至在理論上得到了證明)。其中一個(gè)函數(shù)就是“將此文本映射到一些簡短的表示(代碼),然后將代碼更改回文本,以便最終文本盡可能地與初始文本相似”。被訓(xùn)練來學(xué)習(xí)這種函數(shù)的神經(jīng)網(wǎng)絡(luò)被稱為“自動編碼器”。自動編碼器可以作為生成式模型:以某種方式在代碼空間中獲得一個(gè)新點(diǎn)(通過隨機(jī)選擇或只是將一些已知點(diǎn)混合在一起),如果模型已經(jīng)學(xué)習(xí)了數(shù)據(jù)的良好表示,那么解碼這個(gè)點(diǎn)將產(chǎn)生新的文本。
【自動編碼器的結(jié)構(gòu)示意圖】
自動編碼器的另一個(gè)相關(guān)用例是異常檢測。應(yīng)用一些數(shù)學(xué)直覺將使您得出這樣的結(jié)論:“典型”輸入將被自動編碼器壓縮和重構(gòu),并且相對成功,而“非典型”輸入的壓縮和重構(gòu)更有可能引入錯誤。這基本上是出于同樣的原因,如果我說“敏捷的棕色狐貍跳過了懶惰的狗”,然后五分鐘后讓你重復(fù)這句話,你可能會成功,但對于“深奧的紫色鴨嘴獸迷惑了多產(chǎn)的獵豹”來說,情況就不一樣了。
DeepDNS的工作原理與此相同。通過深入檢查子域名,這些子域名被進(jìn)一步分解成更小的組成部分,它使用它學(xué)會的編碼-解碼過程來對簡單的問題——如“這組查詢看起來有多正常?”——做出判斷。如果重構(gòu)完全失敗,DeepDNS就會得出結(jié)論,認(rèn)為答案“不夠正?!保l(fā)出惡意判決。如果忽略訓(xùn)練模型涉及一堆偏導(dǎo)數(shù)的部分,那么這種方法的簡單性是毋庸置疑的。
挖出并深入研究CoinLoader DNS隧道
既然我們已經(jīng)大致了解了理論部分,現(xiàn)在是時(shí)候付諸實(shí)踐了。了解了DeepDNS在黑匣子層面的工作原理(甚至是它的一些內(nèi)部工作原理),很自然地就引出了一個(gè)問題:如果我們讓它在可用的遙測中搜索異常情況,它能找到什么?Check Point研究人員對此進(jìn)行了實(shí)踐,并在樣本上運(yùn)行了DeepDNS。在它標(biāo)記為異常的許多結(jié)果中,研究人員注意到了一組前所未知的域名集群:
- rqmetrixsdn[.]info
- candatamsnsdn[.]info
- mapdatamsnsdn[.]info
仔細(xì)觀察與這些域名相連的基礎(chǔ)設(shè)施,可以發(fā)現(xiàn)它們是用于CoinLoader感染的DNS備份通道的一部分。
Coinloader樣本包含以下幾個(gè)文件,雖然名稱各不相同,但或多或少地代表了每個(gè)示例的文件結(jié)構(gòu)。
【CoinLoader文件結(jié)構(gòu)】
可執(zhí)行文件(圖像中的ZD_1.4.24.17)始終是用于DLL附帶加載的合法工具。主要的惡意邏輯在側(cè)加載的DLL中(這里是AppleVersions.dll)。加載后,它要經(jīng)歷幾層解包,包括一個(gè)很好地混淆了的檢查,檢查它的父進(jìn)程是從Z-1-36-81目錄(同樣,目錄名稱因樣本而異)中啟動的,該目錄隱藏在一些復(fù)雜的控制流結(jié)構(gòu)中。
【CoinLoader執(zhí)行流程】
一旦解包完成,惡意邏輯就可見了。最后階段仍然包含一些反分析特性,例如花指令(junk code,主要用于干擾);使用簡單的替換密碼實(shí)時(shí)解密的加密堆棧字符串;以及使用自制函數(shù)表解析的間接調(diào)用,其中寄存器(register)指向傳遞給ecx中每個(gè)函數(shù)的內(nèi)容。然后每次將其復(fù)制到一個(gè)隨機(jī)寄存器,該寄存器用于實(shí)現(xiàn)調(diào)用。
【花指令(junk code)用作反分析】
【混淆堆棧字符串】
【使用自制函數(shù)表的間接調(diào)用】
雖然研究人員很好地忽略了junk code,并且通過動態(tài)執(zhí)行代碼和觀察解碼器輸出很好地處理了混淆的字符串,但是在IDA數(shù)據(jù)庫中解析函數(shù)調(diào)用需要專門的腳本。
其中一個(gè)樣本產(chǎn)生的流量捕獲似乎大有所獲:
【在CoinLoader執(zhí)行中捕獲的數(shù)據(jù)包】
所以我們開始對這個(gè)特性進(jìn)行了技術(shù)分析。
函數(shù)get_c2_domain接收一個(gè)枚舉參數(shù)(這里在寄存器edx中傳遞)。值0、1、2和3分別導(dǎo)致函數(shù)解密并返回每個(gè)惡意軟件的硬編碼C&C域名——在本例中是rqmetrixa.info、rqmetrixb.info、rqmetrixc.info、rqmetrixd.info。
【“get c2”函數(shù)的不同反饋結(jié)果】
最后,如果此enum值等于4(上面注釋為GET_DOMAIN_DNS_TUNNEL_BACKUP),那么惡意軟件會訴諸備份計(jì)劃,并試圖通過與一個(gè)不同的服務(wù)器(rqmetrixsdn.info)協(xié)商,通過TXT DNS隧道查詢獲得域名,如流量捕獲中所示。
【DNS TXT查詢】
FQDN是通過獲取一個(gè)硬編碼域并在其前面加上hexlify(md5,時(shí)間戳)來創(chuàng)建的。在下圖中,我們將其顯示為一個(gè)代碼塊,用于過濾掉垃圾指令。
時(shí)間戳md5使用SystemFileToFileTime獲得(然后使用額外的WinAPI函數(shù)轉(zhuǎn)換為時(shí)間戳)。一旦服務(wù)器響應(yīng),它的響應(yīng)將被饋送到一個(gè)內(nèi)聯(lián)BASE64解碼器。結(jié)果被解釋為要check in的C&C域,類似于我們前面提到的SUNBURST設(shè)置。check in格式是string_decoder去混淆處理程序的輸出,如下所示。
【C&C check in的結(jié)構(gòu)】
結(jié)語
DNS隧道是一種可能被稱之為“老派”的技術(shù)。它起源于第一個(gè)防火墻的出現(xiàn)所創(chuàng)造的安全環(huán)境,以及簡單邊界的繪制:誰發(fā)起了連接?與誰?在哪個(gè)端口?使用什么協(xié)議?因此,允許或拒絕。從那以后,這個(gè)行業(yè)已經(jīng)有了很大的變化,DNS隧道的好處已經(jīng)變得不那么明確了。但與此同時(shí),攻擊者開始使用各種技術(shù)(如隱寫術(shù)和加密)來改進(jìn)他們對如何使用HTTP有效通信和隱藏的理解。
不過,DNS隧道顯然還沒有消亡。攻擊者認(rèn)為這種技術(shù)值得一試,現(xiàn)代惡意軟件也并不羞于從事這種實(shí)踐。作為防御者,我們自然會對如何在行動中捕獲它感興趣。在這篇文章中,我們解釋了如何將DNS隧道建模為異常,并從不尋常的角度尋找它們——正如DeepDNS所演示的那樣。這次搜索讓我們找到了一些證據(jù),表明目前仍有很多人在使用這種技術(shù),包括國家支持的網(wǎng)絡(luò)犯罪分子,甚至黑客活動分子。
作為一個(gè)例子,我們對一個(gè)Coinlander樣本及其隧道協(xié)議進(jìn)行了技術(shù)分析,DeepDNS發(fā)現(xiàn)它存在異常。除了滿足研究目的之外,這也為DeepDNS的能力提供了一個(gè)很好的概念證明。
雖然學(xué)術(shù)界肩負(fù)著推動科學(xué)邊界和證明可能性的重任,但大規(guī)模實(shí)施學(xué)術(shù)理念的任務(wù)往往落在業(yè)界身上,以引導(dǎo)它們沿著“從有希望的白皮書到在混亂的現(xiàn)實(shí)世界中實(shí)踐”的道路前進(jìn)。如今,業(yè)界正在不斷努力將人工神經(jīng)網(wǎng)絡(luò)應(yīng)用于該成熟級別的安全,隨著最近對人工神經(jīng)網(wǎng)絡(luò)及其應(yīng)用的興趣激增,相信未來將有越來越多的人工大腦用于做出現(xiàn)實(shí)世界的安全決策。
原文鏈接:
本文作者:晶顏123, 轉(zhuǎn)載請注明來自FreeBuf.COM