DEF CON 33 - Hacking Context for Auto Root Cause and Attack Flow Discovery - Ezz Tahoun
三句話摘要
解決藍隊在安全監控中的核心困境——將孤立誤報轉化為可信的攻擊故事,透過分組與去重大幅降低誤報和成本。 ## 通過分層相關性分析(分組+故事構建)而非規則堆砌,可同時解決誤報泛濫與成本爆炸,讓藍隊從被動應付轉向主動狩獵。 1. 相關性的雙層定義
重點整理
重點- 1
1. 相關性的雙層定義
- 2
講者區分了兩個被混淆的概念:相似性分組(Grouping)與因果故事構建(Story Building)。前者將來自同一會話的日誌歸類(如訪問網站2分鐘內的所有網路流、防火牆日、Windows事件),後者按攻擊鏈順序(初始訪問→執行→持久化→數據外洩)串聯事件。兩者都必要,但傳統相關性規則試圖用簡單邏輯(如「同一IP、5分鐘內」)處理,導致大量誤報。
- 3
2. 數據高度冗餘與分組的必要性
- 4
一個簡單活動(如訪問網站2分鐘)產生數千個日誌——50個網路流、50條防火牆日誌、400條sysmon、1000條ADR遙測、1000條Windows事件日誌。不同日誌來源因模型不同而生成對應不同的字段,但描述同一事件。分組能將這些重複內容合併成單一記錄,從而減少99%數據量。
- 5
3. 規則方法的侷限與機器學習的優勢
- 6
編寫數百甚至數千條相關性規則不可行,因為:(1)上下文至關重要——相同事件序列可能相隔5小時甚至5天;(2)無法預知所有可能的攻擊路徑順序;(3)規則必須考慮所有字段和業務背景。無監督聚類和馬爾可夫模型能在多維空間中找到最相近的事件,無需列舉所有規則。
- 7
4. 成本與體驗的雙重改善
- 8
從4TB/日的數據,若按Splunk定價計算,用70%去重率可從年度$3.8M降至$300K(節省$200M)。更重要的是,安全團隊從「被數百萬誤報淹沒」轉變為「關注具體攻擊故事」,誤報自動分組後無法形成完整故事,易於識別為噪聲。
- 9
##
實用技巧與重點
乾貨- 演講人與角色:
- Ed Tahoe(主講):演講人
- Bill / Manolo / Zayn / Jason(與會者代表)
- 核心概念:
- Kill Chain(殺傷鏈):攻擊生命週期框架(MITRE ATT&CK戰術序列)
- Clustering(聚類):無監督分組方法
- Deduplication(去重):移除重複日誌
- Enrichment(豐富化):添加上下文信息
- 演算法/技術棧:
- NLP語言模型:將日誌分類到MITRE ATT&CK戰術(非LLM,小型專門模型)
- K-means / DBSCAN:聚類演算法
- Markov Models(馬爾可夫模型):序列檢測(70年代技術)
- 成本數據(Splunk示例):
- 日數據量4TB,年費用$3.8M~$4.8M
- 應用70-85%去重率後:降至$300K,節省$200M
- 數據量從1,000GB+減至75GB(93%壓縮)
- 工具與平台:
- GitHub倉庫:開源版本可用(具完整功能)
- Sipenta.io:商業付費版本,提供支持與集成
- 部署位置:Logstash等日誌轉發工具(SIEM之前)
- 模式:本地部署,不發送數據至雲端
- 實體豐富化方法:
- 建立Lookup Table:記錄機器-使用者-部門-經理層級關係
- 數據來源:Active Directory、Asset Management系統
- 實現:App.sipenta.io 提供自動推斷與驗證功能
- 應用:相同實體反覆出現時自動推斷關聯,為聚類添加業務背景
- 數據隱私政策:
- 完全本地化執行,無數據上傳
- 反對發送大規模敏感數據至雲端
- ##
結論
結論“通過分層相關性分析(分組+故事構建)而非規則堆砌,可同時解決誤報泛濫與成本爆炸,讓藍隊從被動應付轉向主動狩獵。”
完整解析
詳細這場演講源自對當代藍隊(防禦方)兩大痛點的深度分析。首先,安全團隊經常被誤報淹沒,導致團隊士氣低落。其次,用手工編寫的相關性規則無法準確關聯分散在不同日誌源中的同一事件。演講人及其協作者提出了一個嶄新的分層思考框架,徹底改變了日誌分析的方式。
核心洞察在於認識到「相關性」本身被濫用。傳統相關性規則通常是簡單的條件語句——「如果兩個事件在同一台機器上、5分鐘內發生,則關聯」。但這種方法面臨致命問題:數據中充斥重複和冗餘。當用戶訪問網站2分鐘時,系統在網路層、端點層、防火牆層、Windows事件層等分別生成數千條日誌,描述同一活動。此外,真正的攻擊不一定按固定順序或時間間隔發展——某些戰術可能相隔數小時或數天,但仍屬同一入侵事件。規則永遠無法窮舉所有可能。
解決方案是將相關性拆分為兩個獨立的概念。第一層是分組:使用無監督機器學習(特別是聚類演算法)將所有相似的事件歸為一類。此過程不依賴手寫規則,而是檢視所有字段(IP、端口、協議、時間戳、使用者、部門等),在多維向量空間中計算距離,將最相近的事件聚在一起。這種方法自動應對上下文差異——即使時間相隔很遠、IP不同、協議不同,但如果多個字段維度都指向同一業務實體(如同一部門的同一用戶),算法會正確關聯。分組還自動實現去重,因為高度重複的日誌會被識別為同一簇。
第二層是故事構建:在分好的事件組基礎上,利用序列模型(如馬爾可夫模型)檢測是否存在因果顺序。演講人借用MITRE ATT&CK的戰術框架,指出真實攻擊遵循某種戰術進程。若檢測到初始訪問→執行→持久化→數據外洩這樣的序列,即使中間某些戰術的蹤跡缺失,演算法仍能識別這是一個有意義的攻擊故事,而非孤立誤報。
實踐上,這個方案的美妙之處在於它提前在日誌管道中執行——在數據進入昂貴的SIEM(如Splunk)之前就進行分組和去重。這不是post-processing,而是pre-processing。用Logstash等輕量轉發工具直接調用演算法,在來源就把冗餘數據壓縮至1%。成本影響是驚人的:一個組織若每天產生4TB日誌,按Splunk定價約年費$3.8M;應用70-85%去重率後降至$300K,直接節省$200M+。更重要的是,這筆成本節省不是通過刪除日誌實現——許多合規場景要求保留所有原始日誌——而是通過智能聚合。可將去重後的摘要存入快速索引供實時分析,原始日誌存入S3冷存儲以滿足合規要求。
演講人強調,這些演算法並非依賴監督學習。聚類和序列分析是無監督的,不需要標籤訓練集。NLP語言模型唯一需要有標籤的訓練數據,用於將每個日誌字符串映射到MITRE ATT&CK戰術——這花了三年時間由專家手工標注,確保一致性。但即便如此,這種模型也遠小於GPT那樣的大型語言模型,完全可解釋和可審計,不存在大型模型的「幻覺」問題。
實體豐富化是最後一層。系統可自動從Active Directory、資產管理系統等來源導入業務背景——某台機器屬於某用戶、某部門、某經理。當相同實體在多個事件中反覆聚合時,系統推斷它們相關,並更新查找表。這樣,聚類距離計算就納入了業務語境,相同部門、相同時區的用戶生成的事件更容易被聚在一起,而不同部門的異常活動會被合理區分。
##
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


