章瑞康,周 娟,袁 軍,李文瑾,顧杜娟
(綠盟科技集團(tuán)股份有限公司,北京100089)
隨著網(wǎng)絡(luò)環(huán)境日趨復(fù)雜,越來(lái)越多的惡意軟件混合使用不同的技術(shù),已經(jīng)發(fā)展成為影響網(wǎng)絡(luò)安全極為常見(jiàn)和嚴(yán)重的威脅之一。如惡意軟件“Stuxnet ”因?yàn)槟軌驅(qū)I(yè)基礎(chǔ)設(shè)施造成巨大破壞引起了黑客的廣泛關(guān)注,與此同時(shí)也有相當(dāng)數(shù)量的“Stuxnet ”被發(fā)現(xiàn)通過(guò)使用不同的技術(shù)來(lái)持續(xù)性攻擊特定類型的網(wǎng)絡(luò)和基礎(chǔ)設(shè)施[1];根據(jù)綠盟科技發(fā)布的網(wǎng)絡(luò)安全觀察報(bào)告,以“GandCrab ” 勒索軟件家族為例,其背后組織在一年半時(shí)間內(nèi)非法獲取20 億美元,攻擊者通過(guò)暗網(wǎng)對(duì)“GandCrab ” 勒索軟件僵尸網(wǎng)絡(luò)進(jìn)行管理面板,從而保持長(zhǎng)時(shí)間匿名,并使用多種方式傳播,包括漏洞利用工具包、釣魚郵件、木馬程序。如今有許多惡意軟件使用多種攻擊技術(shù)和載體,具有高隱蔽性、持久化和規(guī)避傳統(tǒng)防御的特性[2]。
惡意軟件的復(fù)雜程度越高,對(duì)安全分析人員所需要的技術(shù)和知識(shí)水平要求就越高,惡意軟件分析需要一系列的方法和技術(shù)來(lái)進(jìn)行,挖掘惡意軟件的威脅和意圖、識(shí)別所利用漏洞和確定攻擊來(lái)源等,這一系列分析幫助安全運(yùn)維人員做出應(yīng)急響應(yīng)和防御措施。如圖1 所示,目前關(guān)于惡意軟件的檢測(cè)分析方法主要有人工分析、動(dòng)態(tài)行為分析和惡意代碼分析,惡意代碼分析又分為靜態(tài)分析和動(dòng)態(tài)分析[3]。靜態(tài)分析方法旨在提取惡意軟件代碼塊、strings 、控制流、函數(shù)調(diào)用等特征進(jìn)行分析[4]。動(dòng)態(tài)分析使用沙箱監(jiān)控惡意軟件在運(yùn)行過(guò)程中產(chǎn)生的行為數(shù)據(jù),如API 調(diào)用序列、進(jìn)程調(diào)用、文件操作、網(wǎng)絡(luò)通信等信息[5]。由于動(dòng)態(tài)行為之間存在關(guān)聯(lián)性,有研究工作對(duì)其構(gòu)建動(dòng)態(tài)圖,使用圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)惡意軟件的特征表示,利用機(jī)器學(xué)習(xí)進(jìn)行惡意/ 非惡意二分類或惡意軟件家族分類[6-8]。
圖1 惡意軟件分析技術(shù)
任何一種分析工具都有缺陷,例如靜態(tài)分析過(guò)程中,對(duì)惡意軟件的二進(jìn)制代碼進(jìn)行反匯編會(huì)產(chǎn)生不明確的結(jié)果;使用沙箱在虛擬化環(huán)境中監(jiān)控惡意軟件的動(dòng)態(tài)行為,如對(duì)受感染主機(jī)的文件修改、與外部控制服務(wù)器的通信等,借助沙箱完成自動(dòng)化分析盡管可以節(jié)省人力資源和時(shí)間成本,但這并不是一個(gè)惡意軟件的全面化解決方案,沙箱環(huán)境和實(shí)際環(huán)境存在差異,惡意軟件在沙箱中可能具備規(guī)避檢測(cè)的能力,盡管沙箱幫助安全分析員獲取惡意軟件產(chǎn)生的動(dòng)態(tài)行為數(shù)據(jù),但從惡意軟件的行為數(shù)據(jù)上判斷潛在的家族或攻擊組織需要分析人員掌握大量的經(jīng)驗(yàn)知識(shí)。所以使用單個(gè)或少數(shù)幾種分析工具不足以應(yīng)對(duì)復(fù)雜惡意軟件所帶來(lái)的挑戰(zhàn),系統(tǒng)化的惡意軟件分析顯得十分必要,整合不同的惡意軟件分析結(jié)果將幫助分析人員深入了解惡意軟件的攻擊過(guò)程、攻擊意圖和產(chǎn)生的威脅。相關(guān)研究中,賈焰等人提出了一種構(gòu)建網(wǎng)絡(luò)安全知識(shí)圖譜的實(shí)用方法,以漏洞知識(shí)為核心與網(wǎng)絡(luò)資產(chǎn)和攻擊事件相關(guān)聯(lián),但沒(méi)有具體對(duì)惡意軟件進(jìn)行分析建模[9];Xiao 等人將惡意軟件在運(yùn)行時(shí)調(diào)用的API 構(gòu)建為惡意軟件行為的有向無(wú)環(huán)圖,抽取出API 序列并通過(guò)SAE深度學(xué)習(xí)模型進(jìn)行編碼,最后通過(guò)機(jī)器學(xué)習(xí)分類器預(yù)測(cè)惡意軟件家族[6],該方法僅考慮惡意軟件的API序列,并且隨著惡意軟件的發(fā)展變種等情況,分類器的性能也會(huì)顯著降低。
因此,本文設(shè)計(jì)了一種系統(tǒng)化的惡意軟件關(guān)聯(lián)分析方法SimMal,它集成了惡意軟件的動(dòng)態(tài)及靜態(tài)分析數(shù)據(jù),并融合安全專家的知識(shí)數(shù)據(jù)構(gòu)建以惡意軟件為核心的異質(zhì)網(wǎng)絡(luò)信息圖(以下簡(jiǎn)稱異構(gòu)圖),安全分析人員通過(guò)在線圖展示可以清晰地觀察惡意軟件攻擊過(guò)程中產(chǎn)生的數(shù)據(jù)外聯(lián)、惡意荷載C2服務(wù)器、攻擊目標(biāo)等基礎(chǔ)信息,以及其使用的攻擊技術(shù)和利用漏洞等安全知識(shí)。為了挖掘惡意軟件家族,通過(guò)抽取離散特征構(gòu)建機(jī)器學(xué)習(xí)分類器的方式泛化性和可解釋性不足,不能直觀獲取相同家族惡意軟件的關(guān)聯(lián)關(guān)系,并難以對(duì)未知家族的惡意軟件準(zhǔn)確判斷。因此本文還設(shè)計(jì)了一種基于metapath2vec 改進(jìn)的異構(gòu)圖表示學(xué)習(xí)方法,計(jì)算惡意軟件間的相似共性,篩選出高度相似樣本輔助安全研究員分析,從而理清惡意軟件關(guān)聯(lián)脈絡(luò),挖掘背后的惡意軟件家族和APT 組織,達(dá)到攻擊溯源的目的。
惡意軟件的靜態(tài)分析或動(dòng)態(tài)行為分析產(chǎn)生了大量的離散型數(shù)據(jù),比如惡意代碼的字符串特征、網(wǎng)絡(luò)流量、進(jìn)程執(zhí)行命令等,在信息安全領(lǐng)域中,存在許多通用的網(wǎng)絡(luò)安全知識(shí),比如CVE (Common Vulnerabilities and Exposures) 漏洞庫(kù);ATT&CK 攻擊技術(shù)矩陣;公開(kāi)的APT 研究報(bào)告也記錄了APT 組織所使用的攻擊工具、惡意軟件和攻擊流程等信息。這些不同類型的數(shù)據(jù)存在關(guān)聯(lián),傳統(tǒng)的惡意軟件分析通常是從惡意軟件個(gè)體本身的角度出發(fā),去分析自身的屬性,很少?gòu)膫€(gè)體關(guān)聯(lián)關(guān)系的角度去分析惡意軟件攻擊場(chǎng)景,從而難以準(zhǔn)確地挖掘出潛在的攻擊載體和組織。而圖計(jì)算和基于圖的認(rèn)知分析彌補(bǔ)了這方面的不足,它可以充分表達(dá)事物的聯(lián)系和依賴屬性,將這些數(shù)據(jù)融合為異構(gòu)圖,從關(guān)聯(lián)性角度分析惡意軟件[10]。
SimMal 系統(tǒng)將惡意軟件的動(dòng)/ 靜態(tài)分析數(shù)據(jù)和外部補(bǔ)充的安全知識(shí)數(shù)據(jù)根據(jù)一定模式抽取轉(zhuǎn)換為異構(gòu)圖的形式存儲(chǔ),并支持多類型數(shù)據(jù)的查詢及關(guān)聯(lián),清晰展開(kāi)惡意軟件與其他類型數(shù)據(jù)的關(guān)聯(lián)并支持?jǐn)U展從而進(jìn)行深度挖掘;圖計(jì)算分析能夠自動(dòng)計(jì)算惡意軟件之間的相似性,支持靜態(tài)屬性相似計(jì)算和動(dòng)態(tài)行為數(shù)據(jù)相似計(jì)算,協(xié)助安全分析人員進(jìn)行綜合研判。圖2 展示了SimMal 的整體框架,自底向上一共可分為四個(gè)部分,依次為數(shù)據(jù)抽取層、數(shù)據(jù)處理層、數(shù)據(jù)計(jì)算層和可視化關(guān)聯(lián)分析層。
圖2 SimMal 系統(tǒng)框架圖
如圖2 所示,數(shù)據(jù)抽取層收集了惡意軟件的動(dòng)靜態(tài)特征數(shù)據(jù)和安全知識(shí)數(shù)據(jù),這些海量的多源異構(gòu)數(shù)據(jù)輸入到數(shù)據(jù)處理層后分為了結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),針對(duì)如APT 分析報(bào)告這種非結(jié)構(gòu)化文本數(shù)據(jù),SimMal 采取了正則匹配和自然語(yǔ)言處理技術(shù)(實(shí)體識(shí)別和關(guān)系抽取) 來(lái)識(shí)別文本中的惡意軟件、APT 組織、IOC 等關(guān)鍵字[9],依據(jù)實(shí)體唯一值(如惡意軟件md5、IP 地址值等) 融合以上多源數(shù)據(jù)包含的實(shí)體并建立實(shí)體之間的聯(lián)系。
SimMal 基于惡意軟件本體模型將融合后的數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)統(tǒng)一的圖數(shù)據(jù),并在圖數(shù)據(jù)庫(kù)HugeGraph中持久化存儲(chǔ)。本體是一種知識(shí)表示方法,它旨在建立一個(gè)面向具體應(yīng)用領(lǐng)域的模型,明確領(lǐng)域內(nèi)的概念、術(shù)語(yǔ)及相互關(guān)系。本研究參考MAEC(Malware Attribute Enumeration and Characterization) 惡意軟件描述語(yǔ)言和STIX(Structured Threat Information Expression)結(jié)構(gòu)化威脅情報(bào)表達(dá)語(yǔ)言[11],設(shè)計(jì)了以惡意軟件為核心的本體結(jié)構(gòu),如圖3 所示。惡意軟件本體模型中包含多種類型實(shí)體,如Ssdeep 模糊哈希算法計(jì)算的文件hash 值;基于規(guī)則抽取的惡意軟件行為從而關(guān)聯(lián)到ATT&CK 攻擊技術(shù);虛線框中列舉了惡意軟件的動(dòng)態(tài)特征如通信Domain 和IP 地址、關(guān)聯(lián)URL等;APT 分析報(bào)告中解析出的觀測(cè)數(shù)據(jù)與惡意軟件特征進(jìn)行對(duì)應(yīng)關(guān)聯(lián),形成包含惡意軟件、威脅情報(bào)和安全知識(shí)的本體模型。通過(guò)惡意軟件本體模型可以擴(kuò)展出多種類型數(shù)據(jù)的關(guān)聯(lián),如APT 威脅組織使用過(guò)的惡意軟件及其常用的攻擊技術(shù),同一家族的惡意軟件的高頻特征。
圖3 惡意軟件本體結(jié)構(gòu)
數(shù)據(jù)計(jì)算層提供惡意軟件相似性計(jì)算服務(wù),包括Ssdeep 相似性計(jì)算和w-metapath2vec 異構(gòu)圖相似計(jì)算。其中Ssdeep 是一種構(gòu)建哈希散列特征碼的技術(shù),基于文本的分片哈希算法計(jì)算惡意代碼的特征值。Ssdeep 值可以用來(lái)識(shí)別已知文件的修改版本,即使在新的文件中插入或修改數(shù)據(jù)[12]。Ssdeep 相似性計(jì)算從靜態(tài)特征維度上提供相似關(guān)聯(lián),輔助研究人員分析惡意軟件之間是否存在變種關(guān)系。
基于w-metapath2vec 的異構(gòu)圖計(jì)算從惡意軟件的動(dòng)態(tài)行為數(shù)據(jù)角度,將圖上的節(jié)點(diǎn)轉(zhuǎn)換為向量的形式,通過(guò)比較向量的相似度來(lái)判斷惡意軟件之間的關(guān)聯(lián)性。metapath2vec 是一種可解釋性強(qiáng)的模型,它基于元路徑(metapath) 并根據(jù)Skip-gram模型學(xué)習(xí)異構(gòu)圖的表示[13],由于在惡意軟件分析中不同的動(dòng)態(tài)特征重要性和稀疏度不一,本文提出了帶權(quán)重的metapath2vec 算法模型w -metapath2vec,提高了惡意軟件向量表達(dá)能力和相似性計(jì)算結(jié)果的可信度。SimMal 計(jì)算模塊從靜態(tài)分析和動(dòng)態(tài)分析維度協(xié)助安全分析人員展開(kāi)關(guān)聯(lián)分析,進(jìn)一步地通過(guò)對(duì)比與有惡意軟件家族或APT 組織標(biāo)簽的樣本的相似性做出綜合研判。
在可視化關(guān)聯(lián)分析層,分析人員查詢某惡意軟件時(shí),SimMal 自動(dòng)推薦出與待查詢惡意軟件相似的其他惡意軟件,包括了Ssdeep 相似和異構(gòu)圖相似兩種模式,并支持一鍵展開(kāi)待查惡意軟件與推薦相似惡意軟件之間的關(guān)聯(lián)情況,驅(qū)動(dòng)惡意軟件研究人員的分析能力。
在上億節(jié)點(diǎn)數(shù)量級(jí)的惡意軟件異構(gòu)圖中,僅靠安全分析人員手動(dòng)地下鉆關(guān)聯(lián)分析難以挖掘出背后潛在的攻擊載體和攻擊技術(shù),導(dǎo)致不能及時(shí)分析出惡意威脅和給出相應(yīng)的緩解措施,Ssdeep 相似計(jì)算從單一的靜態(tài)特征維度判斷惡意軟件與惡意代碼文本相似性,無(wú)法從攻擊技術(shù)、網(wǎng)絡(luò)通信等動(dòng)態(tài)行為上進(jìn)行分析。為了高效并準(zhǔn)確地計(jì)算惡意軟件在動(dòng)態(tài)特征上的相似性,SimMal 異構(gòu)圖計(jì)算框架提出帶權(quán)重metapath2vec 模型(w-metapath2vec),基于安全分析專家設(shè)定的關(guān)聯(lián)元路徑學(xué)習(xí)圖的特征表達(dá),具有較強(qiáng)的可解釋性。
圖4 展示了異構(gòu)圖計(jì)算框架,主要包括特征構(gòu)圖模塊、metapath 構(gòu)建模塊、w -metapath2vec 計(jì)算模塊和數(shù)據(jù)應(yīng)用模塊。
圖4 異構(gòu)圖計(jì)算框架
在領(lǐng)域知識(shí)圖譜中,通常需要根據(jù)領(lǐng)域?qū)<医?jīng)驗(yàn)來(lái)設(shè)計(jì)節(jié)點(diǎn)間的關(guān)聯(lián)模式,隨機(jī)游走/跳躍的節(jié)點(diǎn)關(guān)聯(lián)容易造成有歧義不具備相關(guān)性的表達(dá)。
元路徑metapath 作為一種表達(dá)源實(shí)體和目標(biāo)實(shí)體間復(fù)合關(guān)系的形式,基于元路徑隨機(jī)游走的策略可以確保不同類型的節(jié)點(diǎn)語(yǔ)義關(guān)系被恰當(dāng)輸入到Skip -gram 模型[14],從而有效保留異構(gòu)圖的結(jié)構(gòu)和語(yǔ)義相關(guān)信息。w-metapath2vec 設(shè)定多種元路徑,首先在給定一種元路徑模式下進(jìn)行隨機(jī)游走,將自然語(yǔ)言文本中的上下文概念映射到異構(gòu)圖中,從而學(xué)習(xí)異構(gòu)圖中的節(jié)點(diǎn)特征[13],最后根據(jù)預(yù)定義的權(quán)重結(jié)合不同路徑下的節(jié)點(diǎn)表示。
元路徑metapath 定義如下:
其中,Ri代表了不同類型節(jié)點(diǎn)Vi和Vi+1之間的關(guān)系,L 表示該元路徑長(zhǎng)度。一個(gè)為了表示惡意軟件相關(guān)性的典型示例是M →P →M,表示的是兩個(gè)惡意軟件(M) 之間創(chuàng)建了相同的進(jìn)程(P),可以通過(guò)進(jìn)程節(jié)點(diǎn)在異構(gòu)圖中關(guān)聯(lián)起來(lái)。SimMal 結(jié)合了惡意軟件分析人員的專家經(jīng)驗(yàn),共定義了10 種有意義的元路徑模式來(lái)表示惡意軟件相關(guān)性,表1 列舉了部分元路徑。
表1 惡意軟件metapath
不同的元路徑從不同的角度來(lái)衡量惡意軟件之間的相關(guān)性,惡意軟件在通信上的關(guān)聯(lián)首先可以通過(guò)一跳元路徑M →D →M 學(xué)習(xí),其中D (Domain)表示通信域名;由于域名和IP 存在解析關(guān)系,由路徑M→D→I→M可以更深度地挖掘惡意軟件在通信上的關(guān)聯(lián);元路徑M→B→Te→B→M從惡意行為(B:Behavior,Te;Technique)角度,表示不同惡意軟件的行為屬于同一種ATT&CK 技術(shù)。圖5 為metapath 示例。
圖5 metapath 示例
在metapath 指引下,隨機(jī)游走必須按照節(jié)點(diǎn)類型選擇下一跳,其概率轉(zhuǎn)移公式如下:
給定一條metapath,將會(huì)生成節(jié)點(diǎn)在該路徑下的表示向量,安全專家共定義了10 種不同元路徑模式,使用多視角融合算法來(lái)結(jié)合不同元路徑下的節(jié)點(diǎn)表示,假設(shè)給定n種元路徑模式,通過(guò)metapath2vec訓(xùn)練后,每個(gè)節(jié)點(diǎn)都會(huì)產(chǎn)生n種向量表示,最終的向量表示為:
其中,wi表示在第i條元路徑下向量表示的Veci的權(quán)重(i=1,…,10),權(quán)重wi由惡意軟件分析專家根據(jù)關(guān)聯(lián)重要性定義,比如當(dāng)互斥體類型的節(jié)點(diǎn)共現(xiàn)頻率高,即使性質(zhì)不同的惡意軟件在互斥體節(jié)點(diǎn)上也能呈現(xiàn)強(qiáng)關(guān)聯(lián)性,那么與互斥體相關(guān)的元路徑權(quán)重則相對(duì)較低。
w -metapath2vec 模型能夠計(jì)算出異構(gòu)圖中每個(gè)惡意軟件的綜合表示向量,通過(guò)計(jì)算表示向量之間的余弦相似度可以得到任意兩個(gè)惡意軟件之間的相似性。在數(shù)據(jù)應(yīng)用層中,根據(jù)相似度的值進(jìn)行排序,得到每個(gè)惡意軟件TOP-K個(gè)相似的其他惡意軟件。
數(shù)據(jù)應(yīng)用層以關(guān)聯(lián)性分析為基礎(chǔ),同時(shí)結(jié)合Ssdeep靜態(tài)特征的對(duì)比分析,輔助安全分析人員進(jìn)行綜合研判。在每天數(shù)以萬(wàn)計(jì)的惡意樣本數(shù)據(jù)中,SimMal統(tǒng)計(jì)出有惡意家族和APT 威脅組織標(biāo)簽的樣本集合,通過(guò)計(jì)算與新增樣本間的相似度來(lái)篩選出若干個(gè)疑似存在攻擊來(lái)源的惡意軟件并提供給惡意軟件分析人員,極大提高了惡意軟件分析的效率。
本節(jié)進(jìn)行了惡意軟件家族分類實(shí)驗(yàn),通過(guò)對(duì)比其他圖表示學(xué)習(xí)算法的實(shí)驗(yàn)結(jié)果說(shuō)明了w -metapath2vec 算法模型的有效性;另外本節(jié)列舉了具體的關(guān)聯(lián)分析案例,以安全分析人員的視角來(lái)使用Sim-Mal 系統(tǒng),說(shuō)明了SimMal 在輔助分析時(shí)的作用。
在惡意軟件家族分類實(shí)驗(yàn)中,本文抽取了來(lái)自9個(gè)惡意軟件家族共計(jì)47839個(gè)惡意軟件實(shí)例,具體統(tǒng)計(jì)數(shù)據(jù)見(jiàn)表2 。
表2 惡意軟件家族分類數(shù)據(jù)集
使用w-metapath2vec 模型對(duì)4 萬(wàn)多個(gè)惡意軟件實(shí)體進(jìn)行相似度計(jì)算,對(duì)每一個(gè)惡意軟件實(shí)例,取其TOP -K(K=1,3,5) 即相似分?jǐn)?shù)排名為前1,3,5的其他惡意軟件構(gòu)建集合,若第TOP -K惡意軟件的家族與當(dāng)前惡意軟件家族相同,標(biāo)記為正,否則為負(fù)。本文進(jìn)行了5 輪測(cè)試,其中每一輪測(cè)試隨機(jī)從4 萬(wàn)多個(gè)惡意軟件實(shí)體中抽取1000個(gè)樣本作為測(cè)試集,最后將平均準(zhǔn)確率作為TOP -K的結(jié)果,如表3 所示。
表3 惡意軟件家族分類結(jié)果
從表3 可以看出,在w-metapath2vec 計(jì)算模型下,所有TOP -K的惡意軟件家族分類準(zhǔn)確率均超過(guò)95%,其中TOP -1 相似計(jì)算準(zhǔn)確率可高達(dá)97.9%,隨著TOP-K增大,準(zhǔn)確率呈下降趨勢(shì)。
另外在惡意軟件家族分類實(shí)驗(yàn)中,本文比較了其他圖表示學(xué)習(xí)模型:DeepWalk[15]和metapath2vec 。DeepWalk 為同質(zhì)圖表示學(xué)習(xí)模型,將不同類型的節(jié)點(diǎn)都轉(zhuǎn)換為統(tǒng)一類型,生成同質(zhì)圖后基于DeepWalk策略隨機(jī)游走并向量化;metapath2vec 模型中不考慮多視角元路徑,直接基于所有元路徑模式進(jìn)行序列采樣。表4 列舉了不同模型下惡意軟件家族分類的TOP-K 平均準(zhǔn)確率,可以發(fā)現(xiàn)w -metapath2vec 模型在所有TOP -K 中準(zhǔn)確率都超過(guò)了其他兩個(gè)模型,說(shuō)明w-metapath2vec 融合了不同場(chǎng)景下的惡意軟件相似性并納入專家經(jīng)驗(yàn)設(shè)置權(quán)重,可以更好地學(xué)習(xí)惡意軟件節(jié)點(diǎn)表示,提高了家族分類的準(zhǔn)確率。
表4 不同模型惡意軟件家族分類結(jié)果
SimMal 系統(tǒng)協(xié)助安全分析人員從關(guān)聯(lián)分析角度挖掘惡意軟件之間的相關(guān)性,針對(duì)日增的惡意軟件數(shù)據(jù),SimMal 提出的異構(gòu)圖學(xué)習(xí)算法支持動(dòng)態(tài)更新計(jì)算日增數(shù)據(jù)與帶家族標(biāo)簽和APT 威脅組織標(biāo)簽惡意軟件的相似度,篩選出相似度較高的惡意軟件,反饋給安全分析人員展開(kāi)分析。
針對(duì)現(xiàn)網(wǎng)中的真實(shí)惡意軟件數(shù)據(jù),以2021年2月某一天的惡意軟件數(shù)據(jù)為例,SimMal 發(fā)現(xiàn)在新增的惡意軟件數(shù)據(jù)中,惡意軟件84eeb5f5f8c04aab49fc-8e3b02912d4b(惡意軟件md5) 和46ada7d6ad61e06705-05ba8bd1752d46 與有家族標(biāo)簽和APT 標(biāo)簽的惡意軟件3503df1647988-0fdf484ace875ff3588(名稱LODCTR.EXE)具備多種共性,如圖6 所示,新增惡意軟件與LODCTR.EXE 之間在創(chuàng)建文件、通信IP 、創(chuàng)建進(jìn)程和攻擊行為等方面存在強(qiáng)關(guān)聯(lián)性。
圖6 關(guān)聯(lián)分析案例
安全分析人員對(duì)上述三個(gè)惡意軟件進(jìn)行分析判定,發(fā)現(xiàn)新增的惡意軟件84eeb5f5f8c04aab49fc8 -e3b02912d4b 和46ada7d6ad61e0670505ba8bd1752d46 與LODCTR.EXE 惡意軟件都屬于ramnit 蠕蟲家族,新增的兩個(gè)惡意軟件原始文件是phoenix winphlash 工具程序,被ramnit 蠕蟲家族感染后,在運(yùn)行過(guò)程中創(chuàng)建名為DesktopLayer.exe 的可執(zhí)行文件,并調(diào)用IE 瀏覽器,訪問(wèn)ramnit 蠕蟲的C2 服務(wù)器fget - career.com,期間會(huì)創(chuàng)建大量臨時(shí)文件,因此在圖關(guān)聯(lián)上會(huì)展示出進(jìn)程、通信IP 和文件三個(gè)維度的強(qiáng)關(guān)聯(lián),研究人員的分析驗(yàn)證了異構(gòu)圖計(jì)算惡意軟件相似度的有效性。
Ssdeep 靜態(tài)特征關(guān)聯(lián)信息也幫助研究人員分析判斷惡意軟件之間是否存在變種等情況,例如SimMal發(fā)現(xiàn)惡意軟件202ea51fdc798076c0ab7f29a90d3619 和惡意軟件d05c0e74105255e91bd0f508da7d48e3 在Ssdeep特征值上相同,在異構(gòu)圖上行為和通信維度相似,經(jīng)分析發(fā)現(xiàn)兩者關(guān)聯(lián)同一篇APT 分析報(bào)告[16],屬于變種關(guān)系。
本文提出的SimMal 系統(tǒng)以惡意軟件為核心,融合多源異構(gòu)數(shù)據(jù)建立惡意軟件網(wǎng)絡(luò)異構(gòu)圖,將離散的惡意軟件檢測(cè)數(shù)據(jù)整合到全面的可關(guān)聯(lián)擴(kuò)展數(shù)據(jù),獲取惡意軟件利用漏洞信息、使用的攻擊技術(shù)以及通信數(shù)據(jù)等,相當(dāng)于給惡意軟件進(jìn)行畫像,能清晰地展示并剖析惡意軟件,同時(shí)安全研究人員可以在知識(shí)圖譜中手動(dòng)下鉆關(guān)聯(lián)分析,提高研究人員對(duì)惡意軟件的認(rèn)知能力。
SimMal 系統(tǒng)利用了異構(gòu)圖關(guān)聯(lián)表示的優(yōu)勢(shì),提出的w-metapath2vec 帶權(quán)多視角圖表示學(xué)習(xí)模型充分挖掘異構(gòu)圖的語(yǔ)義和結(jié)構(gòu)特征,相比DeepWalk 和metapath2vec 能更好學(xué)習(xí)到惡意軟件節(jié)點(diǎn)的表示,在惡意軟件家族分類的對(duì)比實(shí)驗(yàn)中充分說(shuō)明了該模型的有效性。基于惡意軟件的圖表示向量和Ssdeep值,SimMal 對(duì)惡意軟件進(jìn)行相似度計(jì)算來(lái)找出具備多種共性的惡意軟件,從圖的關(guān)聯(lián)性角度輔助研究人員分析與惡意軟件存在動(dòng)/ 靜態(tài)特征一致的其他惡意軟件實(shí)體,包括惡意軟件和惡意軟件家族等,還可通過(guò)分析惡意軟件的行為及使用工具與APT組織的行為及使用工具之間的關(guān)聯(lián)性來(lái)判斷攻擊者信息,從而挖掘惡意軟件潛在的攻擊載體和組織。
使用沙箱惡意軟件檢測(cè)或是使用其他機(jī)器學(xué)習(xí)算法對(duì)惡意軟件進(jìn)行分類可以獲取惡意軟件離散的信息,而SimMal 系統(tǒng)整合惡意軟件離散信息并融合安全領(lǐng)域知識(shí),有效地支持安全研究人員的深入分析,極大提高了人工分析效率。另外SimMal系統(tǒng)也存在一些不足之處,比如在異構(gòu)圖計(jì)算框架中,w-metpath2vec 模型對(duì)每條元路徑的權(quán)重設(shè)計(jì)完全依賴于專家經(jīng)驗(yàn),導(dǎo)致可擴(kuò)展性不足。為彌補(bǔ)這一不足,考慮通過(guò)計(jì)算不同模式下向量間的距離來(lái)計(jì)算權(quán)重值,希望在未來(lái)的研究工作中得以實(shí)現(xiàn)并與人工設(shè)置的權(quán)重進(jìn)行對(duì)比分析。