国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于梯度提升決策樹的變形宏病毒檢測①

2021-05-21 07:22位凱志
計算機系統(tǒng)應(yīng)用 2021年5期
關(guān)鍵詞:宏程序字符串決策樹

閆 華,劉 嘉,位凱志,古 亮

1(中國科學(xué)院 深圳先進技術(shù)研究院,深圳 518071)

2(深信服科技股份有限公司,深圳 518071)

高級持續(xù)性威脅(Advanced Persistent Threat,APT)是危害企業(yè)信息安全的主要攻擊形式,也是當(dāng)前網(wǎng)絡(luò)安全布防的重點.其最常見的方式之一是通過魚叉攻擊誘騙受害者打開惡意郵件的Office 附件,并運行其中的宏病毒程序,進而入侵受害者的計算機和網(wǎng)絡(luò).例如,2020年2月,印度APT 組織以新冠肺炎疫情題材的魚叉郵件對我國衛(wèi)生部門和相關(guān)企事業(yè)單位投放宏病毒.可見,宏病毒檢測是抵御APT 攻擊的重要環(huán)節(jié).

傳統(tǒng)反病毒系統(tǒng)對被檢測樣本做靜態(tài)分析,通過查詢病毒數(shù)據(jù)庫的方式檢測病毒[1,2].病毒數(shù)據(jù)庫D=Dhash∪Drule包 含病毒文件哈希庫Dhash和病毒規(guī)則庫Drule,其中病毒規(guī)則r∈Drule是包含通配符和邏輯算子的字符串匹配模式.給定被測樣本 ε,若ε的哈希值dε在病毒哈希庫中(dε∈Dhash),或者ε 符合病毒規(guī)則r∈Drule,則判定ε為病毒[3,4].

變形是病毒繞過反病毒系統(tǒng)的重要手段[1-5].令σP為程序P的語義,變形g通過替換標識符、插入冗余代碼、動態(tài)執(zhí)行字符串和打亂指令順序等方式產(chǎn)生P′=g(P),使得P′≠P且 σP′=σP.

與傳統(tǒng)的Windows PE (Portable Executable)病毒不同,對宏病毒進行變形無需考慮編譯和二進制重寫等因素,因此成本低廉且方式靈活[5,6].例如,通過添加空白字符等簡單修改,即可繞過病毒文件哈希庫Dhash;通過混淆程序的字符串模式等略復(fù)雜的變形,即可繞過病毒規(guī)則庫Drule.宏病毒變形是對傳統(tǒng)病毒檢測方法的挑戰(zhàn).實踐表明,傳統(tǒng)反病毒系統(tǒng)查殺變形宏病毒的效果較差[1,2,4-6].

研究者提出使用機器學(xué)習(xí)的方法,訓(xùn)練模型在高抽象層次上識別變形病毒的不動點,從而檢測變形病毒[5-9].然而,現(xiàn)有方法在特征工程、機器學(xué)習(xí)算法選型、樣本規(guī)模和樣本真實性方面均存在局限性,導(dǎo)致了其在效果方面的不足,限制了其在工業(yè)界的應(yīng)用和推廣.

本文介紹一種基于機器學(xué)習(xí)的變形宏病毒檢測方法──OVD (Obfuscated VBA Detector).與傳統(tǒng)反病毒系統(tǒng)不同,OVD 不依賴文件的哈希值和病毒規(guī)則,而是使用機器學(xué)習(xí)算法訓(xùn)練模型,然后通過模型預(yù)測文件是否為病毒.與現(xiàn)有的基于機器學(xué)習(xí)的方法相比,OVD 在特征工程規(guī)模、特征工程精細度、樣本規(guī)模和樣本真實性等方面優(yōu)于現(xiàn)有工作.在特征工程方面,與現(xiàn)有工作[5-9]不超過20 維的特征工程不同,OVD 采用520 維的細粒度特征工程.在訓(xùn)練集方面,OVD 基于用戶真實場景的海量樣本采集.在性能方面,OVD以輕量級的詞法分析器作為預(yù)分析器,避免對被測文件做重量級的語法分析或語義分析.

在400 萬個樣本上的實驗表明,OVD的召回率和準確率分別為97.34%和99.41%;對比文獻[5]的方法在相同樣本集上的召回率和準確率分別為72.97%和88.87%.在機器學(xué)習(xí)算法選型方面,實驗對比支持向量機[10]、隨機森林[11]、梯度提升決策樹[12]和多層感知機[13].實驗數(shù)據(jù)表明,在大規(guī)模樣本集上,梯度提升決策樹的效果最佳.

1 總體框架

如圖1所示,OVD的總體框架包括訓(xùn)練和查殺兩個階段.在訓(xùn)練階段,首先采集宏病毒樣本,形成文件樣本集 Ω;然后對文件ω ∈Ω按Office 文件的格式標準[14]進行結(jié)構(gòu)化解析,并對其中的宏程序做詞法分析;基于文件解析和詞法分析做特征提取,生成特征向量xω;最后,應(yīng)用機器學(xué)習(xí)訓(xùn)練算法,生成宏病毒模型f.在查殺階段,首先解析被檢測文件ε,并對其宏程序進行詞法分析,進而提取特征向量xε;通過f對xε進行預(yù)測,從而判斷ε是否為變形宏病毒.

圖1 OVD的總體框架

2 梯度提升決策樹

在有監(jiān)督機器學(xué)習(xí)中,一種典型的集成學(xué)習(xí)方法是提升法(boosting)[12].它迭代地將M個弱學(xué)習(xí)器(或基函數(shù))h{1},h{2},···,h{M}∈H集成為一個強學(xué)習(xí)器f;在第i輪迭代向f{i}中集成h{i}時,被在第i-1 (1<i≤M)輪迭代中預(yù)測錯誤的樣本被賦予較高權(quán)重.梯度提升法在訓(xùn)練中使用梯度下降法最小化損失函數(shù),如算法1.

算法1.梯度提升樹算法{(x(i),y(i))}n i=1輸入:數(shù)據(jù)集,假設(shè)空間H,損失函數(shù)L,迭代次數(shù)M,學(xué)習(xí)率v輸出:梯度提升決策樹i=1L(y(i),γ)1f0=argmin γ n∑2 for m∈{1,2,···,M}do:]3 γ{m}(i)=-[?L(y(i),f(x(i)))?f(x(i))f=f{m-1},?i∈{1,2,···,n}(r{m}(i)-h(x(i)))2 4h{m}=argmin h∈H n∑i=1 L(y(i),f{m-1}(x(i))+γh{m}(x(i)))5 γ{m}=argmin γ n∑i=1 f{m}←f{m-1}+νγ{m}h{m}6 return f{m}7

梯度提升決策樹是以決策樹為基函數(shù)的提升法,即限定基函數(shù)的假設(shè)空間H為回歸樹:

其中,T為葉子數(shù)量,ct為在Rt區(qū)域內(nèi)的預(yù)測值.

3 面向變形宏病毒的特征工程

基于病毒專家在大量變形宏病毒樣本上的研究經(jīng)驗,將OVD的特征工程分為若干子任務(wù),如圖2所示.子任務(wù)的劃分依據(jù)病毒專家經(jīng)驗和實驗分析.本章各小節(jié)詳細介紹各子任務(wù)產(chǎn)生的特征與變形病毒屬性之間的相關(guān)性.各子任務(wù)的必要性和特征工程粒度的合理性在實驗中論證(見5.4 節(jié)).OVD的細粒度特征工程是效果驅(qū)動的,僅考慮對區(qū)分變形宏病毒和正常宏程序有貢獻的特征;OVD 不考慮無效特征,例如Office文檔的內(nèi)部目錄結(jié)構(gòu)和文件修改日期等.

圖2 特征工程任務(wù)分解

3.1 標記頻率分析

通過詞法分析,OVD 得到宏程序的標記(token)集合,并統(tǒng)計每種標記的頻率.其意義在于:變形宏病毒較頻繁地使用某些類型的標記,而較少使用其他類型的標記.對標記按類型統(tǒng)計頻率可以為區(qū)分變形宏病毒和正常文件提供重要參考.例如,表示字符串拼接的標記“+”和“&”在變形宏病毒中比較常見,因為字符串拼接是使病毒規(guī)則失效的常用手段.如圖3所示的真實病毒樣本中的宏程序,出現(xiàn)了較多的“+”.再比如,一種常見的變形手段是將惡意代碼隱藏在大量無實際意義的整數(shù)常量計算中.因此,整數(shù)常量的數(shù)量是識別變形宏病毒的有效特征之一.OVD的詞法分析器識別220 種標記,表1列出了幾種對識別變形宏病毒有較大貢獻的標記.OVD 在樣本特征向量中記錄每種標識符的數(shù)量和頻率.

圖3 使用字符串拼接的變形宏病毒

表1 OVD 識別的典型詞法標記類型

3.2 標識符分析

正常程序一般使用有意義的單詞或詞組,通過駝峰法等方式為變量名和函數(shù)名等標識符命名.變形宏病毒程序的標識符與正常程序往往有明顯不同,其典型特點包括:① 元音字母較少;② 大寫字母占比較高;③ 數(shù)字占比較高;④ 長度較大;⑤ 長度方差較小.例如,在圖4所示的真實宏病毒程序中,標識符平均長度超過20,且標識符內(nèi)容全部為大寫字母,這與正常程序有明顯區(qū)別.OVD 統(tǒng)計宏程序中標識符的平均長度、長度方差、平均元音字母占比、平均大寫字母占比、平均小寫字母占比和平均數(shù)字占比,并記入樣本的特征向量.

3.3 字符串分析

利用腳本語言的動態(tài)特性,通過執(zhí)行字符串形式的動態(tài)代碼完成惡意行為是躲避反病毒系統(tǒng)的常用手段.因此,字符串在變形病毒中出現(xiàn)頻繁.一種典型的變形方式是將惡意代碼編碼為字符串,然后將其分割為大量子字符串,再動態(tài)地通過拼接、反轉(zhuǎn)和解碼等操作將惡意代碼還原,從而在不改變惡意代碼語義的前提下對其靈活變形,繞過傳統(tǒng)反病毒系統(tǒng)的病毒規(guī)則庫.圖5是一個真實的宏病毒程序.該病毒程序通過大量的字符串拼接操作達到變形的目的.

圖4 標識符平均長度超過20的變形宏病毒

圖5 含常量字符串的變形宏病毒

OVD 統(tǒng)計宏程序中的字符串?dāng)?shù)量,并記入特征向量.另一面,一種典型的字符串變形手段是通過對超長字符串編碼,從而隱藏有效載荷(payload).針對該變形手段,OVD 統(tǒng)計字符串的平均長度,識別常見編碼格式(如base64)的超長字符串,并統(tǒng)計其數(shù)量.

下載器(downloader)是一類常見的宏病毒.它通過網(wǎng)絡(luò)下載并自動運行其他類型的病毒.這類宏病毒程序往往出現(xiàn)“powershell”、“exe”和“download”等關(guān)鍵字符串.OVD 統(tǒng)計這些關(guān)鍵字符串的數(shù)量和頻率,并記入特征向量.

3.4 文件元信息

文件元信息與文件是否為病毒有相關(guān)性.例如,為了便于病毒在網(wǎng)絡(luò)中擴散傳播,魚叉郵件中的Office 文件附件通常較小.因此,病毒Office 文件的體積和其中病毒宏程序的體積有一定規(guī)律.基于此現(xiàn)象,OVD 將Office 文件的體積和其中宏程序的體積記入特征向量.另一方面,一些變形宏病毒將惡意代碼隱藏在Office文件的自定義屬性中,并通過從自定義屬性中取值的方式在宏程序中還原惡意代碼.因此,OVD 在樣本的特征向量中記錄自定義屬性的數(shù)量和屬性內(nèi)容的平均長度.

3.5 黑詞分析

對宏病毒程序統(tǒng)計詞頻,結(jié)合病毒專家經(jīng)驗,得到宏病毒中出現(xiàn)較多的標識符集合;排除正常宏程序中出現(xiàn)較多的標識符集合,形成黑詞庫Wblk=-.給定被測樣本ε,OVD 統(tǒng)計ε 中每個黑詞w∈的出現(xiàn)次數(shù)和頻率.表2列出了部分OVD 識別的黑詞.圖6是一個真實變形宏病毒示例,其中含有document_open、chr和shell 等黑詞.注意,OVD 對英文字母大小寫不敏感.

表2 OVD 識別的部分黑詞

圖6 含OVD 所識別的黑詞的變形宏病毒

3.6 白詞分析

3.7 熵值分析

研究表明,變形惡意程序的信息熵[15]高于正常程序[9].給定被測樣本ε,OVD 計算ε 在其滑動窗口上的平均信息熵,算法如算法2 所示.更具體地,OVD 以500字節(jié)為寬度生成 ε的滑動窗口集合S,對所有滑動窗口s∈S計算信息熵,并取平均值記入ε的特征向量.

4 大規(guī)模樣本采集

樣本規(guī)模是保證機器學(xué)習(xí)效果的重要條件.主流的現(xiàn)代反病毒系統(tǒng)采用云端分離的分布式的架構(gòu).如圖7所示,“云”一般部署在反病毒廠商,“端”是指反病毒系統(tǒng)的客戶端.在客戶端部署樣本上傳模塊,將客戶端的文件樣本通過網(wǎng)絡(luò)采集到云上,實現(xiàn)大規(guī)模樣本采集.

通過宏程序變形工具,進一步對惡意樣本變形,可增加變形宏病毒的樣本數(shù)量.樣本集包含主流變形工具生成的變形宏病毒樣本.主流變形工具包括:macro_pack[16]、Macroshop[17]、vba-obfuscator[18]、VBad[19]、Veil Framework[20]、Generate-Macro[21].通過雜交,進一步擴大樣本集.令 φ為雜交操作,給定正常樣本和,則仍為正常樣本;給定變形宏病毒和,則仍為變形宏病毒.

圖7 分布式的反病毒系統(tǒng)部署

5 實驗分析

采用XGBoost[22]作為梯度提升決策樹的實現(xiàn),樣本空間大小|Ω|=4000 000,樣本集分布如表4所示.實驗平臺為3.5 GHz Intel Xeon 16-core CPU,256 GB 內(nèi)存,操作系統(tǒng)為Ubuntu 18.04 LTS.實驗進行5 次,取平均值作為結(jié)果.令TP為被分類正確的惡意樣本數(shù)量,TN為被分類正確的正常樣本數(shù)量,FP為被分類錯誤的正常樣本數(shù)量,FN為被分類錯誤的惡意樣本數(shù)量.正確率(accuracy)、準確率(precision)和召回率(recall)的定義分別為:

5.1 OVD的實驗效果

采用網(wǎng)格搜索優(yōu)化XGBoost的超參數(shù).決策樹數(shù)量為1000,樹高為6,學(xué)習(xí)率為0.1.采用16 線程,訓(xùn)練時間為13 410 s.采用10 折交叉驗證,實驗效果如表5所示.OVD的正確率、準確率和召回率分別為98.38%、99.41%和97.34%.由于變形工具和雜交算法的規(guī)律性,OVD 對變形工具和雜交算法生成的惡意樣本的識別能力比真實樣本更強.

表4 樣本集分布

5.2 機器學(xué)習(xí)算法的對比

基于Scikit-learn[23]對比了支持向量機、隨機森林、梯度提升決策樹和多層感知機的效果.結(jié)果如圖8所示.梯度提升決策樹在正確率、準確率和召回率上均高于其他3 種機器學(xué)習(xí)算法.

梯度提升決策樹的兩種主流實現(xiàn)是XGBoost和LightGBM[24].使用相同的超參數(shù)(決策樹數(shù)量為1000,樹高為6,學(xué)習(xí)率為0.1,采用16 線程訓(xùn)練),對XGBoost和LightGBM的實驗結(jié)果如表6所示.XGBoost 在正確率、準確率和召回率均略高于LightGBM,而在訓(xùn)練時間方面LightGBM 優(yōu)于XGBoost.因為宏病毒檢測對檢測效果的敏感性,故XGBoost 更優(yōu).

表5 OVD的實驗效果

圖8 機器學(xué)習(xí)算法的對比

表6 對比XGBoost和LightGBM

5.3 與相關(guān)工作的對比

文獻[5]提出的基于多層感知機的方法,采用15維特征對宏程序向量化,并使用多層感知機作為機器學(xué)習(xí)算法.文獻[5]的工作僅基于2537 個樣本(其中變形宏病毒樣本773 個,正常樣本1764 個)進行實驗,準確率和召回率分別為93.80%和91.50%.

在4000 000 樣本集上通過兩組實驗對比OVD和文獻[5]的方法:① 對比文獻[5]基于多層感知機的方法在大樣本集和小樣本集上的效果差異;② 采用梯度提升決策樹,對比文獻[5]提出的15 維特征和OVD的520 維特征.表7給出實驗結(jié)果.雖然文獻[5] 基于15 維特征的方法在小樣本集上取得了較好的正確率、準確率和召回率,但在大樣本集上的效果較差.一種可能的解釋是樣本量過小導(dǎo)致過擬合.在大樣本集上的實驗結(jié)果表明:① 梯度提升決策樹(MLP)的效果優(yōu)于多層感知機(XGB);② OVD的特征工程優(yōu)于文獻[5]的方法.

表7 對比文獻[5]的方法和OVD

5.4 特征工程粒度的合理性分析

通過實驗分析特征工程各子任務(wù)(圖2)的必要性.基于4000 000 樣本,將各子任務(wù)t從特征工程T中去除,對比T-{t}和T的效果,以驗證t的必要性.實驗結(jié)果如表8所示.其中,去除特征工程的任意子任務(wù)t,總體檢測效果在綜合考慮正確率、準確率和召回率時降低.特別的,去除白詞分析,雖然召回率小幅提升,但正確率和準確率下降;去除熵值分析后,雖然準確率小幅提升,但正確率和召回率下降.基于上述分析,OVD的特征工程中的各子任務(wù)對優(yōu)化總體檢測效果具有必要性.

表8 特征工程子任務(wù)的必要性分析

在掃描時間方面,對單個樣本做全量特征工程T的平均耗時為57.65 ms,其中文件解析和詞法分析的平均耗時為45.02 ms.表9給出各子任務(wù)t的平均時間開銷.所有子任務(wù)共產(chǎn)生28.01%的時間開銷.該指標屬于合理范圍,不影響工業(yè)級應(yīng)用推廣.各子任務(wù)t均不產(chǎn)生明顯的內(nèi)存開銷.

表9 特征工程子任務(wù)的時間開銷

6 結(jié)語

本研究提出了OVD—一種基于梯度提升決策樹的變形宏病毒檢測方法.與傳統(tǒng)的基于病毒數(shù)據(jù)庫的檢測方法不同,OVD 通過機器學(xué)習(xí)在高抽象層次對變形宏病毒的不動點建模,實現(xiàn)了良好的泛化性.OVD 面向工業(yè)級應(yīng)用,基于專家經(jīng)驗實現(xiàn)了520 維的變形宏病毒特征工程,較現(xiàn)有方法粒度更細.介紹了特征工程及其各子任務(wù)的功能和設(shè)計思路.實驗驗證了細粒度特征工程的合理性,并討論了其性能影響.大規(guī)模數(shù)據(jù)集上的實驗表明,OVD 能有效檢測變形宏病毒,準確率和召回率分別達到99.41%和97.34%,優(yōu)于現(xiàn)有方法.

猜你喜歡
宏程序字符串決策樹
橢球槽宏程序編制及其Vericut仿真
簡述一種基于C4.5的隨機決策樹集成分類算法設(shè)計
宏程序在加工中心生產(chǎn)中的應(yīng)用
數(shù)控車編程教學(xué)中宏程序嵌套的應(yīng)用
一種基于PowerBuilder環(huán)境字符串相似度算法
決策樹學(xué)習(xí)的剪枝方法
SQL server 2008中的常見的字符串處理函數(shù)
倍增法之后綴數(shù)組解決重復(fù)子串的問題
最簡單的排序算法(續(xù))
決策樹在施工項目管理中的應(yīng)用
望江县| 阿拉善盟| 尉氏县| 东阿县| 德庆县| 松原市| 玉田县| 信宜市| 乳源| 滕州市| 华亭县| 依安县| 丰都县| 大兴区| 武城县| 盐边县| 华池县| 榆中县| 靖边县| 开远市| 武鸣县| 潮州市| 湘乡市| 桓台县| 铁岭市| 静海县| 陇川县| 确山县| 昔阳县| 德格县| 佳木斯市| 同德县| 襄樊市| 文水县| 阳朔县| 丁青县| 太原市| 宁远县| 临海市| 舒城县| 肥城市|