↓快轉到主要內容
所有專案

2024 AIS3|研究專題

聚類分析技術-惡意軟體變體辨識方法研究

結合 CAPA、Jaccard、K-means 與 SentenceTransformer,自動比較未知樣本與惡意軟體家族的相似度。

2024 AIS3 專題|聚類分析技術-惡意軟體變體辨識方法研究封面
Year
2024
Role
惡意軟體分析/分析腳本
Team
4 人團隊
Share
25%
01 / Overview

專案總覽

專題目標是自動解析未知惡意軟體與已知家族間的相似度,協助逆向分析人員更有效率地識別、比較與分類變體。

不只回答樣本是否惡意,也嘗試回答它和哪些家族、能力或二進位特徵更接近。
02 / Challenge

問題與動機

惡意軟體變體會改變檔案內容、字串與包裝方式;單一雜湊難以反映行為相似度,而人工逆向大量樣本又十分耗時。

變體規避

內容稍微變動就會造成傳統雜湊完全不同。

特徵尺度不同

能力描述、文本與二進位格式需要不同的相似度方法。

03 / Solution

方法與核心內容

系統透過 CAPA 擷取靜態能力特徵,再使用 Jaccard、K-means、SentenceTransformer 與二進位格式比較,形成多視角的相似度結果。

能力層特徵

利用 CAPA 規則將樣本行為轉換為可比較的能力集合。

多算法比較

以集合、向量與聚類方法交叉觀察樣本間的接近程度。

04 / Architecture

技術脈絡

流程從樣本靜態解析開始,分別產生能力、文本與二進位特徵,再彙整為相似度視圖。

SAMPLE惡意軟體樣本
EXTRACTCAPA/格式特徵
COMPAREJaccard/向量
VIEW聚類與相似度

樣本來源與 CAPA 特徵

樣本由 MalwareBazaar 取得,保留家族標籤並透過 CAPA 做靜態分析。分析不只讀取樣本基本資訊,也使用 MITRE ATT&CK、MBC 與 capability 規則;對結果有疑問時以 capa.exe malware.exe -vv 追查命中依據,再以人工逆向確認。

方法一:CAPA 規則集合與 Jaccard

先將每個樣本命中的 CAPA rule ID/tag 轉成二元存在向量,再以交集與聯集比較 WannaCry 變體、其他勒索軟體與其他惡意程式。初期直接依空白切詞會破壞多字詞規則,因此改為擷取 tag 並依逗號切分。

J(A, B) = |A ∩ B| / |A ∪ B|
這個表示法保留『共同具備哪些能力』的可解釋性,比檔案雜湊更適合比較變體。

方法二:文字向量與 K-means

團隊嘗試以 CountVectorizer 的 Bag-of-Words、SentenceTransformer 語意向量、K-means 與 PCA 將能力描述映射到向量空間。實驗結果未形成預期群聚,估計仍需要較長時間調參與檢查資料分布,因此沒有把它當作最終方案。

最終視圖:相似度矩陣與 UMAP

在調整前處理後,最終以樣本相似度矩陣作為輸入,透過 UMAP 降維呈現群聚;圖中標示已知 WannaCry 樣本,再插入未知樣本觀察鄰近關係。另以 t-SNE 進行比較,確認視覺結果不是單一降維方法造成。

05 / How it works

執行流程

以已知家族作為參考,觀察未知樣本在不同特徵空間中的鄰近關係。

01 — 建立樣本資料

整理來源、家族標籤與可安全分析的惡意程式樣本。

02 — 擷取靜態特徵

執行 CAPA 與格式解析腳本,將結果轉為可比較資料。

03 — 計算與視覺化

比較多種算法結果,呈現家族與變體間的關係。

自動化與效能改善

早期流程需要多支腳本分別下載、執行 CAPA 與轉換資料,路徑與錯誤處理容易中斷;後續把五段處理整合,並以非同步/多執行緒加速 MalwareBazaar 下載與 CAPA 分析。簡報紀錄 148 個變體的初版處理曾耗費兩堂課,顯示分析吞吐本身也是研究瓶頸。

如何使用相似度結果

視圖的用途是幫分析人員縮小優先逆向範圍,而非直接取代家族判定。未知樣本靠近已知家族時,仍需回看共同 CAPA 規則、樣本來源與人工逆向結果,避免把降維圖上的距離當作最終證據。

06 / Analysis Evidence

從 CAPA 報告到可解釋的變體比較

原始分析輸出適合供程式處理,卻不適合直接閱讀:單一 CAPA 報告包含大量規則,而 TTP 比對則會形成整排 0 與 1。這裡將兩者分成「樣本能力摘要」、「特徵命中分布」與「樣本相似度」三層,保留判讀依據而不傾倒原始資料。

CAPA REPORT · WANNACRY 001

只留下能說明樣本行為的代表結果

ATT&CK 戰術
4
技術命中
8
CAPA 能力
33

此份報告針對 Windows i386 PE 樣本進行靜態分析。頁面不逐條抄錄 CAPA 結果,而是先以 ATT&CK 戰術整理行為脈絡,再摘錄對家族辨識較有意義的能力;需要驗證時,才回查完整 rule match 與位址。

Defense EvasionT1027 · T1027.005
DiscoveryT1083 · T1082 · T1016
ExecutionT1129 · T1569.002
PersistenceT1543.003
Stack strings/參數混淆QueryPerformanceCounter 延遲檢查TCP/UDP/HTTP 通訊RC4 與 XOR 資料處理建立、修改與啟動服務嵌入式 PE 與資源解出檔案讀取與移動執行緒建立與終止
CAPA 命中代表樣本中存在符合規則的靜態證據,不等同於該行為已在真實環境執行。報告摘要的目的是建立分析入口,最終判斷仍需搭配命中位置、動態行為與人工逆向。
TTP BINARY ENCODING

把 0/1 改成可掃讀的特徵命中熱帶

命中(1) 未命中(0)

每一欄代表特徵字典中的一個 TTP 維度:1 表示該樣本命中,0 表示目前沒有觀察到。熱帶保留二元向量的精確結構,但讓讀者先看出命中密度與分布,再決定是否查看個別欄位。右側數字同時列出 69 維 TTP 向量與 475 維 CAPA 能力向量的命中數。

Sample 001 12 TTP/7 CAPA
Sample 002 9 TTP/7 CAPA
Sample 003 12 TTP/3 CAPA
Sample 004 16 TTP/8 CAPA
Sample 005 9 TTP/7 CAPA
目前提供的比對檔只有向量位置,沒有附上「位置 → ATT&CK Technique ID」字典,因此圖中誠實地以特徵序號呈現,不擅自替欄位命名。若補上原始欄位對照表,即可把滑鼠提示改為 T1027 等實際技術名稱。
PAIRWISE COMPARISON

用 Jaccard 矩陣回答哪些樣本最接近

J(A, B) = |A ∩ B| / |A ∪ B|

將每個樣本命中的 TTP 視為集合,分數越接近 1,代表兩者共享的 TTP 結構越相似;這比直接展示 69 個位元更容易比較,同時仍可回到上方熱帶檢查共同命中位置。

五個樣本的 Jaccard 相似度矩陣
Sample001002003004005
001 1.000 0.750 0.412 0.333 0.750
002 0.750 1.000 0.235 0.190 1.000
003 0.412 0.235 1.000 0.556 0.235
004 0.333 0.190 0.556 1.000 0.190
005 0.750 1.000 0.235 0.190 1.000
002 與 005 完全一致

兩者在這 69 維 TTP 表示中得到 1.000;這表示此特徵層無法區分它們,不代表兩個檔案完全相同。

003 與 004 形成另一組

兩者相似度為 0.556,且共享一段與 001/002/005 不同的命中分布,可優先進一步逆向比較。

所有樣本仍有共同骨架

5 個樣本共同命中特徵 14、21、36;這些穩定特徵可作為後續確認家族核心行為的入口。

07 / My Contribution

我的貢獻

貢獻比例 25%,主要負責惡意軟體分析、資料處理與分析腳本撰寫。

  1. 01樣本分析檢視樣本特性並整理可供比較的分析結果。
  2. 02資料處理清理 CAPA 與其他靜態分析輸出。
  3. 03分析腳本撰寫自動化解析與格式轉換程式。
  4. 04結果驗證協助比較算法結果與已知家族標籤。
08 / Result & Reflection

成果與反思

專題完成多種特徵與算法的相似度比較流程,能以整體視圖協助觀察未知樣本和既有惡意軟體家族的關係。

惡意軟體相似度沒有單一答案;能力、語意與二進位結構各自揭露不同層次,真正有用的是能回到分析工作流程的組合。
09 / Presentation

完整簡報

惡意軟體變體辨識方法研究

AIS3 專題成果簡報,共 67 頁。

滑到簡報區域後載入…

1—

若瀏覽器無法顯示嵌入式 PDF,請另開完整簡報。