?

基于本體的惡意軟件檢測方法

2023-10-22 08:00高一鵬黃永忠
桂林電子科技大學學報 2023年3期
關鍵詞:調用本體家族

高一鵬,黃永忠

(桂林電子科技大學 廣西密碼學與信息安全重點實驗室,廣西 桂林 541004)

互聯網技術的高速發展在帶給人們無限便利的同時也帶來了巨大的危機。惡意軟件就是這些危機中主要的威脅。隨著代碼混淆技術的發展和使用以及各種惡意軟件變種的大量繁衍,惡意軟件被檢測出的難度也不斷升高,基于傳統的惡意軟件分析技術在與混淆技術帶來的惡意軟件變種數量爆炸式增長的對抗中也顯得十分乏力。騰訊安全發布的《2019 年度企業安全報告》顯示,2019 年平均每周有40%的企業遭到病毒攻擊,近8 成企業終端還存在高危漏洞未修復,其中風險木馬類、后門類、感染性病毒是三大主要威脅。

風險木馬軟件在病毒攻擊事件中占比最高,達44%,后門遠控類木馬以21%占比緊隨其后。騰訊安全威脅情報中心數據顯示,2019 年平均每周約有40%的企業發生過終端木馬感染事件。該報告指出,2019 年勒索病毒、挖礦木馬持續傳播,高危漏洞頻繁爆出,信息泄露事件頻發。

Experimental result 本體的概念源于哲學,可用來定義相關領域知識的基本概念,其具有的機器可理解和人類可理解的性質使其成為語義網中重要的一層,近些年其理論在許多領域內都展現出很多用途。Shoaib 等[1]提出了一個對用戶興趣建模的本體來檢測垃圾郵件。Syed 等[2]總結其他研究者設計的本體,構建了一個覆蓋許多相關概念的信息安全領域本體。Wang 等[3]將本體與動靜態特征相結合,對手機惡意代碼進行檢測。

目前,OWL 語言在W3C 的推動下已成為使用最廣泛的本體語言,斯坦福大學團隊開發的Protégé 是一個很好用的構建本體的工具,Jena API 可有效地進行本體推理工作[4]。Bounouh 等[5]采用靜態的字符串信息、注冊表、進程及網絡行為信息構建模型來對惡意代碼分類。Ghorbani 等[6]認為樣本運行過程中的網絡流量是判斷惡意代碼的重要信息,并將沙箱記錄的pcap 文件進行分析,提取其中的一代關系構成圖,并用圖的統計數據信息為特征訓練分類器。Shibahara 等[7]將樣本運行過程中的網絡行為抽象為序列,用神經網絡訓練分類模型,關注的特征同樣是系統調用、文件操作、注冊表操作和網絡連接信息等,但其動態分析收集樣本的過程非常耗時、耗資源。Damodarn 等[8]用靜態、動態特征相結合的方式構建隱馬爾科夫模型,分別將兩者用于檢測,發現惡意代碼編寫者在設計惡意代碼時很難同時考慮避免多方面的檢測。

本體中對于概念類的層次結構設計一般遵循現實世界的類型關系,按照現實世界中類與類的從屬關系建立概念,本體中惡意代碼類別的建模也基于類別層次進行設計。Xia 等[9]構建了一種基于本體的惡意軟件檢測系統來分析惡意軟件的動態行為,然后從惡意軟件知識、惡意軟件行為和系統組件三方面提取領域概念,并通過關聯挖掘算法獲取惡意軟件家族的常見行為,根據常見行為設計家族規則集。Jiao 等[10]提出了一種新的惡意軟件意圖描述和推導模型,通過將本體語言表示的SWRL 規則導入jess 引擎中,得到惡意軟件意圖描述的輸出。Grégio 等[11]提出了MBO,應用其構建的推理規則分析惡意軟件每個行為的威脅級別,并根據惡意代碼六大類行為提出一個惡意代碼本體結構。Navarro 等[12]設計了一種基于隨機森林的方法,可以使用本體映射惡意軟件中分析的元素,并從本體映射中自動提取有用信息。Ding 等[13]設計了一種提取屬于同一惡意代碼家族個體共同行為方法,并將Apriori 算法用于提取惡意軟件家族的共同行為中。Han 等[14]通過從pro 獲取動態系統調用信息來分析APT 惡意軟件的行為特征,構建了APT 惡意軟件典型惡意行為的知識框架,建立了APT 惡意軟件典型惡意行為的知識表示,從而實現了APT 惡意軟件的知識表示。Cheng 等[15]提出了CuF,通過一種新穎的、基于家族依賴圖的方法分析惡意軟件家族的特征。此方法可以識別惡意軟件家族的新變種。Dam 等[16]采用基于子樹的Weisfeiler-Lehman 圖核檢測惡意軟件。Alrawi 等[17]將內存取證和符號分析集成在一個反饋回路中,以有效利用API 調用上下文聯系的關系探測惡意軟件。唐成華等[18]提出一種基于多類本體的軟件語義描述生成方法,通過軟件類圖和相關行為信息生成軟件基于本體簡單語義描述,然后根據軟件行為信息使用知識提取合并算法從惡意軟件行為本體和惡意軟件領域本體中提取相關知識,生成完整的軟件語義描述本體。溫巖松[19]構建惡意軟件知識庫,對惡意軟件技術進行了技術總結歸類,明確惡意軟件知識結構,提出了一個應用于知識圖譜領域的描述規范模型,即惡意軟件知識模型,并對Cuckoo 沙箱優化提出了方案。

鑒于此,提出一種基于家族依賴圖的惡意軟件檢測方法,并將其應用到惡意軟件領域本體中。與從一個實例中提取特征的方法不同,將惡意軟件家族的不同變體特征通過圖聚類方法聚類到各個家族圖中,并且與只通過API 依賴構建每個惡意代碼家族的特征圖的方法不同,構建的特征圖不僅包括程序調用的API,還包括API 相應的操作對象及網絡層面上的信息。與以往方法相比,本方法構建的特征圖所承載的信息量更多、更具體,且具有如下優點:

1)有效性:對惡意代碼檢測分類能做到低誤報,精確分類。

2)魯棒性:應對各種攻擊策略和規避檢測時具備魯棒性。

3)可擴展性:針對未出現的惡意代碼家族和新變種可以持續添加其特征行為。

1 基于家族依賴圖的惡意軟件檢測方法

Cuckoo 沙箱是一種先進的、高度模塊化的開源自動化惡意軟件分析系統,能夠在Windows、Linux、MacOS 和Android 虛擬環境下分析許多種不同的惡意軟件及惡意網站。它基于虛擬技術實時地執行和監視二進制文件,能夠跟蹤API 調用和文件的一般行為,并將其提煉成易理解的高級信息和簽名,且具備分析網絡流量和內存轉儲的功能。

1.1 惡意軟件特征圖

在惡意軟件行為中,能夠有效代表其意圖特點的行為主要是惡意軟件在運行過程中的API 調用、DLL 模塊調用、系統調用、文件和注冊表的操作以及網絡活動等與操作系統的主要交互行為。因此,通過分析經過Cuckoo 沙箱得到的報告report.json 來構建家族依賴圖。report.json 是Cuckoo 的行為信息捕獲模塊的輸出文件。一份report.json 文件通常包括info、procmemory、target、extracted、network、signatures、static、dropper、behavior、debug、screenshots、strings、metadata。而分析用到的模塊主要是target、network 和behavior。

定義1惡意軟件特征圖g=(N,E),其中:N為節點集,由API 函數名、API 參數、IP 和端口、DLL 模塊、文件和注冊表位置等構成;E為邊集,包括API與API 參數之間的調用關系及網絡流量的傳輸,每條邊都代表一個特征行為。

1.2 家族特征圖

定義1 只描述了一個惡意軟件實例,不能代表同一惡意軟件家族中的其他實例。為了檢測惡意軟件家族中的新變種,需將同一惡意軟件家族中的所有特征圖通過圖聚類到一個公共特征圖中,代表了整個家族的特征。

設G為一組n個同一惡意軟件家族中的變種,為了對這些圖進行聚類,使用現有的圖聚類方法[20],并使用最小公共超圖、最大公共子圖2 個定義。

對于一個圖集合里的最小公共超圖,當且僅當包括了這組圖集合中所有的節點和邊,稱其為這個圖集合的最小公共超圖:

當存在圖gi(Ni,Ei)和gj(Nj,Ej)時,若存在g屬于gi的同時也屬于gj,則稱g是圖gi和gj的公共子圖;若不存在其他公共子圖的頂點數大于g的頂點數,則稱g是圖gi和gj的最大公共子圖。

其中:i、j表示2 個不同的惡意代碼樣本所構成的特征行為圖;gWMinCs(i,j)表示圖i、j的加權最小公共超圖;gwmcs(i,j)表示圖i、j的最大公共子圖。g-gwmcs(i,j)和h-gwmcs(i,j)分別表示在惡意代碼特征圖i、j里除去圖i、j所形成的最大公共子圖后的剩余部分。

對于一組n個同一惡意軟件家族中的惡意代碼特征圖,其對應的加權最小公共超圖構成方法為:初始化加權最小公共超圖WMinCs,遍歷這n個特征圖內的所有邊,并添加到WMinCs 中,一條邊被重復遍歷的次數為該邊的權值。這里僅考慮邊的權值,遍歷完成后,所有邊的權值除以n進行歸一化,獲得每條邊在加權最小公共超圖中的權重值,再根據 的值刪除小于閾值的邊,最后剩余的邊構成θ了加權最θ小公共超圖。

1.3 系統架構

系統架構如圖1 所示,首先對訓練集中的已知惡意軟件家族在配置好的Cuckoo 沙箱中運行后得到的結果報告進行特征提取,生成對應的特征行為圖后再對生成的特征行為圖以圖聚類的方法生成各個家族的特征行為圖,最后用該方法對在測試集上生成的特征行為圖與每個惡意軟件家族特征行為圖作比較,實現惡意軟件分類功能。

圖1 系統架構

1.4 惡意軟件本體構建與檢測規則

用OWL 語言對惡意軟件本體進行構建。構造惡意軟件本體結構,包括操作系統對象之間的調用關系(Relation)、惡意軟件個體(Sample)及其描述以及惡意軟件家族及其描述(Malware),如圖2 所示。

圖2 惡意軟件本體框架

通過OWL 語言構造惡意軟件樣本,可分為以下3 步:1) 初始化本體文件,構建惡意軟件本體領域,操作系統調用模塊Relation、惡意軟件家族模塊Malware 和惡意軟件個體模塊;2) 在Malware 模塊中為每類家族加入其公共特征行為,當加入的公共特征行為不屬于Relation 模塊時,先將這條特征行為加入Relation 模塊后,再加入家族特征行為中;3) 對每個惡意軟件個體添加其特征行為,同時對添加的特征行為是否屬于Relation 模塊進行判斷,若不存在,則先加入Relation 模塊中,再添加到個體特征行為中。

圖2 中Equivalent to 之下表示該惡意代碼backdoor 家族的特征行為,根據backdoor 特征行為圖中每2 個節點形成的邊考慮邊的方向,并對節點進行編號。根據3 種匹配規則對惡意樣本進行分類,以5 個家族為例,分別為downloader、dropper、spy、backdoor 和worm.net。

規則15 個家族對應的最大公共超圖分別為G1、G2、G3、G4、G5,而G2~G1 表示存在于G2 中的所有G1 的邊被刪除,

在對新惡意變種進行檢測時,評判其是否屬于backdoor 家族的標準為是否匹配到Rule1(backdoor)中的特征行為。

規則2通過加權最小公共超圖構建匹配公式:

其中:W為被檢測樣本的特征行為圖g與加權最小公共超圖G之間邊匹配的個數;min(|G|,|g|)為被檢測樣本特征行為圖g與G邊數較少的邊的數量;?為規則2的匹配率,其值介于0 到1 之間。檢測新樣本是否屬于該家族的判別標準為該家族的匹配率? 是否為最高。

規則3被檢測樣本的特征行為圖gnew與每個家庭特征圖進行比較,滿足

G為最大公共超圖。

檢測未知惡意樣本是否屬于一類惡意軟件家族的條件需同時滿足以上3 種規則。以Backdoor 家族為例,惡意代碼分類策略如表1 所示。

表1 惡意代碼分類策略

2 實驗及結果分析

基于開源軟件Cuckoo 對惡意樣本進行動態分析,在Virtualbox 上使用雙重虛擬化,宿主機使用Ubuntu 安裝Cuckoo,并在宿主機中使用虛擬機嵌套的方式,加裝Virtualbox 搭建虛擬機Windows 7 用來運行提交的PE 可執行文件。惡意代碼樣本主要是從github上的2 個開源項目theZoo、Malware 上獲得,該項目同時提供了搜索、下載、上傳惡意軟件的功能,其訓練集樣本家族分類主要通過https://www.virustotoal.com/gui/home/upload 獲取。以5 個家族為例,從每類惡意代碼家族中,隨機抽取50 個作為訓練樣本集,30個作為測試集,惡意樣本數據集如表2 所示。

表2 惡意樣本數據集

對Cuckoo 產生的分析報告report.json 進行特征提取,讀取target、network 和behavior 中每個進程的特征字段,其中包含了該進程所調用的API 和其參數值,惡意代碼在執行過程中創建、刪除、下載的文件及網絡流量。對于API 和其最重要參數,被設置為特征圖中的2 個節點。如NtOpenKey,其arguments 模塊包含了參數"key_handle"、"desired_access"和"regkey",具體如下:

選擇其中API 對應為NtOpenKey,rekey 對應為HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\GRE_Initialize 構成特征行為圖的節點,并將這2 條節點形成的邊加入Relation 特征行為類中。對于網絡行為,同一家族很少對網絡行為代碼有較大改動,因此,根據數據流五元組,按照IP 和端口相結合的信息構成特征行為圖里的節點,并將其邊加入Relation 特征行為類中。記載的能夠反饋特征的Windows API 約150 個,每個家族特征提取后,將其特征行為添加到對應家族屬性中,通過運行Protégé推理機并結合圖匹配的方式得到結果。本次實驗結果采用以下幾個參數:分類正確惡意代碼數A;誤分類的惡意代碼數B;未被分類出來的惡意代碼數C;惡意樣本總數D;惡意代碼召回率R=A/(A+C);惡意代碼的精度P=A/(A+B);惡意代碼誤分類T=B/D。

實驗結果如表3 所示。使用CuF[15]中的圖匹配方法在構建好的家族特征行為圖上對惡意軟件分類。此實驗在相同的訓練集和測試集中進行,CuF 圖匹配結果如表4 所示。

表3 實驗結果 %

表4 CuF 圖匹配結果 %

從表3、4 可看出,在使用相同數據集的條件下,無論是精度還是召回率,本方法都比其他方法有更好的效果,同時也降低了惡意軟件的誤分類率。

3 結束語

基于圖的分析是基于API 調用的惡意軟件分析方法之一,而現有的基于圖的惡意軟件分析方法的局限性在于有些只是從單個樣本中生成圖,而非對來自同一惡意軟件家族的圖進行聚類;而有些是基于API的依賴圖方法構成的家族聚類,其聚類圖僅由API 依賴關系構成,對于惡意軟件的網絡行為、文件操作等不能在聚類圖中表達出來。相比較而言,本方法通過構建惡意軟件本體,刻畫出的惡意軟件特征行為圖更為具體,不僅包含API 的調用信息,還能反映出惡意軟件的文件操作、網絡行為、注冊表行為,提高了惡意軟件的檢測精度,同時針對未出現的惡意軟件家族和新變種,可繼續通過Cuckoo 沙箱動態分析,提取特征行為,并將其加入家族特征圖中,擁有可擴展性。未來計劃搭建惡意軟件知識圖譜,并構建惡意軟件的行為畫像,為網絡攻擊態勢感知提供技術支持,并應用到其他平臺上。

猜你喜歡
調用本體家族
Abstracts and Key Words
HK家族崛起
核電項目物項調用管理的應用研究
《小偷家族》
LabWindows/CVI下基于ActiveX技術的Excel調用
皿字家族
家族中的十大至尊寶
基于系統調用的惡意軟件檢測技術研究
《我應該感到自豪才對》的本體性教學內容及啟示
專題
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合