Xu Z, Fang P, Liu C, et al. Depcomm: Graph summarization on system audit logs for attack investigation[C]//2022 IEEE Symposium on Security and Privacy (SP). IEEE, 2022: 540-557.
1 摘要
? 提出了 DEPCOMM,這是一種圖摘要方法,通過將大圖劃分為以進程為中心的社區并為每個社區提供摘要,從依賴圖生成摘要圖。每個社區都由一組相互協作以完成某些系統活動(例如文件壓縮)的親密進程以及這些進程訪問的資源(例如文件)組成。在社區內,DEPCOMM 進一步識別由不太重要和重復的系統活動引起的冗余邊,并對這些邊進行壓縮。
DEPCOMM 為依賴圖平均生成 18.4 個社區,比原始圖小約 70 倍。與 9 種最先進的社區檢測算法相比,DEPCOMM 在檢測社區方面平均取得了比這些算法高 2.29 倍的 F1 分數。通過與HOLMES自動化技術配合,DEPCOMM能夠以96.2%的召回率識別出與攻擊相關的社區。
2 引言
? 由于三個主要原因,手動攻擊調查仍然是不可或缺的:
- 系統中始終存在殘留風險,這些風險無法通過這些自動化技術準確揭示,特別是對于嚴重依賴系統配置文件的技術
- 威脅不斷發展以逃避防御技術
- 現有技術主要依賴于啟發式規則,這些規則會導致信息丟失和侵入性系統更改,阻礙了它們的實際采用
動機:開發一種圖摘要方法,該方法在依賴圖中保留系統活動的語義,同時通過隱藏不太重要的細節來縮小其大小。
挑戰及應對:
-
依賴圖是一種異構圖,平等對待每個節點的通用匯總技術無法有效地檢測代表主要系統活動的社區。
將依賴圖劃分為以進程為中心的社區,其中每個社區包括一組親密的進程(父子或兄弟關系)以及這些進程訪問的系統資源。
-
許多不太重要的依賴關系,成為依賴關系圖的主要部分,壓縮和隱藏這些活動是一項具有挑戰性的任務
DEPCOMM 識別基于進程和基于資源的模式,并根據這些模式為每個社區壓縮邊
-
在依賴圖中,代表系統活動的邊序列應該是生成的用于攻擊調查的摘要圖的核心。如何總結這些優勢成為DEPCOMM的另一個挑戰
對每個社區內的 InfoPath 進行優先級排序,并將更有可能代表攻擊步驟和主要系統活動的 InfoPath(信息流) 排名在頂部
DEPCOMM 提供了新穎的技術來檢測以進程為中心的社區,在檢測到的社區內執行壓縮,并為每個社區生成代表性摘要。實驗室+DARPA TC,總共有約 1.5 億個系統審計事件,生成的依賴圖平均由 1, 302.1 個節點和 7, 553.4 個邊組成。在我們的評估中,DEPCOMM 為依賴圖平均生成 18.4 個社區,比原始圖小約 70 倍。這些社區平均包含 43.1 個節點和 248.5 條邊。
- DEPCOMM 在每個流程節點上執行隨機游走以獲得游走路線,并通過矢量化這些游走路線來計算每個進程節點的行為表示。設計了一系列新穎的分層行走方案,利用進程本地鄰居的信息和全局進程譜系樹來選擇更有可能找到親密進程的行走路線。利用學習到的每個進程節點的表示,DEPCOMM 將這些進程節點聚類成社區,并進一步將這些進程訪問的資源節點分類到檢測到的社區中,生成以進程為中心的社區。
- DEPCOMM 首先計算每個社區的進程譜系樹,并將每個進程節點與訪問資源節點的事件相關聯。通過搜索該樹,DEPCOMM 可以識別基于進程的模式(例如,一個 bash 進程生成多個 vim 進程)和基于資源的模式(例如,多個 vim 進程編輯源文件)。基于已識別的基于流程和基于資源的模式,DEPCOMM 合并所有重復的邊和節點以壓縮社區。
- DEPCOMM首先根據社區之間的信息流來識別每個社區的輸入節點和輸出節點,然后通過為每對輸入和輸出節點查找路徑來生成InfoPaths。接下來,DEPCOMM 根據每個 InfoPath 代表社區中主要系統活動(例如,包含 POI 事件)的可能性,為每個 InfoPath 分配優先級分數。最后,DEPCOMM 根據優先級對這些 InfoPath 進行排名,并將排名靠前的 InfoPath 顯示為社區的摘要。
3 系統設計
3.1 依賴圖生成
給定 POI 事件(例如,有關文件下載的警報),DEPCOMM 通過執行向后因果分析來跟蹤依賴關系,從而構建依賴關系圖。
為何不前后向都分析?
3.2 依賴圖預處理
? 邊合并:操作系統通常通過將數據按比例分配給多個系統調用來執行讀/寫任務,這會導致進程節點和文件/網絡節點之間通常有許多平行邊,表示短時間內重復的讀/寫操作,將這些平行邊合并為一條邊。
? 只讀文件過濾:許多只讀文件通常是庫、配置文件和資源用于不包含有用的攻擊相關信息的進程初始化,因此刪去。
3.3 社區檢測
分級隨機游走
? 以進程為中心的社區是一個圖,它包含(1)一個主進程節點,(2)一組子進程節點,表示主進程派生的子進程的子集,使得這些子進程之間具有數據依賴性,以及(3)主進程和這些子進程訪問的一組資源節點。
采用固定的步長根據鄰居和全局譜系樹進行加權隨機游走,然后利用word2vec學習路徑的行為表示,并將這些路徑聚類到不同的社區中。八種游走規則:
- 隨機任選一個鄰居,如果只有一個鄰居,為避免提前終止,要回到上一節點
- 從自己的子進程過來,且該子進程具有與其有數據依賴的兄弟進程,直接去該兄弟進程
- 如果是從自己的獨子過來的,且無其他鄰居,說明父子協同處理某些任務,父親任選鄰居往下走
- 以高概率走到與上一節點共享相同父進程的鄰居
- 從子進程訪問過的資源節點過來,回到子進程或同時與該子進程有其他依賴關系的資源節點
- 如果兩個進程節點除共同資源節點外再無其他關系,視為另一社區,直接返回
- 如果經過一個資源節點回到了進程,說明走到了信息流的終點,繼續向其他鄰居游走
- 與1 類似,但隨機選擇而不返回,意味著已經進入一個新的社區
進程節點表示
? DEPCOMM采用SkipGram這一廣泛使用的詞表示學習算法來學習行走路線中過程節點的行為表示。更具體地說,給定進程節點p和上下文窗口大小t, SkipGram從包含p的每個行走路線中提取子序列Wp = {vi?t,···,vi,··,vi+t},該子序列由vi = p及其上下文節點vi+k (k∈(?t, t))組成。然后通過最大化子序列中出現的任何節點的對數概率來學習vi的d維向量Φ(vi)
進程節點聚類
? DEPCOMM采用了一種軟聚類方法FCM (Fuzzy C-Means),FCM通過最小化目標函數來輸出每個集群中每個過程節點的隸屬度
J = ∑ i = 1 ∣ V p ∣ ∑ j = 1 ∣ C ∣ u i j 2 ∣ ∣ v i ? c j ∣ ∣ 2 J~=~\sum_{i=1}^{|V_{p}|}\sum_{j=1}^{|C|}u_{ij}^{2}||v_{i}~-~c_{j}||^{2} J?=?i=1∑∣Vp?∣?j=1∑∣C∣?uij2?∣∣vi????cj?∣∣2,其中uij表示過程節點vi屬于共同體cj的程度,如果uij高于給定的閾值,則Vi被分類為cj。
? DEPCOMM根據模糊劃分系數(FPC) F ( ∣ C ∣ ) = 1 / ∣ V p ∣ ∑ j = 1 ∣ C ˉ ∣ ∑ i = 1 ∣ V p ∣ u i j 2 F(|C|)=1/|V_{p}|\sum_{j=1}^{|\bar{C}|}\sum_{i=1}^{|V_{p}|}u_{ij}^{2} F(∣C∣)=1/∣Vp?∣j=1∑∣Cˉ∣?i=1∑∣Vp?∣?uij2?來確定社區的數量|C|,用于衡量不同數量的集群的有效性。
資源節點關聯
? 給定一個資源節點r和一個流程節點p,如果它們通過一條邊連接,則v與p所屬的社區相關聯。如果一個資源節點與來自不同社區的多個流程節點連接,則該資源節點是一個重疊節點,我們將創建資源節點的副本,并為每個社區分配一個副本。
跨社區依賴關系
? 我們將跨社區的依賴關系分為基于邊的依賴關系(即,由社區之間的社區間的邊表示的依賴關系)和基于節點的依賴關系(即,由重疊節點表示的依賴關系)。創建副本,每個社區一個,中間新建一條邊。
3.4 社區壓縮
基于進程的模式
如圖a所示,重復活動合并。包括四個步驟:
- 構建進程譜系樹
- 進程與已訪問的資源關聯
- 挖掘基于進程的模式:DEPCOMM使用流程沿行樹為每個進程節點生成一個子樹。然后,DEPCOMM通過附加子樹中進程節點的相關資源屬性,將子樹編碼為字符串,并標識相同的字符串(即,重復的子樹)。
- 基于模式的壓縮:DEPCOMM只選擇具有相同父節點的重復子樹,并將選擇的子樹合并為一個子樹。合并子樹中每個節點和邊的屬性是原始節點和邊屬性的并集。
基于資源的模式:
? DEPCOMM首先將進程與其訪問的資源關聯起來,然后搜索每個資源以識別重復的訪問。根據發現的模式,將資源節點合并為一個節點,合并節點的屬性是原始資源節點屬性的并集。
3.5 社區摘要
? DEPCOMM生成一個由三部分組成的摘要:主進程、時間跨度和排名最高的infopath。
信息流抽取
? 對于一個社區,確定其輸入和輸出節點,然后使用深度優先搜索找一條最長的路徑。
信息流優先級
? 優先級排序包含四個關鍵特征:
- fpoi:是否包含POI事件,包含參數值為1,否則為0
- foit:輸入輸出類型,頭尾為進程的信息流分數更高。 f i o t = 1 2 ( δ ( v 0 ) + δ ( v ∣ P k ∣ ? 1 ) ) f_{iot}=\frac{1}{2}(\delta(v_0)+\delta(v_{|P_k|-1})) fiot?=21?(δ(v0?)+δ(v∣Pk?∣?1?))
- funi:事件唯一性,出現在較少社區中的文件事件更可能表示社區中的主要活動。 f u n i = 1 ∣ E v t ( P k ) ∣ ∑ e i ∈ P k , e i ∈ E v t f 1 ∣ C o m m ( e i ) ∣ f_{uni}=\frac{1}{|Evt(P_k)|}\sum_{e_i\in P_k,e_i\in Evt_f}\frac{1}{|Comm(e_i)|} funi?=∣Evt(Pk?)∣1?ei?∈Pk?,ei?∈Evtf?∑?∣Comm(ei?)∣1?
- fspan:時間跨度,時間跨度與社區的時間跨度相似的InfoPath更有可能代表社區中的主要活動 f s p a n = e ( v ∣ P k ∣ ? 2 , v ∣ P k ∣ ? 1 ) . e t ? e ( v 0 , v 1 ) . s t c . e t ? c . s t f_{span}=\frac{e(v_{|P_{k}|-2},v_{|P_{k}|-1}).et-e(v_{0},v_{1}).st}{c.et-c.st} fspan?=c.et?c.ste(v∣Pk?∣?2?,v∣Pk?∣?1?).et?e(v0?,v1?).st?
? 基于這些特征,我們通過給每個特征賦予相等的權重來計算Pk的優先級得分。根據分配的優先級分數,我們對infathath進行排序,并選擇最前面的n條路徑作為匯總,安全分析人員可以靈活地選擇n的值。
4 評估
實驗室環境的6次攻擊和DARPA TC的8次攻擊。
提前請專家進行社區劃分,與自動檢測的做對比。
與NoDoze進行對比