>本文單純翻譯自論文 [WATSON: Abstracting Behaviors from Audit Logs via Aggregation of Contextual Semantics](https://www.ndss-symposium.org/wp-content/uploads/ndss2021_7A-3_24549_paper.pdf)。可能有翻譯錯誤、語句不順,還請見諒 ## **摘要** 端點監控解決方案(Endpoint monitoring solution)在當今的企業環境中廣泛部署,以支持先進的攻擊檢測和調查。這些監控器持續記錄系統級別的活動作為審計日誌,並提供對安全事件的深入可見性。不幸的是,要識別感興趣的行為並檢測潛在威脅,網絡分析師面臨著低級別審計事件和高級別系統行為之間的語義差距。為了彌合這一差距,現有工作主要是將審計日誌流與描述行為的規則知識庫進行匹配。然而,指定這些規則高度依賴專家知識。本文提出了一種名為 WATSON 的自動化方法,通過推斷和聚合審計事件的語義來抽象行為。WATSON通過其在審計日誌中的使用上下文揭示事件的語義。通過提取連接的系統操作作為行為,WATSON 然後將事件語義組合作為行為的表示。為了減少分析工作量,WATSON進一步聚集語義相似的行為並區分代表行為以供分析師調查。在我們針對良性和惡意行為的評估中,WATSON 在行為抽象方面表現出高度的準確性。此外,WATSON 可以在攻擊調查中將分析工作量減少兩個數量級。 ## **I. 介紹** 全球範圍內的大型企業系統中的安全事件一直在增加。我們目睹了規模和複雜性日益增長的攻擊。Capital One 報告稱,由於未經授權的數據庫訪問,1.06 億客戶的信用卡信息被曝光。最近的一次 Twitter 攻擊導致數十個高知名度帳戶向數千萬追隨者展示了欺詐信息。為了更好地防止和應對此類攻擊,端點監控解決方案(如安全信息和事件管理(SIEM)工具)在企業安全中廣泛部署。這些監控器持續記錄系統級別的活動作為審計日誌,捕捉系統執行情況的許多方面。 在應對安全事件時,網絡分析師對審計日誌進行因果分析,以發現攻擊的根本原因和損害範圍。然而,正常系統產生的審計日誌數量龐大。即使是一台桌面型電腦每天也可以輕鬆產生超過一百萬個審計事件,更不用說雲基礎設施中的繁忙伺服器了。為了克服這一挑戰,最近的研究解決方案通過消除審計日誌中的無關系統操作來擴展因果分析。另一種研究方向是提高日誌查詢系統的效率。不幸的是,數據減少或搜索改進都沒有顯著減少分析工作量。這些解決方案無法捕捉審計數據背後的語義,將行為識別留給分析師。結果,評估審計日誌中主導的相關但良性的複雜事件仍需大量手動工作。特別是,分析師面臨的一個重大問題是低級別審計事件和高級別系統行為之間的語義差距。 現有工作努力通過將審計事件與描述行為的專家定義規則知識庫進行匹配來彌合這一差距,例如基於標籤的策略、查詢圖和 TTP(Tactic Technique Procedure , 戰術、技術、程序)規範。本質上,這些解決方案通過標籤傳播或圖匹配來識別高級別行為。然而,一個預期的瓶頸是需要領域專家手動指定這些規則。例如,MORSE需要專家遍歷系統實體(如檔案)並初始化其機密性和完整性標籤以進行標籤傳播。TGMiner需要在訓練日誌集中手動標記行為,然後在測試集中搜索其存在。儘管在審計日誌分析中扮演了至關重要的角色,但將事件映射到行為嚴重依賴於專家知識,這可能會阻礙其在實踐中的應用。 從審計事件中提取代表行為以供分析師調查提供了一種有效的策略來緩解這一問題。更具體地說,我們可以使用程序分析來自動抽象高級別行為並聚集語義相似的行為,儘管沒有標籤來解釋它們是什麼。然而,由於重複/可比較的行為已經被聚集,分析師只需標記聚集中的代表,從而需要調查的事件要少得多。除了減少行為分析中的手動工作量外,自動行為抽象還能夠主動分析,以檢測內部威脅或外部利用中的不尋常行為模式。特別是,任何正常行為的偏差都可以高效地標記以應對攻擊。 雖然行為抽象聽起來很有前途,但有兩個主要挑戰來提取行為並推斷其語義:[事件語義區分](#推斷-OS-層級審計事件的語義)和[行為識別](#在大規模審計事件中識別行為邊界)。審計事件記錄的是通用系統活動,因此缺乏高級別語義知識。單個事件,如 process 創建或檔案刪除,在不同場景中可以表示不同的語義。此外,由於審計事件的規模和高度交錯性,劃分事件和識別行為邊界就像在大海撈針。 為了解決上述挑戰,我們的第一個關鍵見解是審計事件的語義可以從其使用上下文中揭示。直觀上,我們可以通過聚合其組成事件的語義來表示行為。有了這樣的表示,類似的行為可以聚集在一起。此外,我們觀察到系統實體的信息流提供了高級別行為的自然邊界。它可以作為指導來關聯屬於個別行為的審計事件。 本文提出了一種名為 WATSON 的自動行為抽象方法,通過聚合審計事件的語義來建模行為模式。它不假設事件語義的專家知識來進行行為抽象。語義是從日誌中的事件使用上下文中自動獲得的,我們稱之為事件的上下文語義。更具體地說,WATSON 首先利用基於翻譯的嵌入模型根據日誌中的上下文信息推斷審計事件的語義。然後,WATSON 識別與相關數據對象(即 file 和 network socket)相關的事件並聚合其語義作為高級別行為的表示。最後,WATSON 聚集審計日誌中記錄的相似行為並區分代表行為以供分析師調查。 據我們所知,WATSON 是第一個從低級別日誌信息中自動抽象高級別行為的方法。WATSON 為審計日誌中發現的事件和行為提供了語義的量化表示並自動推導它們。有了量化方法來推理行為和事件,分析師可以比較、排序和聚集行為。它還可以組合多個行為,甚至合成或預測特定行為應該是什麼。這些能力可以成為設計新安全解決方案的基礎,例如異常行為檢測,或支持現有解決方案選擇適當的行為進行深入檢查。 我們實現了 WATSON 的原型,並使用 17 個日常例行操作和 8 個在企業環境中模擬的真實攻擊來評估其正確性和解釋性。此外,我們使用 DARPA 透明計算計劃發布的公共 DARPA TRACE 數據集來評估 WATSON 在攻擊調查中的效果。我們注意到,WATSON 是第一個抽象良性和惡意行為進行評估的方法。以前的技術主要關注攻擊檢測,因此不考慮良性行為。然而,WATSON 無論其安全性如何都能提取高級別行為。實驗結果表明,WATSON 能夠準確地關聯具有相似使用上下文的系統實體,並且在行為抽象中達到了平均 F 1得分 92.8%。此外,WATSON 能夠將分析師調查的審計日誌量減少兩個數量級。 總結而言,我們做出了以下貢獻: * 我們提出了 WATSON,這是第一個無需分析師參與即可從低級別日誌中抽象高級別行為的方法。我們的方法使用信息流作為指導來總結行為,並通過聚合審計事件的上下文語義來推導行為語義。 * 我們提出了通過上下文信息推斷日誌語義的新穎理念。我們提供了一種行為語義的量化表示,並使用它來聚集語義相似的行為並提取代表行為。 * 我們實現了 WATSON 的原型,並使用常見的良性行為和真實世界的惡意行為進行了系統評估。結果顯示,WATSON 在行為抽象和減少日誌分析工作量方面具有有效性。 ## **II. 背景與動機** 在這一部分,我們首先介紹審計日誌分析及其挑戰,並提供一個激勵性的例子。接著,我們分析行為抽象問題及其見解,並描述威脅模型。 ### **A. 激發性例子** >激發性例子(Motivating Example):指激發你形成想法的例子 #### 圖 1:動機示例的溯源圖 ![image](https://hackmd.io/_uploads/H191PlRd0.png) >圖中的節點是系統實體(矩形代表processes,橢圓形代表檔案,菱形代表socket),節點之間的邊代表系統調用。為了提高可讀性,我們僅展示圖的一部分,並用彩色框突出顯示高級行為。 #### **場景** 考慮以下攻擊場景,一名員工想要竊取他可以訪問的敏感數據。作為一名軟體測試人員,他的日常任務包括使用 git 從 Github 存儲庫同步代碼,使用 gcc 編譯源代碼中的程序,並使用 apt 安裝測試過的軟體依賴。某天他找到了一份敏感文件(secret.txt),並試圖竊取它。為了避開檢測,他嘗試模仿他日常工作的正常行為。他首先將敏感文件複製到他的工作目錄中,命名為 Pro2.c。然後,他使用 gcc 編譯這個「程式」並將其上傳到他控制的 Github 存儲庫中。請注意,因為 Pro2.c 不是合法的源文件,這個編譯操作會失敗。這個策略試圖將數據竊取行為偽裝成普通的程序開發活動,從而誤導分析人員將其標記為日常行為。 #### **審計日誌分析** 系統審計日誌使分析人員能夠通過數據來源洞察網絡攻擊。每個審計事件記錄了 OS 層級的操作(即 system call),例如執行程序、檔案創建和網絡連接。具體來說,事件可以定義為三元組(主體,關係,對象),其中主體是執行程序,對象是系統實體(即程序、檔案或network socket),關係是system call function。在我們的激發性例子中,複製 secret.txt 的事件表示為(cp,read,secret.txt)和(cp,write,Pro2.c)。請注意,系統實體與一組識別屬性相關聯,例如標籤(如 PID 和 inode)和名稱(如文件路徑、程序路徑和 IP 地址)。此外,每個單獨的事件(例如程序寫入文件)表示主體和對象之間的信息流。 為了促進攻擊因果分析,研究界使用了溯源圖(provenance graph )來高效地跟踪審計日誌中的信息流。本質上,溯源圖是系統 OS 層級歷史因果關係的常見表示形式。[圖 1](#圖-1:動機示例的溯源圖 ) 顯示了基於激發性例子的溯源圖示例。邊的方向指示了數據如何在系統實體之間轉移。在調查特定的安全事件時,分析人員通過來源圖搜尋與網絡攻擊相關的信息。在[圖 1](#圖-1:動機示例的溯源圖 ) 中,分析人員首先對事件(即文件上傳到未知的 Git 存儲庫)進行向後跟踪,以識別其根本原因。然後,分析人員對找到的初始入侵點(即內部人員使用 ssh 登錄)進行向前跟踪,以探索相同攻擊的後果。在通過向後和向前跟踪檢查安全事件的祖先和後代時,分析人員可以推斷事件的原因以及負責該事件的高級行為。 ### **B. 挑戰** 在捕捉攻擊序列和來源的過程中,分析人員不僅需要識別惡意行為(例如數據竊取),還需識別正常行為(例如程序編譯和上傳)。儘管溯源圖提供了可視化因果關係並移除無關事件的直觀表示,分析人員仍需花費大量時間調查由於日常活動普遍存在而相關但無害的事件。 從審計事件中抽象出行為是分析人員分析大量事件並專注於特定信息的有效策略。本質上,行為(behavior)代表了審計數據(audit data)的抽象(abstraction)。在行為層面上工作,可以有效地減少從整個事件空間到特定情景中引起注意的行為的分析工作量。這些行為的例子包括數據竊取、後門安裝和程式編譯。然而,分析人員在自動從低層級審計事件中抽象出高層級行為時面臨兩大挑戰: #### **推斷 OS 層級審計事件的語義** 審計事件記錄了詳細的系統執行狀態,但缺乏對行為模式識別至關重要的高層級語義知識。具體來說,具有相似語義的兩個系統實體可能會有不同的名稱。例如,用於 C 編譯器(cc1)和彙編器(as)之間的 IPC 暫存文件可以命名為 /tmp/ccw4T8Hh.s 和 /tmp/cc0JjLYr.s。另一方面,共享相同名稱的系統實體可能指示不同的意圖。在我們的激發性例子中,數據竊取行為利用 cc1 模仿正常用戶活動,而程序編譯和上傳行為使用 cc1 將源代碼編譯成彙編代碼。為了揭示事件語義,現有工作大多利用專家定義的規則或模型來解析審計事件。然而,由於審計事件的巨大規模,即使在中等規模的系統中,手動規範也容易削弱行為抽象的可擴展性。 #### **在大規模審計事件中識別行為邊界** 審計數據的量通常是巨大的,並且審計事件高度交錯。在我們的激發性例子中,即使單個使用 apt 的軟件包安裝行為也會生成超過 50,000 個事件。此外,所有單獨的行為都是因果連接的,如[圖 1](#圖-1:動機示例的溯源圖 )所示。這使得分析人員難以劃分事件和區分行為邊界。更值得注意的是,大多數事件並不一定反映行為,而是系統例行程序(system routine)。當使用 gcc 編譯程序時,子程序(child process) cc1 會讀取大量文件,如 C 頭文件,但只有訪問 Pro2.c 的操作特別與數據竊取行為相關。 ### **C. 問題分析** #### 圖二 ![image](https://hackmd.io/_uploads/rkXevmA_0.png) >從 Pro1.c、Eva.doc 和 secret.txt 開始的子圖對應於程式編譯和上傳、Github 提交以及數據滲漏行為。為了清晰起見,我們用不同的顏色標識行為中的源數據對象,並省略了一些邊(例如,vim 寫入 Pro1.c)。 面對大量用戶登錄會話中的審計日誌,我們的目標是識別高層次的行為(善意/惡意),並提供其語義的量化表示,使分析人員無需介入。此外,我們還希望將語義相似的行為進行聚類 (cluster),並區分代表性行為以供人工檢查。與傳統方法相比,這些方法高度依賴領域知識,我們的目標是通過簡單而有效的見解(insight)實現自動化的行為抽象化。 我們的第一個見解來自觀察:***審計事件中系統實體和關係的語義可以從其使用的上下文中揭示。*** 例如,在使用 gcc 編譯程序時,C 編譯器(cc1)將彙編代碼寫入本地臨時文件(如 /tmp/ccw4T8Hh.s),這些文件稍後會被彙編器(as)讀取。我們注意到這些臨時文件在不同的程序編譯實例中命名是隨機的。然而,根據數據的操作上下文,它們經歷了相同的系統操作,即由 gcc 創建,由 cc1 寫入,由 as 讀取,並由 gcc 刪除。因此,我們可以推斷這些文件可能共享相似的語義,即使它們的標識符不同。這與我們將它們標記為 cc1 和 as 之間的 IPC 媒介的直觀方法一致。我們的核心想法是從審計事件中的上下文信息中揭示系統實體和關係的語義,例如通過分析它們在事件中的相關性。一種提取此類上下文語義的一般方法是使用嵌入模型。其目標是將系統實體和關係映射到嵌入空間(即數值向量空間),在該空間中,向量之間的距離捕捉語義關係。 既然我們可以解釋審計事件的語義信息,下一步就是識別屬於單獨行為的審計事件。我們的第二個見解基於我們的觀察:***主要圍繞用戶意圖目標的高層次行為,可以反映為一系列對數據對象的系統操作。*** 例如,用 gcc 編譯程式 a.c 的目的是將 source code 轉換為可執行的 machine code。我們可以將翻譯過程分解為三個操作:**(1)編譯**:將 a.c 編譯成組合語言檔(assembly language file) a.s,**(2)彙編**:將 a.s 轉換為可重定位目標檔(relocatable object file) a.o,以及 **(3)鏈接**:將 a.o 與多個對象文件組合成可執行檔 a.out。具體而言,WATSON 將行為定義為用戶的意圖目標,而實現該目標的手段則是行為實例。每個行為實例是一系列操作,用戶通過這些操作來實現目標。這些操作可以進一步建模為數據傳輸,行為實例則是一系列這樣的數據傳輸。例如,我們可以通過跟蹤數據從 a.c 轉移到 a.s、a.o,最終到 a.out 來總結上述程式編譯行為。具體來說,**WATSON 將行為定義為用戶的預期目標,而實現該目標的方式則定義為行為實例**。例如,我們可以通過追蹤數據從 a.c 傳輸到 a.s、a.o,最後到 a.out 的過程來總結程ㄕ編譯行為。 基於這一觀察,我們明確地將行為抽象為操作相關數據的數據傳輸序列。特別是在審計日誌中,WATSON 利用審計事件之間的信息流 (information flow) 來識別行為實例,作為跟踪數據傳輸的指導。當這些信息流存在時,我們將事件分組為子圖,形成單個行為實例。例如,在程式編譯期間,編譯、組譯和鏈接操作在審計日誌中記錄為 cc1、as 和 ld 事件。我們可以通過追踪從 cc1 事件中的源文件到 ld 事件中的可執行文件的信息流來識別此行為。圖 2 展示了 WATSON 用於總結動機示例中行為的子圖。 隨著事件知識和行為識別的進展,行為的語義表示自然可以被認為是其組成事件的聚合語義,因為它們被定義為事件序列。 ### **D. 威脅模型** 我們假設底層作業系統、審計引擎和監控數據是受信計算基礎(TCB)的一部分。確保作業系統 kernel、端點監控器或審計日誌本身的完整性超出了本研究的範疇。這種威脅模型在相關的系統審計研究中也被採用。 我們還假設行為會經過kernel層的審計,其操作會被記錄為系統調用審計日誌。雖然攻擊者可能會試圖執行惡意行為而不進行任何系統調用以隱藏其痕跡,但這類行為相對較少,而且對系統其他部分的危害有限。本文專注於單個用戶會話中的行為。我們的見解通常也適用於跨會話或跨機器的行為。 ## **III. WATSON 設計** #### 圖三 >WATSON Overview ![image](https://hackmd.io/_uploads/H1iUsuRu0.png) ### **A. 方法概述** WATSON 的整體方法如 [圖 3](#圖三) 所示,包含三個主要階段:知識圖譜(Knowledge Graph)構建、行為抽象和代表性行為識別。WATSON 以系統審計數據為輸入,例如 Linux 審計日誌 。它總結行為實例,揭示其語義,並最終輸出代表性的高階行為。 具體來說,給定用戶會話中的審計日誌作為輸入,知識圖譜構建模塊首先將日誌解析為三元組,並構建基於日誌的知識圖譜(KG)。然後,事件語義推斷模塊使用基於翻譯的嵌入模型來推斷 KG 中節點的上下文語義。與此同時,行為總結模塊從 KG 中枚舉子圖以總結行為實例。結合節點語義,行為語義聚合模塊接下來增強子圖以編碼行為實例的語義。最後,行為聚類模塊將語義相似的子圖分組為集群,每個集群指定一個高階行為。這些基於集群的行為抽象可以進一步用於減少下游任務的工作量。我們在接下來的部分中介紹 WATSON 的設計細節。 ### **B. 知識圖譜構建** >Knowledge Graph,中文譯為知識圖譜,象徵著一個由不同實體所串聯在一起的網路,為一種機器可讀的資料結構。 >![image](https://hackmd.io/_uploads/rkh3tKR_A.png) #### 圖四 ![image](https://hackmd.io/_uploads/Hki2NtAdC.png) >此圖是簡化版的程式編譯知識圖譜(KG)。五角形表示系統關係,TS 顯示關係元素的時間戳屬性。 為了分析事件的上下文語義,需要一個統一的表示來以同質的方式呈現異質事件。我們提出了一種基於知識圖譜(KG)的新表示來整合異質信息,而不是使用基於來源數據模型( provenance data model , PROVDM )的來源圖。這使得未來能夠捕捉超越僅僅是來源的關係,(例如,文件的元信息如許可權和所有者)。 根據Färber等人對KG的正式描述,我們將基於日誌的KG定義為資源描述框架(resource description framework , RDF)圖。更具體地說,基於日誌的KG是一組眾多的語義三元組。每個三元組對應一個審計事件,由三個元素組成,以(主體,關係,賓體)的形式編碼主體和賓體之間的語義關係。主體和賓體可以是任何類型的系統實體,而關係可以是對賓體執行的任何系統操作。然而,注意三元組中系統實體的類型與審計事件中的一致,例如,主體和賓體不能同時是 file 或 network socket。[圖4](#圖四)顯示了動機示例的知識子圖譜。與溯源圖類似,KG在三元組中編碼了從主體到賓體的信息流。例如,[圖4](#圖四)中藍色表示的依賴鏈說明了從Pro1.c到a.out的數據傳輸。 ### **C. 事件語義推理** 理解審計事件的語義是抽象高層行為的第一步。特別是,準確理解基於適當的表示和粒度,使語義可以有效比較。在先前的研究中,常見的做法是將每個日誌事件作為基本單位進行分析。然而,一個單一的審計事件包括三個元素(主語,關係,賓語),每個元素分別對事件語義有所貢獻。因此,與事件相比,在元素層面進行語義分析提供了更詳細的視圖,因為單個元素的上下文被明確化。在元素層面上工作,我們可以通過整合三個組成元素獲得審計事件的語義,通過整合定義它們的事件獲得行為實例的語義。儘管由於語義分析的不同粒度在可擴展性和準確性之間存在權衡,但選擇計算效率高的嵌入模型允許我們在處理日誌中大量事件時保持精度。因此,我們選擇單個元素而不是審計事件作為語義推理的基本單位。由於嵌入模型可以基於元素作為基礎從其上下文信息中學習審計事件的語義,接下來的問題是如何將元素映射到嵌入空間(即向量空間)。在自然語言處理(NLP)中,詞嵌入已被成功用於提取和表示詞語的語義。受NLP中詞嵌入成功的啟發,EKLAVYA展示了如何基於其使用上下文推斷二進制指令的語義。這促使我們提出一個類似的問題:元素在審計事件中的上下文出現是否與其語義相關?例如,考慮三元組(cc1, read, a.c)和(cc1, read, b.c)。雖然a.c和b.c屬於不同的事件,但在存在(cc1 read)的情況下,兩者的使用上下文表明它們可能作為程序source file具有相似的語義。直觀地,我們旨在將每個元素轉換為一個向量,其中元素之間的小距離(例如,L1/L2-範數距離)表示相似的語義,而大距離則相反。例如,我們期望a.c和b.c的嵌入(即數字向量)之間的距離很小。為實現此目標,我們提出採用基於翻譯的嵌入模型TransE來學習從元素到嵌入空間的映射。 在TransE中,嵌入空間中的翻譯描述了主語加關係與賓語之間的語義關係。具體來說,嵌入空間具有這樣的特性,給定一個三元組(主語,關係,賓語),賓語的位置是主語加上關係(即主語 + 關係 ≈ 賓語)的翻譯。我們選擇TransE的指導原則是其基於翻譯的模型完全符合我們對審計事件上下文語義的理解。例如,考慮(cc1, read, a.c)和(cc1, read, b.c)的情況。由於TransE使用cc1 + read更新a.c和b.c的嵌入,它們將在嵌入空間中相鄰,表示相似的語義。理論上,TransE中的嵌入模型反映了我們對元素語義及其相似性的期望,第V-B節實驗證明了TransE確實學習了與我們領域知識相匹配的元素上下文語義。 在嵌入過程中,每個元素首先被初始化為符號,不考慮其數字標籤或文本名稱。為此,我們將元素編碼為獨熱向量,並將其用作嵌入模型的訓練輸入。每個獨熱向量是一個n維向量,其中n是全域集合中唯一元素的數量。例如,如果整個日誌集包含兩個涉及六個元素的三元組,其中五個是唯一的,那麼元素將被編碼為一個5維向量,第一個是[1, 0, 0, 0, 0],最後一個是[0, 0, 0, 0, 1]。在元素標識符方面,我們使用可執行文件名稱、參數和PID來標識過程元素,使用文件的絕對路徑來標識文件元素,使用IP地址和端口號來標識套接字元素。我們不直接使用元素標籤(例如PID和inode)來識別,因為它們在系統中會被重用,容易引起衝突。對於關係元素,我們使用系統調用號作為標識符,因為它具有唯一性。注意,在嵌入過程中,元素標識符與領域特定語義無關。 在訓練階段,TransE通過最小化在知識圖(KG)中找到的三元組(訓練三元組)的翻譯距離,同時最大化在KG中未找到的三元組(損壞三元組)的翻譯距離來優化元素的嵌入空間。我們通過隨機替換訓練三元組中的主語或賓語來生成損壞三元組,確保新三元組不存在於KG中。嵌入模型優化的損失函數總結如下: ![image](https://hackmd.io/_uploads/BJb3acR_R.png) 總之,TransE的結果是一個n × m的嵌入矩陣,將n維的獨熱編碼元素映射到m維的嵌入空間中。為了進一步推斷審計事件的語義,我們將其組成元素(主語,關係和賓語)的嵌入串聯,生成一個3m維的向量(在我們的例子中是192維)。 ### **D. 行為萃取** 行為抽象的下一步是識別一個用戶登錄會話中的行為實例。我們將行為實例定義為在相關數據上操作並通過信息流相關聯的一系列審計事件。因此,總結個別行為實例的問題可以簡化為提取以數據對象(即file 和 network socket)為根的因果連接子圖。在會話的知識圖(KG)中。需要注意的是,不同於基於路徑的方法,這些方法將溯源圖分解為重疊路徑進行分析,我們是基於子圖對KG進行分區來表示行為實例。這是因為單個路徑無法保留表示多分支數據傳輸的行為的完整上下文。例如,基於路徑的方法無法將屬於數據外泄行為的所有系統操作相關聯,因為程序編譯和GitHub上傳的操作位於不同的路徑上。 為了提取總結行為實例的子圖,我們對以數據對象為根的會話KG進行改進的前向深度優先搜索(DFS)。[圖2](#圖二)展示了在動機示例中的三個行為總結結果子圖。在圖遍歷過程中,我們強制要求每個後續邊的時間戳必須從所有先前邊開始單調遞增。這一設計可以防止由於信息從未來事件流向過去事件而導致的錯誤依賴。此外,我們注意到系統實體的祖先通常包含關鍵的行為上下文。例如,創建根數據對象的進程描述了它們的來源(例如,被電子郵件客戶端下載)。然而,這些祖先在普通的前向DFS中會丟失,因為它們屬於反向依賴。因此,我們在圖遍歷過程中進一步納入了到達的系統實體的一跳傳入邊。此外,我們並不根據深度級別來限制DFS,而是基於特定領域的系統實體(例如,被許多進程讀寫的文件)。由於在審計日誌中僅記錄了粗粒度的因果依賴(系統調用),因果分析面臨依賴爆炸問題。這也對WATSON跟蹤數據傳輸和總結行為實例的能力產生了不利影響。雖然解決依賴爆炸問題不在本研究範圍內,我們旨在通過應用啟發式方法來指定可能觸發依賴爆炸的系統實體(例如.bash\_history和firefox)作為DFS的終止條件來減輕其影響。為保證不丟失任何行為實例,我們對在KG中找到的每個單獨的數據對象進行改進的DFS,除了不反映用戶預期目標根源的庫。如果一個行為是另一個行為的子集,則兩個行為進一步合併。 總之,我們應用改進的DFS算法將會話的KG分區為子圖,每個子圖描述一個行為實例。 ### **E. 行為語義聚合** 在行為實例總結之後,我們下一步是提取行為實例的語義。回顧一下,每個行為實例分區由嵌入矩陣使用高維向量表示的審計事件組成。然後,我們自然地通過結合行為實例分區和嵌入矩陣來推導行為實例的語義。 為了獲取行為實例的語義表示,一種簡單的方法是將其組成事件的個別向量相加。然而,這種方法僅在假設所有組成事件對行為實例語義貢獻相同的情況下有效。在實踐中,這一假設通常不成立,因為事件對反映行為語義的相對重要性不同,而且噪聲事件的影響也會不同。 #### **相對事件重要性** 用戶執行的任何高級任務由多個較小的操作組成,但每個操作的重要性或必要性可能不相同。在完成所需任務時,通常需要執行樣板操作。考慮[圖4](#圖四)中的程式編譯。用戶通常不直接啟動gcc來編譯源代碼,而是首先使用常見工具(如ls和dir)定位源文件。雖然這些樣板操作反映了用戶活動,但它們並沒有唯一地與高級行為相關。因此,關於行為抽象任務,這些樣板操作應該比直接代表行為的操作受到更少的關注。 關鍵問題是,如何自動分配每個操作的相對重要性?我們的洞察來自於用戶會話的審計事件中描述的操作。我們觀察到與行為無關的事件在會話中更為普遍,因為它們在不同行為中重複,而實際與行為相關的事件發生頻率較低。基於這一觀察,我們提出使用事件的頻率作為度量標準來定義其重要性。更具體地說,我們採用逆文檔頻率(IDF)來確定特定事件對整體行為的重要性。IDF廣泛用於信息檢索中作為術語加權技術。其原理是為不常見的術語賦予更多的區別能力。 在我們的具體場景中,每個審計事件和用戶會話被視為術語和文檔。測量IDF值的方程如下: ![image](https://hackmd.io/_uploads/B1E8ZiAdC.png) #### **噪聲事件** 審計日誌的低級別和冗長特性使得噪聲事件的存在成為分析師面臨的主要挑戰之一。減少噪聲的出現有助於提高WATSON的效果。本節將討論兩種類型的噪聲事件:**冗餘事件**和**常見事件**。 1. **冗餘事件**:在行為實例中,有些事件即使被移除也不會改變數據傳輸。為了識別這些冗餘事件,我們在shadow事件的概念上進行了構建,該概念指的是因果關係已被其他關鍵事件表示的文件操作。我們還結合了文獻中的領域知識來增強冗餘事件的減少。從高層次來看,分析師列出了在因果分析中不引入明確信息流的特定文件。例如,許多進程在執行期間創建臨時文件來存儲中間結果。由於這些文件在其生命週期內僅與單個進程進行交互,因此它們不會影響數據傳輸,也不會對行為抽象做出貢獻。需要注意的是,圖4中用作IPC的/tmp/1和/tmp/2不被歸類為臨時文件。所有冗餘事件都被認為是噪聲,並從行為分區中移除。 2. **常見事件**:另一種噪聲來自於定期執行某個操作的文件操作。我們稱之為常見事件。此類事件的例子包括(vim, write, .viminfo)(文件編輯歷史緩存)和(bash, read, /etc/profile)(shell程序設置)。我們將常見事件分類為噪聲事件,因為它們與系統例程相關,而不是具體行為。通常,常見事件具有兩個特徵:(a)它們總是發生在給定操作中,(b)它們發生的順序是固定的。為了識別和過濾它們,我們首先枚舉程序可以執行的所有可能操作。一個操作是指程序在系統中的執行生命周期內生成的一系列事件。然後,給定每個程序的事件序列,我們總結固定模式中總是發生的事件作為常見事件。基本上,我們將常見事件識別問題公式化為最長公共子序列(LCS)搜索問題。給定程序的事件序列,我們提取它們之間的LCS作為常見事件。與1.類似,所有常見事件都從行為分區中移除。我們注意到NODEMERGE首先提出識別常見事件(即數據訪問模式)進行數據減少。然而,它側重於進程初始化操作中的文件讀取操作(例如,加載庫和檢索配置)。相反,WATSON針對更一般操作中的所有類型的文件操作(例如,vim創建並寫入.viminfo來緩存用戶停止編輯文件的位置)。 在使用IDF為事件加權並移除噪聲事件後,我們通過匯聚其組成的向量化事件來推導行為實例的語義表示。我們嘗試了不同的匯聚方法來實現,如相加、雙交互和全局平均匯聚。最終採用的是相加匯聚,因為我們觀察到簡單地將事件的語義相加已經有效地整合了事件的語義信息。 總之,行為抽象階段以基於日誌的知識圖譜為輸入,並在三維嵌入空間中生成行為實例的向量表示。 ### **F. 行為聚類** 如第二節 C部分所述,行為實例是實現高級行為的多種變化。換句話說,一個行為可以被認為是相似實例的一個聚類。因此,行為簽名是聚類中最具代表性的實例(例如,中心點)。通過這種方式,分析師只需調查一些自動選擇的簽名來進行行為匹配,而不需要調查整個聚類空間。給定行為實例的向量表示,WATSON使用余弦相似度計算它們的語義關係,如下所示: ![image](https://hackmd.io/_uploads/H1NRA9R_A.png) WATSON使用凝聚層次聚類分析(HCA)算法來聚類相似的行為實例。最初,每個行為實例屬於自己的聚類。然後HCA迭代計算聚類之間的余弦相似度,並結合兩個最近的聚類,直到最大相似度低於合併閾值(在我們的情況下為0.85)。我們選擇中心點連結作為確定聚類之間相似度的標準。換句話說,聚類相似度估計取決於聚類中的中心點(算術平均位置)。 一旦識別出聚類,就會基於實例的代表性提取每個聚類的行為簽名。WATSON通過計算每個實例與其餘實例的平均相似度來量化每個聚類中每個實例的代表性。具有最大相似度的實例被選為簽名。通過區分行為簽名,我們期望在人工檢查前看到大量的分析工作量減少,因為語義上相似的行為已經被聚類在一起。例如在我們的動機示例中,WATSON將多個程序編譯和上傳實例聚類在一起,並僅報告代表供分析師調查。值得注意的是,數據外泄行為未能編譯非法源代碼,因此丟失了從源文件到可執行文件的數據傳輸。結果,即使它們使用相同的工具(gcc編譯程序和git上傳文件),它也沒有與程序編譯行為聚類在一起。 總之,代表行為識別階段將相似的行為實例聚類並區分代表行為作為簽名。 ## **IV. 實作** 我們使用9.2K行的C++程式碼和1.5K行的Python程式碼來原型化WATSON。在本節中,我們討論實作中的一些重要技術細節。 ### 日誌輸入介面 WATSON將系統審計數據作為輸入。我們為審計日誌定義了一個通用介面,並建立輸入驅動程序以支持不同的日誌格式,例如Linux Audit 格式(auditd 、auditbeat 和DARPA數據集)。我們的驅動程序可以擴展以支持其他審計來源,即適用於Linux的CamFlow 和LPM ,適用於Windows的ETW,以及適用於FreeBSD的Dtrace。 ### 模組化設計 模組化是WATSON設計中的指導原則之一。每個模組都可以自由替換,以實現更有效的解決方案或在性能與準確性之間進行應用特定的取捨。以事件語義推理模組為例。在我們的實作中,TransE用於學習審計事件的嵌入空間,因為它的記憶體和時間效率儘管其在可以編碼的關係類型上有一定限制。如果WATSON用戶希望,TransE可以輕鬆地替換為其他嵌入算法(例如,TransR),而不影響WATSON的功能。 ### 知識圖譜構建 為了構建基於日誌的KG,WATSON首先按時間順序對審計事件進行排序。然後,使用系統實體作為Head和Tail,並使用系統調用功能作為Relation,將每個事件轉換為基於KG的三元組。為了解釋三元組轉換的規則,我們手動分析了32個常用的系統調用,包括 **(1)進程操作**,例如clone、execute、kill和pipe;**(2)文件操作**,例如read、write、rename和unlink;**(3)socket操作**,例如socket、connect、send和receive。將審計事件解析為三元組後,使用關聯式數據庫(PostgreSQL)來存儲構建的KG。請注意,我們計算了在[第三節 C 部分](#事件語義推理)中定義的系統實體標識符的64位哈希值,作為數據庫中的主鍵 (primary key)。此外,所有系統實體(例如,process name)和關係(例如,timestamp)的屬性都被保留為三元組中元素的屬性。 ### 參數設置 我們使用Google Tensorflow實作了事件語義推理模組中的嵌入模型。該模型使用SGD優化器進行優化,邊際值、批量大小和訓練輪數分別固定為1、1024和500。在超參數方面,我們應用網格搜索:學習率和嵌入大小在{0.005, 0.010, 0.015}和{32, 64, 128, 256}之間進行調整。同樣,對於行為聚類,合併閾值在{0.7, 0.75, 0.80, 0.85, 0.9}之間進行搜索。根據我們實驗中的最佳F1得分,我們顯示了學習率為0.010、嵌入大小為64和合併閾值為0.85的設置結果。請注意,合併閾值是一個可配置參數,分析師可以根據特定情況進行自定義。例如,閾值可以降低以滿足高的真陽性率,或提高以維持低的假陽性率。 ### 行為數據庫 我們觀察到系統中的行為是重複出現的,新的session總是包含先前出現的行為。因此,為了避免重複的行為分析,我們將WATSON生成的行為簽名用領域特定的描述標記,並存儲在我們的數據庫中。量化語義的每個行為的嵌入被保留為行為對象的屬性。一旦出現新行為實例,WATSON首先計算其與所有存儲的簽名的cosine相似度。如果沒有相似度高於合併閾值,分析師將手動調查其語義;否則,通過查詢數據庫中的相似行為簽名來檢索其語義。 ## **V. 評估** 在本節中,我們使用四個數據集,實驗性地評估WATSON的四個方面:1)推斷事件語義的可解釋性;2)行為抽象的準確性;3)在攻擊調查中的整體體驗和手動工作量減少;以及4)性能開銷。 ### **A. 實驗數據集** #### 表一 ![image](https://hackmd.io/_uploads/BJr0cr1FR.png) >以下是這張表格的中文翻譯: --- **表 I:任務概覽及場景描述。第三列顯示完成任務時的真實行為。** | 任務 | 場景描述 | 行為 U1 | 行為 U2 | 行為 U3 | 行為 U4 | |----------------|------------------------------------------|-----------------|-----------------|-----------------|-----------------| | 程序提交 | 將機器學習程序上傳到 GPU 伺服器 | vim + scp | vi + scp | emacs + scp | nano + scp | | 代碼參考 | 下載並編譯線上程序以供參考 | wget + gcc | elinks + gcc | wget + python | elinks + python | | 數據集下載 | 下載並解壓公共數據集 | wget + gzip | wget + bzip | elinks + unzip | wget + bzip | | 程序編譯 | 編寫 C/C++ 程序並測試其功能 | vim + gcc | vim + g++ | vim + gcc | vim + gcc | | FTP 伺服器登錄 | 使用 ssh 或 ftp 服務登錄 FTP 伺服器 | ftp | ssh | ftp | ftp | | 軟件包安裝 | 運行 apt 應用程序安裝軟件包 | apt update/install | apt update/install | apt update/install | apt update/install | | 軟件包刪除 | 運行 apt 應用程序移除軟件包 | apt purge | apt purge | apt purge | apt purge | --- #### 表二 ![image](https://hackmd.io/_uploads/BkkesHJKA.png) >這張圖表描述了幾種不同的安全事件或攻擊場景,每一項都標明了相關的攻擊方式和參考文獻: >1. **數據竊取**:一個惡意腳本被普通用戶誤下載並執行,該腳本會從本地機器中竊取敏感信息。參考文獻:PRIOTRACKER [53] >2. **非法儲存**:攻擊者在另一個用戶的主目錄中創建了一個目錄,並使用它來存儲非法文件。參考文獻:Taser [30] >3. **內容破壞**:內部人員篡改了機密程序和文件。參考文獻:Taser [30] >4. **後門安裝**:攻擊者入侵了一個 FTP 伺服器,啟動了一個遠程 Bash shell,並安裝了後門程序以獲得對伺服器的永久訪問權限。參考文獻:Protracer [57] >5. **Passwd-gzip-scp**:攻擊者從 /etc/passwd 文件中竊取用戶賬戶信息,使用 gzip 壓縮該數據,並通過 ssh 服務將數據傳輸到遠程機器。參考文獻:Xu et al. [82] >6. **Wget-gcc**:下載了惡意源代碼,並編譯和執行它。參考文獻:Xu et al. [82] >7. **配置泄漏**:一個下載的 txt 文件利用 vim 中的代碼可執行漏洞收集機器配置,為未來的攻擊做準備。參考漏洞:CVE-2019-12735 [2] >8. **密碼重用**:一名管理員從 /etc/shadow 文件中讀取加密的用戶密碼,使用 John 解碼,並使用明文密碼在其他應用程序中登錄。 我們在四個數據集上評估 WATSON:一個良性數據集、一個惡意數據集、一個背景數據集和 DARPA TRACE 數據集。前三個數據集是從五台運行 Ubuntu 16.04(64位)的企業服務器上的 ssh session 中收集的。最後一個數據集是在運行Ubuntu 14.04(64位)的主機網絡上收集的。審計日誌來源為 Linux Audit。 在良性數據集中,四個用戶獨立完成了七個日常任務,如[表一](#表一)所述。每個用戶在150個 session 中執行150次任務。總體上,我們收集了 17(預期為4×7 \= 28)類良性行為,因為不同用戶可能會執行相同的操作來完成任務。請注意,每次執行任務時,都會有一些用戶特有的工件,例如啟動的命令。對於我們的良性數據集,共有 55,296,982 個審計事件,構成了 4,200 個良性 session。 在惡意數據集中,按照前人的研究程序,我們模擬了八種真實世界場景中的攻擊,如[表二](#表二)所示。每次攻擊由兩位安全工程師在企業服務器上小心地執行十次。為了納入典型噪音企業環境的影響,我們在攻擊過程中同時執行了大量普通用戶行為和底層系統活動。對於我們的惡意數據集,共有 37,229,686個審計事件,構成了80個惡意會話。 在背景數據集中,我們記錄了開發人員和管理員在服務器上的行為兩週。為了確保評估的正確性,我們手動分析這些會話,僅將表一和表二中沒有行為的會話納入數據集。對於我們的背景數據集,共有 183,336,624個審計事件,構成了1,000個背景 session。 DARPA TRACE 數據集是由 TRACE 團隊在 DARPA Transparent Computing (TC) 計劃中釋出的APT攻擊數據集。該數據集來源於2018年4月為期兩週的紅藍對抗 Engagement 3 期間的主機網絡。在對抗中,模擬了一個企業,提供不同的安全關鍵服務,例如網頁伺服器、SSH 伺服器、電子郵件伺服器和SMB伺服器。紅隊在目標主機上進行了一系列國家級和常見的攻擊,同時執行良性行為,例如 ssh 登錄、網頁瀏覽和電子郵件檢查。對於DARPA TRACE數據集,共有 726,072,596 個審計事件,構成了 211 個圖。請注意,我們僅分析符合第四節三元組轉換規則的事件。 我們在前三個數據集上測試 WATSON 的可解釋性和準確性,因為我們需要事件語義和高級(包括良性和惡意)行為的精確真實性來進行驗證。我們進一步探討了 WATSON 在攻擊調查中針對我們的惡意數據集和 DARPA TRACE 數據集的效力,因為我們可以獲得與攻擊案例相關的惡意行為的真實性。 總體來說,我們的行為抽象實驗是全面的,相較於現實世界系統中的行為特徵。特別是,良性行為是基於基本系統活動設計的,這些活動在網絡安全研究中已經引起了關注;而惡意行為則是從先前研究中的典型攻擊場景中選擇的,或者由擁有攻擊調查數據收集專業知識的紅隊生成的。 ### **B. 事件語義推斷的可解釋性** #### 圖五 ![image](https://hackmd.io/_uploads/HkJVaS1FR.png) >t-SNE視覺化: (a) 顯示了20個抽樣session的嵌入空間。每個點表示一個系統實體或關係。紅色(左)和綠色(右)方框分別標示了 (b) 和(c) 的位置; (b) 和(c)標出了53個進程實體和25個數據實體。 #### 表三 ![image](https://hackmd.io/_uploads/Sy7ujAJ9R.png) >六個審計事件中的語義距離(神奇因子, "suprise" factor)(基於知識圖譜的三元組)。B 和 M 表示事件是良性還是惡意。 我們通過視覺和量化方式測量 WATSON 對審計事件學到的語義:在視覺上,我們使用 tSNE 將嵌入空間投影到 2D 平面,讓我們對嵌入分佈有直觀的理解;在量化上,對於每個三元組,我們將 TransE 模型中的訓練損失與我們對事件語義及其相似性的知識進行比較。 #### **系統實體的嵌入** 每個元素在事件中的語義表示為64維向量,其中向量之間的空間距離編碼了它們的語義相似性。為了可視化這些距離,我們應用 t-SNE 將高維嵌入空間投影到兩維(2D)空間,同時在很大程度上保留向量之間的結構信息。為了管理複雜性,我們從前三個數據集中隨機抽樣了 20 個會話進行可視化,獲得了 2,142 個點的散點圖。[圖5a](#圖五)顯示了嵌入空間的2D可視化。空間中的點分佈在聚類中,表明事件確實根據某種相似性度量進行了分組。 我們進一步選擇了八個程序(git、scp、gcc、ssh、scp、vim、vi和wget)來調查進程元素嵌入。[圖5b](#圖五)顯示了[圖5a](#圖五)的放大視圖,包含對應於八個程序的 53 個元素。為了清晰起見,元素用進程名稱和部分參數標記。請注意,身份信息在one-hot編碼過程中被抹去,因此不會對語義推斷產生影響。雖然大多數相同程序的元素聚集在一起,但有幾個有趣的案例支持嵌入實際上是基於語義的假設。例如, git 有一些子命令(push、add、commit)。git push 映射到 scp 和 wget 更接近,而不是 git commit和 git add。這與高級行為一致,因為 git push 將本地文件上傳到遠程倉庫,而 git add 和 git commit 在本地操作文件。另一個有趣的例子涉及ssh,其中可以識別出兩個不同的聚類,但它們都表示 ssh 連接到遠程主機。仔細檢查發現,這兩個聚類實際上對應於使用和不使用 X-forwarding 的ssh,反映了語義上的差異。 同樣,[圖5c](#圖五)顯示了25個數據對象元素的 t-SNE 圖。正如預期的那樣,socket 連接與文件分開,並通過不同的網絡端口聚集。請注意,port 22 的 socket 元素之間的相對較大距離是 t-SNE 投影的人工產物。在投影前的嵌入空間中,它們實際上很接近,通過餘弦相似性進行測量。此外,WATSON 將id_rsa、id_rsa.pub 和 known_hosts 組合在一起,表明它們在身份認證方面具有相似功能。然而,id_rsa 和 id_rsa.pub 有不同的語義,因為它們分別表示私鑰和公鑰。TransE 未能識別它們之間的差異,因為兩者僅在SSH登錄期間被ssh訪問。一種潛在的方法是涉及額外的信息,如文件權限,用於事件語義推斷。 #### **事件語義** 我們計算KG基於三元組的平移距離來量化 WATSON 學到的事件語義。這個距離可以直觀地看作是衡量一個事件「驚喜程度」的標準( how “surprising” ),較低的值表示常見的事件,較高的值表示罕見的事件。一些現有的方法利用事件的罕見性來衡量它們的異常得分。為了探索我們的事件語義是否與這些啟發一致,我們還考慮在分析語義距離時事件是良性還是惡意。我們將一個事件分類為惡意事件,如果它在攻擊活動中起到了關鍵作用。這個實驗在我們的惡意數據集中隨機選取的 1,000 個事件上進行。統計結果顯示,惡意事件的距離總是大於良性事件的距離。這與我們的領域知識一致,因為惡意事件對分析師來說應該被認為是「驚喜」的(surprising)。由於空間限制,我們在[表三](#表三)中展示了六個事件作為示例。具體來說,Configuration Leakage行為中的(vim, execve, bash)和(bash, send, 172.26.X.X)比其他良性事件產生了更高的距離。 總得來說,WATSON 學到的語義與我們對事件上下文的直觀理解一致。 ### **C. 行為抽象的準確性** #### 表四 ![image](https://hackmd.io/_uploads/Sy2_fZ-c0.png) >表IV:session 中行為抽象的評估結果。第2列報告了原始審計日誌(AL)、知識圖譜(KG,經過噪聲減少)和行為簽名(BS)中的事件數量。第3-5列詳細說明了 WATSON 在 5280 個會話中的 25 種不同行為的抽象準確性。第 1 列中的 -U# 表示[表I](#表一)中的特定用戶。 為了評估 WATSON 在行為抽象方面的準確性,我們使用 WATSON 學到的行為簽名來預測我們前三個數據集中具有相似行為的 ssh session。為此,我們選擇了 25 個行為,包括[表I](#表一)中的17個良性例程和[表II](#表二)中的 8 個惡意攻擊作為抽象候選。由於背景噪聲很大,這些行為候選的審計事件僅占整個日誌量的 0.2%。對於每個行為候選,我們首先隨機選取一個 session,然後生成相應的行為簽名(behavior signature)。接著,我們使用簽名來預測剩餘 5,279 個 session 中的相似行為。根據[第III-F節](#行為聚類)的說明,兩個行為被認為是相似的,如果它們的餘弦相似度超過合併閾值(0.85)。性能指標使用召回率、精確度和 F1 分數來測量。直觀地說,它們分別提供了真陽性率、假陽性率和一般準確性的度量。我們將真陽性定義為正確預測為行為候選的會話,將假陽性定義為錯誤預測為行為候選的會話。[表IV](#表四)提供了實驗結果的摘要。 WATSON 在行為抽象方面展示了令人鼓舞的結果(平均 F1 分數為92.8%)。即使是複雜的行為 Code Reference-U2,WATSON仍然達到了 83.5% 的 F1 分數。這是因為通過利用審計事件的上下文信息,WATSON 能夠準確推斷行為實例的語義。例如,在使用 gcc 編譯程序時,child process如 cc1 和 as 會創建、讀取和寫入臨時文件以進行 IPC。這些臨時文件在嵌入空間中最初是隨機初始化的。通過它們與 cc1 和 as 的上下文關係,WATSON 推斷它們共享類似的語義,作為 cc1 和 as 之間的 IPC 介質,因此在嵌入空間中增強了它們的接近性。因此,WATSON 提高了程序編譯實例的相似度,儘管它們最初訪問了不同的臨時文件。 另一個有趣的觀察是,在大多數情況下([表IV](#表四)中的20/25),精確度高於或等於召回率。相對較低的召回率顯示,即使在使用 IDF 加權和噪聲去除後,行為實例的語義也可能受到噪聲事件的影響。也就是說,高精確度表明這種噪聲造成的影響是有限的。特別是,我們發現受到噪聲事件影響的行為實例可能會偏離原始聚類。然而,它們更可能形成新的聚類作為假陰性,而不是作為假陽性加入現有的聚類。此外,儘管在大多數情況下精確度高於召回率,但平均精確度(92.8%)仍低於平均召回率(94.2%)。這主要是由兩個特殊情況造成的,即程序提交-U1和程序提交-U2(簡稱PS1和PS2)。PS1 和 PS2 顯著降低了平均精確度,因為它們被聚集在一起,並且彼此被持續識別為假陽性。事實上,預測 PS2 給定 PS1 或反之亦然是合理的,因為它們唯一的區別在於使用 vim 還是 vi 來編輯文檔。因此,WATSON 仍然以低假陽性實現了行為抽象。 接下來,抽象準確性與行為簽名的大小沒有直接關係。例如,雖然 Package Installation 產生了最大的簽名,比其他簽名大了幾個數量級,但它們仍能達到 96.6% 的 F1 分數,超過了大多數情況。然而,Package Deletion 也生成了相對較大的簽名,但達到的準確性是最低的(87.5%),甚至遠低於平均水平。一個合理的解釋是WATSON通過代表性模式來識別行為,這些模式不一定與空間尺度一致。Apt Update 和 Install 使用 gpgv 來驗證密鑰是一個獨特的行為模式。另一方面,Apt Purge 使用 update-motd 來檢查所需更新的數據包數量。然而,這一模式也存在於 Apt Update 和 Install 中,降低了其可區分性。此外,抽象準確性也不依賴於任務類型。例如,Code Reference 任務對 Code Reference-U1 和 Code Reference-U2 行為的準確率分別為 94.2% 和 83.5% 。這表明,決定行為可識別性的是系統操作,而不是任務本身。 最後,我們觀察到 WATSON 在分類惡意行為方面表現出高準確性。對於所有八個攻擊場景,WATSON在 召回率和精確度方面的平均值分別為 95.0% 和 97.9%。換句話說,有 4 個惡意會話被漏掉,有 2 個良性會話被錯誤預測為惡意行為。分析師可以通過降低 HCA 中的合併閾值來進一步提高召回率,最終檢測到所有 80 個惡意session。儘管惡意行為可能在日常例程中無縫融合背景活動,但它們中的大多數(如果不是全部)具有明顯的操作。例如,Configuration Leakage 和 Backdoor Installation 攻擊不是每天都會發生的情況,vim 收集系統配置並遠程發送,或 ProFTPD 調用特權 bash 下載可執行文件。因此,WATSON 能夠識別惡意行為並將其與良性行為區分開來。 ### **D. 不同嵌入方法的比較** #### 圖六 ![image](https://hackmd.io/_uploads/BkYIYZ-9A.png) >五種不同嵌入方法在行為抽象中的F1分數。 為了展示在行為語義推斷方面的有效性,我們將 TransE 與另外四種嵌入方法進行比較,分別是 node2vec、metapath2vec、TransH 和 TransR。在訓練這些嵌入模型之前,我們已將我們的審計事件編碼轉換為它們接受的輸入格式。例如,我們為 metapath2vec 模型定義了三種類型的元路徑(i.e., file to process to file, socket to process to socket, and process to process to process)以進行隨機漫步。 * **node2vec**: 該方法基於節點的局部鄰域定義其上下文。它遵循這一直觀,即來自相同網絡社區的節點應在嵌入空間中緊密地映射在一起。 * **metapath2vec**: 該方法將基於元路徑的隨機漫步視為語料庫中的自然語言句子。然後,它將這些句子輸入到 skip-gram 模型中來學習節點嵌入。 * **TransH**: 為了解決 TransE 在建模將一個實體轉換為多個實體(即1對N問題,類似地,N對1和N對N問題)時遇到的問題,該方法通過引入額外的超平面來學習關係嵌入,從而擴展了TransE。 * **TransR**: 與 TransE 和 TransH 假設實體和關係嵌入在共享空間內不同,該方法在單獨的空間中構建實體和關係。為了訓練嵌入,它首先將實體從實體空間投影到關係空間,然後計算投影實體之間的轉換。 [圖6](#圖六)總結了不同嵌入方法在我們前三個數據集上的行為抽象準確性。基於翻譯的嵌入方法(即TransE、TransH和TransR)在表現上始終超越了 node2vec 和 metapath2vec,這充分證明了我們選擇使用基於翻譯的模型來推斷上下文語義的設計選擇。具體而言,node2vec 基於元素所屬的行為來學習語義。其原則是來自相同行為的元素共享類似的角色,因此應具有類似的嵌入。然而,對於審計數據來說,行為中的系統實體元素不一定是相似的。例如,在程序編譯行為中,vim 和 gcc 在語義上彼此無關。此外,metapath2vec 利用基於元路徑的隨機漫步生成不同類型元素(例如,進程和文件)的異質鄰域。缺點是它在訓練系統實體元素的嵌入空間時沒有考慮關係元素。然而,我們注意到關係對推斷系統實體語義至關重要。例如,(bash, read, /etc/passwd) 和 (bash, delete, /etc/passwd) 表示 bash 元素的完全不同語義。因此,我們假設這解釋了為什麼 node2vec和 metapath2vec 無法達到與基於翻譯的方法相當的抽象準確性。 在三種基於翻譯的嵌入方法中,TransR 略微優於 TransE 和 TransH ,因為它將實體和關係嵌入空間分開。然而,它會帶來更大的運行時間開銷。在我們的實驗中,TransE、TransH 和 TransR 的模型訓練時間分別為 2.13、3.47 和 5.70 小時。不同的基於翻譯的方法在計算效率和預測準確性之間展示了一種權衡。事實上,TransE 和 TransR 達到了幾乎相同的準確性,但 TransE 的速度約為 TransR 的三倍,這表明 TransE 在長期日誌分析中更具擴展性。 ### **E. 攻擊調查中的有效性** #### 圖七 ![image](https://hackmd.io/_uploads/r1P6Wz-cA.png) >圖7:在我們的惡意數據集中的分析工作負載(a)和行為(b)的統計數據,在原始審計日誌(AL)、知識圖譜(去除噪音)和行為抽象(WATSON)下的情況。每個攻擊案例對應十個會話,我們報告平均結果。 #### 圖八 ![image](https://hackmd.io/_uploads/ry53SzZ5R.png) >圖8:案例研究: (a) 配置洩漏。 (b) 內容破壞。 我們通過實證測量攻擊調查中的分析工作量減少來探索 WATSON 的有效性。在本文中,分析工作量量化為分析師識別 session 中所有行為所需經歷的事件數量。具體而言,調查前和調查後的事件指的是原始審計日誌和每個識別到的行為簽名的事件總和。雖然分析師不一定會查閱所有相關事件來識別行為,但這個指標提供了一種合理的方法來展示由於行為抽象而減少的事件比例。我們在模擬的惡意數據集(包括[表II](#表二)中的八個攻擊場景)以及 DARPA TRACE 數據集(包括五個真實的 APT 攻擊)上評估了 WATSON。 1. **在惡意數據集上的評估**: [圖7b](#圖七)總結了我們在惡意數據集中的分析工作量減少結果。作為比較,我們還展示了透過去除[第III-E節](#行為語義聚合)定義的噪聲事件的中間工作量減少。將[表IV](#表四)中的結果與[圖7b](#圖七)結合起來,我們注意到 WATSON 顯著減少了分析工作量,而不犧牲攻擊調查的準確性。在 80 個惡意 session 中的八個攻擊場景的分析中,WATSON 顯示出兩個量級(最多 28 4倍,平均 134 倍)的工作量減少。我們還觀察到行為數量的大幅減少,如[圖7a](#圖七)所示。這是可以預測的,因為會話中的行為實例總是比代表性行為多,WATSON 可以將它們分組以防止重複調查。 為了獲得進一步的見解,我們研究了[表II](#表二)中的兩個攻擊案例:**配置洩漏**和**內容破壞**。它們的審計事件分別在[圖8a和圖8b](#圖八)中可視化。我們用顏色編碼的信息流總結行為實例。 **配置洩漏**: 在這個攻擊案例中,攻擊者利用 vim 中的代碼可執行漏洞來收集機器配置,以便未來進行妥協準備。背景場景是,一位企業中的 AI 工程師打算開發一個圖像識別模型。她首先從公司網站下載訓練數據集,因為內部文件伺服器上找不到。接下來,她通過將數據和代碼提交到專門用於機器學習的 GPU 伺服器來實現和評估學習模型。與此同時,她使用 elinks 在線搜索模型優化。不幸的是,她錯誤地下載了一個惡意文本文件作為參考。該文件成功繞過了 vim 中的前綴檢查,調用 bash 來收集機器配置,並進一步將信息遠程傳輸。為了提高圖像預測準確性,該工程師經常在線尋找模型優化技術,這引入了一堆噪聲事件。 如[表IV](#表四)所示,WATSON 準確地識別了來自其他常見行為的配置洩漏。它能夠區分這種行為的原因有兩個: (1) 收集和傳輸機器配置是一種獨特的行為模式,與像材料下載和代碼提交這樣的日常例行工作相比有所不同 (2) (vim, fork, bash) 三元組因其在系統中的低頻率而被賦予了高重要性權重。任何包含它的行為實例將顯著偏離其餘行為。此外,WATSON 會將冗餘行為如訓練程序提交和在線材料參考進行聚類,從而通過避免重複檢查來有效減少分析工作量。 >Serv-U FTP 是一款由 SolarWinds 開發的 FTP 伺服器軟體。它允許用戶在網絡上傳輸文件,並且支援 FTP、FTPS 和 SFTP 協議。 >主要特點包括: >- 用戶管理:支援用戶和群組的管理,可以設置不同的權限和訪問控制。 >- 安全性:提供加密功能(如 FTPS 和 SFTP),保護數據在傳輸過程中的安全性。 >- 界面友好:擁有易於使用的管理界面,便於配置和監控。 >- 自動化:支持文件自動上傳、下載以及其他自動化任務。 >Serv-U FTP 常被用於需要文件傳輸和共享的環境中,特別是當需要高級別的安全性和用戶控制時。 >IDS(Intrusion Detection System,入侵檢測系統)是一種安全技術,用於檢測網絡或系統中的可疑活動或攻擊。 **內容破壞**: 這種攻擊是一種內部威脅。通過下載的惡意有效負載,攻擊者首先利用 Serv-U FTP 本地提升漏洞來調用特權 bash。在成功建立初步妥協和立足點之後,他發現了一個機密項目的目錄。然而,由於防火牆阻止了遠程文件傳輸,他決定隨機篡改已完成的程序。由於知識豐富的內部人員知道已部署的 IDS,他模擬了大量普通活動以掩飾自己為正常開發者,如編譯程序和接收每日任務。因此,儘管 IDS 生成了該會話的警報,但攻擊者仍然浪費了分析師大量的勞動力和時間來確定所有行為並重建攻擊場景。傳統上,分析師必須調查會話中的所有行為以驗證 IDS 報告的警報的真實性並探索其他潛在威脅。為此,總共 550,281 個審計事件,其中大多數是噪聲信息,需要手動檢查。幸運的是,由於內部人員引入的大多數噪聲行為是冗餘的,WATSON 可以有效地將它們組合起來,將分析工作量減少 284 倍。例如,將多個程序編譯實例替換為一個行為簽名進行分析。我們發現 WATSON 在內部威脅調查中尤其有效,這主要歸功於其聚類正常行為的能力。 >DARPA TRACE(DARPA's Trustworthy & Reliable Automated Cybersecurity Evaluation)是一個由美國國防高級研究計劃局(DARPA)資助的研究項目,旨在提高網絡安全領域中的自動化評估和可信性。 #### 表五 ![image](https://hackmd.io/_uploads/HyEGRMZ50.png) >這張表格提供了 DARPA TRACE 數據集中攻擊案例的概覽,包含場景描述、根數據對象、節點數量和邊數量。 >![image](https://hackmd.io/_uploads/H18sCfZcC.png) 2. **在 DARPA TRACE 數據集上的評估**: 根據 DARPA TC 計劃報告中的事實,DARPA TRACE 數據集包含五個攻擊場景,即 Firefox 後門(簡稱Firefox Backdoor)、帶有 Drakon 投放器的瀏覽器擴展(簡稱Extension Backdoor)、帶有 Drakon 投放器的 Pine 後門(簡稱Pine Backdoor)、釣魚電子郵件鏈接和帶有可執行附件的釣魚電子郵件(簡稱 Phishing Executable)。我們注意到,釣魚電子郵件鏈接攻擊本質上在系統調用審計日誌中不可見,因為在用戶訪問釣魚網站並輸入憑據信息後,受害者的機器上沒有隨後的系統操作。因此,我們已將此攻擊排除在行為分析之外,只調查[表V](#表五)中描述的其餘攻擊。這些攻擊根源的詳細信息見[表VI](#表五)。 #### 圖九 ![image](https://hackmd.io/_uploads/SkenxQZcC.png) >DARPA TRACE 數據集中的分析工作量和行為統計,分為原始審計日誌 (AL)、知識圖譜 (去噪後) 和行為抽象 (WATSON)。 #### 圖十 ![image](https://hackmd.io/_uploads/BkkbJmZ5R.png) > DARPA TRACE 數據集中四個 APT 攻擊的惡意行為。 #### 表六 ![image](https://hackmd.io/_uploads/BJLDOQb90.png) [圖9](#圖九)展示了 DARPA TRACE 數據集中攻擊調查的分析工作量和行為的減少。正如我們所見,WATSON 顯著地減少了約 930 倍的分析工作量。此外,減少的行為表明 WATSON 可以聚類語義相似的行為,幫助安全分析師專注於代表性行為的檢查。為了更好地理解 WATSON 的有效性,我們進一步檢查了[表V](#表五)中與 APT 攻擊相關的行為集群。我們的分析顯示,在四個 APT 攻擊中的三個(即Extension Backdoor、Pine Backdoor和Phishing Executable)中,WATSON 成功地總結了相應的惡意行為,如[圖10](#圖十)所示,這與提供的事實相符。此外,我們總結的惡意行為通常與現有工作(例如 MORSE)在調查 DARPA TRACE 數據集中的攻擊場景相當。對於剩下的 Firefox Backdoor 攻擊,我們發現原始數據集中缺少了緩存過程(PID 26317)的數據來源。因此,WATSON 只捕獲了攻擊的第二部分:緩存過程遠程竊取敏感信息。 此外,我們觀察到成功 APT 攻擊的高級行為都被抽象為單獨的集群。也就是說,沒有正常行為被錯誤地分類為攻擊。例如,[圖10](#圖十)中的 Extension Backdoor 攻擊,攻擊者首先妥協了 Firefox 中的易受攻擊的密碼管理擴展,以植入一個磁碟上的惡意程序 gtcache 。然後,攻擊者執行該程序以將敏感信息(例如,/etc/passwd)竊取到公共網絡,並在內部網絡上對目標主機(例如,128.55.12.73)進行端口掃描。我們注意到,內部偵察的端口掃描通常涉及到成千上萬的網絡連接到本地網絡主機。因此,任何包含端口掃描的行為都被標記為具有與日常行為不同的語義,並構成單獨的集群。另一個發現是,如果我們將集群合併閾值從 0.85 降低到 0.75,Extension Backdoor 攻擊將與 Pine Backdoor 攻擊聚在一起。這是預期的,因為這兩種 APT 攻擊都利用了命令和控制代理來掃描網絡端口——這是一種特別獨特的行為模式。還值得注意的是,Phishing Executable 攻擊的集群包含與 APT 攻擊無關的正常行為。這符合我們的領域知識,因為 Phishing Executable 攻擊未能利用 Pine 的漏洞,只是展示了用戶下載並執行電子郵件附件的過程,與常規電子郵件檢查行為相比較為正常。 #### 圖十一 ![image](https://hackmd.io/_uploads/rJKFDQ-50.png) >Syslog Rotation and SSH Login behaviors in DARPA TRACE dataset 我們進一步研究了 WATSON 聚類的正常行為。由於篇幅限制,我們在[圖11](#圖十一)中展示了兩個正常集群,即 Gzip 的系統日誌輪換(簡稱 Syslog Rotation)和 SSH 登錄顯示動態消息(簡稱SSH Login)。Syslog Rotation 行為是一種常見的系統例行程序,用於壓縮系統日誌(/var/log/syslog.1)以防止其在磁碟上增長過大。在我們的實驗中,WATSON 將五個 Syslog Rotation 行為總結為一個集群,沒有假陽性。Syslog Rotation 集群的簽名包括八個節點和十條邊。SSH Login 行為在用戶通過 ssh 登錄系統時顯示動態消息。在 WATSON 中,共捕獲了 16 個 SSH Login 行為,形成一個集群,有四個假陽性。SSH Login 集群的簽名包括 13 個節點和 198 條邊。請注意,我們無法驗證 WATSON 是否漏掉了任何真正的正常行為,因為我們不知道真實情況。 總之,我們的結果顯示,WATSON 能夠聚類相似的行為以減少分析工作量,同時不損失攻擊調查的準確性。還值得一提的是,即使 WATSON 有效地抽象了行為,大規模的正常行為仍可能對分析師造成困擾,因為正常集群中的單個行為簽名仍需要手動檢查。一種減輕這個問題的方法是借鑒異常檢測系統的思想。例如,我們可以從綜合的正常數據集中提取簽名,僅報告偏差給分析師。 ### **F. 系統性能** 我們測量了 WATSON 在惡意數據集和 DARPA TRACE 數據集中的行為抽象性能開銷。這兩個數據集的規模和數量級通常與日常用戶數據相當。惡意數據集中一個會話的磁碟大小和 DARPA TRACE 數據集中一個圖的磁碟大小分別為平均 420 MB和 3 GB。我們在一台配備 Intel(R) Core(TM) i9-9900X CPU @ 3.50GHz和 64GB 內存的 Linux 伺服器上進行實驗。操作系統為 Ubuntu 18.04.4 LTS。 在這個設置下,WATSON 能夠在 35 秒和 170 秒內分別從惡意 session 和 DARPA 圖中抽象出行為。我們不包括 KG 構建的運行時開銷,因為這在很大程度上取決於審計日誌的體積。然而,我們顯示 WATSON 可以在默認的 auditbeat 格式下解析 4 萬個審計事件並在一秒鐘內構建 KG。以 DARPA TRACE 數據集格式構建 KG的速度更快,大約每秒 70k。我們目前的實現從磁碟中加載審計事件,並使用單一機器的單個線程進行實驗。系統效率可以通過主存儲和分佈式圖處理進一步提高。此外,構建的 KG 和抽象的行為代表了 WATSON 的主要運行時內存開銷。在分析我們的惡意數據集(33 GB)和 DARPA TRACE 數據集(635 GB)時,內存消耗最多增加到2.6 GB。存儲開銷主要來自審計事件的嵌入和行為數據庫,其中惡意會話的平均為18 MB(嵌入10 MB,行為8 MB),DARPA圖的平均為121 MB(嵌入78 MB,行為43 MB)。我們注意到,存儲開銷不會隨著會話或圖的增加而線性增長,因為事件在系統中是重複的。 ## **VI. 討論** 在本節中,我們將介紹一些設計選擇、影響和對本研究的可能擴展。 ### **與相關解決方案的好處** 相關的安全工具在日誌分析上需要大量的手動努力來理解審計事件。WATSON 作為這些解決方案的“助手”,能夠減少分析工作負擔。實際上,定義領域知識的一半工作可以自動完成。我們可以使用程序化分析來識別行為模式,並通過行為語義的定量表示來聚類相似的模式。因此,分析師能夠相對容易地從聚類中調查代表性的行為模式(即行為簽名)並提供特定領域的標籤。具體來說,我們行為數據庫中的行為簽名可以作為相關安全工具的輸入。例如,如果 TGMiner 在制定行為查詢之前應用 WATSON 來提取行為簽名,則可以顯著節省標記訓練日誌中的行為的努力,因為良性或冗餘的行為已經被聚類。借助 WATSON , MORSE 只需要為代表性的系統實體(例如 IPC 文件之一)初始化標籤,而不是整個實體空間。此外,WATSON 揭示了事件語義,指示事件對安全分析的“驚訝”程度。這有助於減少在定義 TTP 規範中的人力工作量,因為“無驚訝”(例如良性)的事件在分析師提取攻擊模式之前就已被識別。 ### **嵌入空間的再訓練** 與大多數使用嵌入技術的學習方法相似,WATSON 需要定期再訓練嵌入空間,以應對語義變化和納入先前未見數據。也就是說,我們選擇的計算效率高的嵌入模型(TransE)有助於減少這種再訓練所帶來的開銷。在我們的實驗中,我們觀察到 WATSON 通常在 25 秒內在每日session上重新訓練嵌入模型。特別是,我們可以進一步利用NLP技術從“詞彙外”(未見)審計事件的形態信息(例如,文件路徑)學習語義,以便WATSON不必重新訓練整個嵌入空間。 ### **行為抽象的強健性** 為了逃避行為抽象,攻擊者可能會嘗試通過故意引入無關事件來混淆行為。然而,這些事件對行為語義的影響是有限的。在[第三節E](#行為聚類)中,我們設計了兩種策略(相對重要性和噪音事件)來提高 WATSON 在行為抽象中的強健性。具體來說,當 WATSON 聚合行為的上下文語義時,無關事件會被分配低重要性權重,甚至被移除作為噪音事件。另一種去混淆行為的潛在方法是將額外的輔助信息(例如,審計事件的語義豐富參數)納入 WATSON 的 KG 中。我們相信這可以使 WATSON 更有能力篩選不感興趣的事件以進行安全分析。我們承認,可能會使用更先進的技術來模仿正常行為。然而,模仿攻擊檢測本身是一個開放的研究問題,超出了本研究的範疇。 ## **VII. 相關工作** ### **因果關係分析** 因果關係分析是一個與行為抽象不同但重要的問題。King 和 Chen 首次提出建立系統審計日誌的依賴圖,以追溯給定安全事件的根本原因。King 等人 通過捕獲前向和跨主機的依賴關係來改進因果關係跟蹤。許多研究工作進一步致力於減輕因果關係分析中的依賴爆炸問題和高存儲開銷。最近的工作提出了精細單元劃分 、動態污點分析、建模推斷、記錄與回放和普遍溯源 技術,以實現更精確的因果關係跟蹤。另一條研究線路則致力於通過圖壓縮和數據減少 來降低整體日誌體積。儘管WATSON的範疇與這些解決方案不同,但其有效性在於準確的因果關係分析,這對於將數據傳輸相關聯以總結行為至關重要。 ### **行為抽象** 將行為抽象為圖模式或因果依賴關係已被證明對於理解操作系統級別的活動和檢測潛在威脅和風險非常有用。TGMiner 從感興趣的行為中挖掘可區分的圖模式,並使用它們作為模板來識別相似行為。根據網絡威脅情報報告,POIROT 為 APT 行為提取查詢圖,並提出對齊算法來搜索其在溯源圖中的存在。HOLMES 和 RapSheet 將多階段攻擊視為匹配 TTP 規範的因果事件鏈。SLEUTH 和 MORSE 提出了標籤策略來建模信息泄漏行為。與先前的工作相比,我們將行為抽象為基於上下文信息的嵌入(數值向量)。我們的發現表明,這種定量的行為表示可以保留行為語義,並啟用更高級的行為分析(例如,相似行為聚類)。 ### **基於嵌入的日誌分析** 在其他日誌分析任務中應用嵌入技術的文獻非常豐富。這些任務包括基於異常的 IDS、惡意軟件識別 和網絡攻擊演變理解。許多先前的工作使用機器學習模型,如神經網絡、詞嵌入和 n-gram,將日誌嵌入到向量中。例如,DeepLog 是一種基於神經網絡的方法,利用長短期記憶(LSTM)來學習正常日誌條目的執行模式。PROVDETECTOR 使用神經詞嵌入模型 doc2vec 來量化系統上運行的進程的行為。類似地,ATTACK2VEC 利用時間詞嵌入模型來量化網絡攻擊步驟隨時間的上下文。相比之下,WATSON 首次提出使用基於翻譯的嵌入(TransE)來揭示審計事件的上下文語義。我們使用 TransE 的原則是其翻譯距離與我們對事件使用上下文的理解相匹配。UNICORN 提出了一種圖草圖算法來總結長期運行的系統執行。實質上,它利用圖的統計特性來表示語義信息,這與我們的上下文語義學習方法不同。 ## **VIII. 結論** 從低層次的審計日誌中抽象出高層次的行為是安全響應中的關鍵任務。它有助於彌合審計事件和系統行為之間的語義差距,從而減少人工日誌分析的工作量。在本文中,我們提出了一種自動化的方法WATSON,來從審計日誌中抽象出行為。WATSON 解決了事件語義推斷和行為總結及聚合的兩個主要挑戰。具體而言,WATSON 利用基於日誌的知識圖中的上下文信息來實現語義推斷。為了區分代表性行為,WATSON 提供了行為語義的向量表示,並利用它來聚類語義相似的行為。我們在針對實際網絡攻擊模擬的行為以及 DARPA 組織的對抗性參與行為進行了 WATSON 的評估。我們的實驗結果表明,WATSON 可以準確地抽象出良性和惡意行為,並顯著減少攻擊調查中的人工工作量。 ## **致謝** 我們要感謝匿名審稿人提供的深刻意見。感謝Xiang Wang和Zhaoying Li對本稿早期草稿進行的討論和反饋。我們也感謝Yankai Jiang和Jiahao Liu在實驗方面的幫助。部分實驗是使用新加坡國家網絡安全研發實驗室的基礎設施進行的。本研究部分得到了以下資助支持:“亞洲數字金融研究所”,由新加坡國家研究基金會通過其產業對接基金–預先定位 (IAF-PP) 資助倡議、新加坡國家研究基金會通過其國際研究中心資助倡議以及中國教育部人文社會科學項目(編號16YJC790123)、北京市自然科學基金(編號4202036)和國家自然科學基金(編號61871023)支持。本文中表達的任何觀點、發現、結論或建議僅代表作者本人,不反映資助機構的觀點。