可擴展和語義保持的反病毒引擎標簽挖掘
工作來源
TrustCom 2022
工作背景
反病毒結果的命名最初遵循 MAEC(Malware Attribute Enumeration and Characterization),為了在高保真情況下對惡意軟件屬性信息進行結構化表示。但各家廠商的命名邏輯并不相同,所以結果也是不一致的。
只依賴專家知識很難應對威脅時刻變化的挑戰,盡量不依賴專家知識才能獲得更好的可擴展性。盡管各個廠商的結果并不一致,但其仍然存在內在聯系,分解和重組可能會提供樣本更多的信息。
常見的歸檔流水線如下所示:

工作設計
AVClass 系列需要大量的專家知識,AVCLASS 主要將大量標簽合并為單個表示家族的標簽,AVCLASS2 聚合別名標簽。

VirusTotal 上某樣本的檢測結果如下所示:

Ad-Aware、ALYac 與 Arcabit 都給出了 JS:Trojan.HideLink.A 的檢測結果,而 Cyren、DrWeb 與 F-Prot 給出的則是 SEOHide。雙方是從不同的角度來對樣本進行描述的,并不是互斥的。
三種工具對標簽的處理結果如下所示(注:AVMiner 不對相似檢測引擎與相同廠商的結果進行過濾):

常用詞的定義如下所示:

系統處理流程如下所示:

典型示例如下所示:

數據準備
為了解決冷啟動的問題,使用超過八千個樣本來建立語料庫。系統不僅能夠適應未知種類的惡意軟件,而且能夠提供更好的兼容性。
預處理
主要是 Token 化與 Token 過濾兩部分:
- Token 化:通過標點符號分割的為標簽的最小單元,替換為統一的分隔符。
- Token 過濾:將產生的無意義 Token 過濾掉,例如標識符與序號等。來自同一廠商的標簽中無意義的 Token 通常位置一致,并且無意義的 Token 重復頻率較低

根據 σ<0.1 由上圖可知大多數位置都有一些獨特的 Token。下圖表示取值在大于 0.3 小于 0.7 時會引入大量無意義的 Token。故而將值設置為 0.3。

向量化
將共現關系作為向量化建模的關鍵因素,為輸出的關鍵詞進行提取和排序。對向量化處理有兩個額外的要求:參數不敏感并且計算復雜度低。這樣可以在威脅快速變化時,進行自我迭代更新。
選擇 GloVe(Global Vectors)作為處理方式,其擅長在全局范圍內泛化共現關系。主要過程是首先使用固定的計數窗口對每個 Token 的共現矩陣進行計數,在保證每個 Token 之間的共現關系的情況下對稀疏矩陣進行降維。
樣本聚類
總是一起出現的 Token,轉換的向量在更高維度上也更接近。故而采用 Mean Shift 作為聚類算法。
根據相關性對 Token 進行分組后,還需要根據它們的頻率與簇的屬性對其進行排序。在此處進行校正,如下所示校準為 downloader。

如果不進行校準,對 Token 的排名會有較大影響。

兩個 Token 之間需要滿足以下條件的閾值才進行糾正,不僅可以糾正同義詞(downloader 與 downloadre)還能糾正縮寫(gen 與 generic),該閾值默認為 0.3。

輸出關鍵詞
利用 TF-IDF 算法選擇相關且重要的 Token:

當一個 Token 在惡意樣本中出現的頻率越高,普遍性越低,其 TF-IDF 值也就越高。
工作準備
GloVe 模型的窗口大小設置為 40、向量長度為 32,訓練迭代 100 輪。
Mean Shift 算法的帶寬為 2,訓練迭代 100 輪。
Drebin 與 Malheur 都是手動處理的惡意軟件數據集,測試結果如下:

二者的具體文件類型如下所示:

工作評估
利用從 2006 年到 2020 年收集的 10 萬個惡意樣本,通過 VirusTotal 的結果獲取惡意軟件家族。結果如下所示:

不管是在第一、前三、前五的 Token 中,都是 AVMiner 表現更好。并且,AVMiner 原型驗證每秒可以處理 40 個樣本,作者認為其滿足了自身的需求。
與之前的 AVCLASS 和 AVCLASS2 進行比較:

可視化變化趨勢為:

超集的表現比子集的加權平均更好,引入的相關樣本越多,性能也就越好。

這一點也通過實驗能夠證明,數據集相對較小時的性能略有下降,而數據集達到超集的 30% 時準確率基本穩定。

為了驗證魯棒性,對超集的子集進行了降采樣實驗,并添加了隨機收集的一萬個惡意樣本。

即使文件類型改變,對結果的影響也不大。

不同時間的樣本,也不影響準確性。

工作思考
大量檢測引擎的結果處理是一個長久的話題,研究也逐漸成為了近年來的熱點。研究涵蓋標簽翻轉、結果合并與檢測閾值等,數據量越大越是能從更高的維度進行分析并貼近事實。