ATT&CK 在大數據安全分析中的應用思考
作者:星期五, 十一月 15, 20190

前言

若將今年網絡安全圈內的熱詞進行盤點排榜, “ATT&CK” 一定榜上有名。從 2019RSA 大會上分析師分享會的重點關注,到今年 Gartner SIEM 魔力象限考核中將其列為重要參考指標,ATT&CK 無疑迎來了全新的發展機遇。ATT&CK 框架內構建的知識庫為安全行業提供了一個標準,對已知的戰技術進行收集,促進安全產品的優化改進。本文將從 TTPs 的作用、分析溯源等方面提出關于 ATT&CK 框架在 SIEM 產品中應用的理解和思考,歡迎大家探討。

一、ATT&CK框架的了解

“ATT&CK” 的全稱為 “Adversary Tactics and Techniques & Common Knowledge”,它設計初衷是構建一個攻擊者戰術和技術的共享知識庫。記得在 2017 年首次關注 ATT&CK 矩陣,那時只有近百個技術,沒人會想到今天 ATT&CK 會成為大部分安全從業者都在關注的一個詞。MITRE 成功了,ATT&CK 也成功了,現在它逐漸成為一個業界公認的紅藍知識庫,越來越多的從業者和廠商向框架內貢獻技術點,使得這個框架的發展與應用更加快速。

提到 ATT&CK 框架就不得不提 TTPs (Tactics,Techniques,Procedures),這是一個軍事術語,現在被引用到網絡安全領域。

? 戰術 (Tactics):發起一個攻擊的意圖

? 技術 (Techniques):實施一個攻擊的技術

? 過程 (Procedures):實施一個技術的流程

那么 ATT&CK 究竟能給安全行業帶來什么?

? ATT&CK 框架可以成為業界的標準(能力可度量)

目前 ATT&CK 框架主要包含終端相關安全知識,可以根據檢測能力的矩陣覆蓋率來評估部分安全產品的能力,例如:沙箱、EDR、SIEM 等。

如果順利發展的話后期也可能加入Web安全相關安全知識,那時 WAF、RASP、代碼審計等 Web 相關安全產品也可以憑借框架進行評估。

終端在檢測漏洞利用方面的能力較弱,若等漏洞利用子技術豐富后,流量設備是否可以借此來評估檢測能力?雖然現在有一個現成的 CVE 庫,但和知識庫還有一些距離。當然這些只是個人的猜測,畢竟漏洞有點多,這是一個浩大的工程。

能力的度量需要客觀、統一的標準,而不是自說自話。當然這里的覆蓋率只是指標之一,覆蓋規則的質量也是非常重要的,但其實往往質量比數量更難評估。

? ATT&CK框架可以成為業界的通用語言(威脅數據標簽化)

經過多年的安全分析工作,每天被不同廠家的不同版本的不同設備所折磨。今天這個設備的告警叫 “smb漏洞利用”,明天相同的告警叫 “MS17-010”,這只是一個簡單的例子,就仿佛分析師必須會兩種語言甚至更多才能勝任其工作。語言多樣性同時造成語言障礙,影響協作能力。都說攻防不對稱,但當面對強大的對手,防守方可能從未站在同一陣線 。如果不管是 “smb漏洞利用” 還是 “MS17-010”,以后大家都稱其為 T1210-Exploitation of Remote Services,SubTxxxx-MS17010,每個人的一小步,卻是行業的一大步。

ATT&CK 模型是在洛克希德-馬丁殺傷鏈的基礎上,構建了一套更細化、更貼合實戰的知識模型和框架,它主要分為 3 個矩陣:

(1) PRE-ATT&CK:攻擊前的準備,例如戰略計劃制定、武器化、信息收集、脆弱點發現等;

(2) Enterprise:攻擊時的部分已知技術手段,例如初始權限獲取、執行、防御逃避、橫向移動等;

(3) Mobile:移動端的部分已知技術手段,移動框架和 Enterprise 類似,只是適用的平臺不同;

目前 SIEM 并沒有涉及到太多的移動端安全問題,所以移動端就不放在本次的討論范圍之內。

PRE-ATT&CK 目前對于防御者來說可見性比較低,目前大多數采用預防性防御方法,比如進行安全意識培訓抵御社會工程學攻擊,定期漏洞掃描來規避易被發現的脆弱點,定期的監控開源代碼倉庫有無泄露項目源代碼、VPN 賬號、員工郵箱、敏感密碼等。

Enterprise 既是當用戶已經在內部有了駐足點后的行為矩陣,在這個矩陣中,企業數據探針較完善的情況下可見度是比較高的,可以更好的利用此矩陣內的數據源進行威脅的捕獲與分析,因此Enterprise也是目前備受關注的矩陣,也是我們本篇重點討論的矩陣。

(圖片來源于:網絡)

二、SIEM產品與ATT&CK框架的結合應用

TTP 的標簽

1. 數據源的選擇

在利用 ATT&CK 的 TTPs 來描述在環境中發現的威脅之前,需要接入相關數據作為底層的支持。在這次 ATT&CKcon 會議上看到的一張數據源排行榜,可見進程創建、進程命令、文件監控占了很大的比重。sysmon 的數據目前可以基本滿足需求。

(圖片來源于:hxxps://pbs.twimg.com/media/EICsnZ_XYAAyyxd?format=jpg&name=medium)

2. 數據標簽化

由于 SIEM 平臺本身接入的數據量太大并且有很多沒有分析價值的數據,平臺需要抽象出一層關注的安全事件,這些事件不一定是惡意攻擊,比如 Powershell、CMD 這些運維管理員也會使用的程序,抽象出的事件需要一個標簽來描述事件的含義,這時 TTPs 的 ID 就成了最好的標簽。TTPs 的背后是完善的知識庫,每個技術都可以追溯其利用原理、戰術意圖。

通常使用規則將數據打上標簽,所以需要先梳理技術對應的數據源,以下表為例:

SIEM 做的是數據分析,ATT&CK 可以將數據添加一層標簽,標簽的生成來自與規則,標簽化的流程與利用,如下圖:

ATT&CK 的規則是 ATT&CK 框架應用的基礎,也是難點。初步可以根據 github 上一些開源的項目進行實施和優化,例如:sentinel-attack、sysmon-config、sigma 等。與其他產品類似,主要的問題在兩個方面:

  • 規則的質量

規則的質量一直是廠商頭疼的問題,更是困擾安全分析師和運維人員的難題。當底層數據不可信時,分析的都是錯數據,分析的結果又怎么能對呢?在開源規則的基礎上我們可以在各種環境下測試規則的誤報并進行調試,針對特定規則可能需要手動復現提取更加準確的特征。

  • 規則的覆蓋率

雖然 ATT&CK 框架號稱是原子級技術分解,其實還尚未達到這個程度,例如 T1055 – 進程注入,雖然在它的知識庫里也列出了幾種注入的方法,但是真正的注入方法就不止 10 種。那么若一個產品覆蓋了 T1055 – 進程注入,但覆蓋了其中一種技術還是十種技術對應的能力顯然是不同的。為此 MITRE 也及時做出了調整推出 Sub-Techniques 的概念,這是真正意義上的原子級技術點。相對于現在的 Techniques,Sub-Techniques 才能客觀的標識一個產品的檢測能力覆蓋面,讓我們拭目以待。

(圖片來源:hxxps://pbs.twimg.com/media/ECl3z_FXsAE892F?format=jpg&name=900×900)

3. 標簽的權重

分析標簽時和分析數據一般無二,有的數據只是用參考的,有的數據卻標注著企業內部可能正在發生攻擊行為。目前,筆者根據規則的置信度、檢測粒度將標簽粗略分為:失陷告警、參考告警、審計信息三大類。

失陷告警:極低誤報率、確切高危行為的告警

參考告警:存在誤報情況的高危行為告警、較低誤報率的中危告警

審計信息:可能被攻擊者利用也可能是用戶自己操作的行為

舉例:

Powershell目前被攻擊者頻繁利用,也是終端必須審計的數據源之一。

若規則為定義如下,那么這只能算是一個審計信息。

Image contains ‘powershell.exe’

若規則有了更細致的特征,那么可以定級為一個參考告警甚至失陷告警。

Image contains ‘powershell.exe’ and CommandLine contains (‘-w hidden’ or ‘–Exec Bypass’ or ‘-c’ or ‘-Enc’ or ‘–Nop’ or ‘DownloadFile’)

有了詳細的特征為什么還需要使用寬泛的審計規則:世上沒有完美的規則,規則總可能被繞過,這時還有審計信息給予我們溯源的可能。

審計規則可以記錄所有動作為什么還要顆粒度更高的規則:權重!讓機器幫你做初步的篩選,直接關注存在的高風險問題,權重不同的告警在場景化過程中對結果的判斷也會有影響。

分析溯源

無論是 APT 還是常規的滲透攻擊,可能會用一些目前未知的技術手段或者 0DAY,但也必然會用到其他已知的攻擊手段,這時我們的標簽化的數據就起到了分析的價值,可以根據標簽進行行為分析、異常分析等。

1. 進程樹的分析

當我們觸發告警時,可以溯源該告警進程的進程樹。此時可將進程樹的上所有進程附著的 TTP 標簽作為數據,分析該進程樹是否為一條失陷的攻擊鏈,在進程樹生成后也會發現許多沒有標簽的進程,這些可能就是規則遺漏的檢測點。

舉個簡單一點的判斷邏輯:

a. 是否樹上可以有多個權重較高的標記

b. 是否樹上有超過${Num}個不同的標記

當然實際應用中可能需要其他更完善的算法。假想能否將一臺主機上的所有進程導入圖數據庫,這樣就可以獲得單臺機器某個時間段下全局進程圖的視角,這比分析某個進程樹呈現的更加直觀和全面。

2. 標簽分布分析

我們可以為每臺主機維護一個矩陣圖,把主機上的 TTP 標簽作為數據,分析這個主機是否為一個失陷主機。

舉個簡單一點的判斷邏輯:

a. 是否主機上可以有多個權重較高的標記

b. 是否主機上有超過${Num}個不同的標記

c. 是否主機上有超過${Num}個不同的戰術意圖

當然光靠閾值可能依然存在一些誤報情況,我們可以引入機器學習算法輔助確認主機是否失陷。在內網的運維過程中,我們收集以單臺主機上的 TTPs 標簽分布為樣本數據,對主機進行分析后,若手動判定為失陷則加入黑樣本,其他認為是白樣本。利用樣本集訓練模型作為一種輔助判斷的手法,來提高風險主機的處理優先級。在客戶運維的過程中,還可以利用主動學習算法不斷的優化輔助模型。

3. 內網的溯源

當檢測到失陷主機有進程訪問內網其他機器時,展示該機器上檢測到的 TTPs 信息及摘要。可以根據此信息來判斷是否為橫向移動攻擊,例如winrs是一種橫向移動手段,發現主機10.50.10.100通過winrs連接到內網機器10.50.10.105,又發現主機10.50.10.105上有權重較高的標簽T1060-Registry Run Keys / Startup Folder、T1003-Credential Dumping、T1191-CMSTP,那可能大概率橫向移動的結果是成功的。

4. 上下文描述

可為每個標簽添加更細節和通俗的描述作為場景化描述的基礎語句,再將其組合起來成為完整的描述一個場景。以進程樹為例,對每一層樹中的操作進行戰術分類后以時間軸的形式進行描述。

2019/11/07 16:31:05 進程IJIurngei.exe通過漏洞CVE-2018-8120提升權限運行uziYaoqomsfT.exe,進進程用戶由User提升到System,達到權限提升目的;

2019/11/07 16:31:07 進程uziYaoqomsfT.exe連接遠程域名download.microUpdate.com,疑似達到遠控目的;

2019/11/07 16:31:15 進程uziYaoqomsfT.exe釋放文件svchost.exe,達到偽裝目的;

2019/11/07 16:31:18 進程svchost.exe連接遠程域名ginni.go0gle.com,疑似達到遠控目的;

2019/11/07 16:31:23 進程uziYaoqomsfT.exe運行程序cmd.exe,達到執行目的;

2019/11/07 16:31:24 進程cmd.exe運行程序tasklist.exe、systeminfo.exe、net.exe、net1.exe、whoami.exe,達到發現目的;

2019/11/07 16:31:32 進程cmd.exe運行程序mimi.exe訪問lsass.exe進程,達到憑證獲取目的;

2019/11/07 16:32:03 進程cmd.exe運行程序winrs.exe連接遠程主機10.50.10.105,目標機器上存在3個較高權重的標簽T1060-Registry Run Keys / Startup Folder、T1003-Credential Dumping、T1191-CMSTP,疑似達到橫向移動目的;

紅藍知識庫

雖然 ATT&CK 框架期望實現建立一個大而全的威脅知識庫,但目前的階段還尚處于初步了解框架概念。MITRE 致力于建立一個 Cyber Analytics Repository,但由于內容太少而不足以提供豐富的檢測能力。不過也有很多迫不及待的人已經提前動起了手,例如 Red Teaming Experiments、atomic-red-team,但他們更注重的是 Red Team 攻擊過程的復現,我們期望的是 Red Team 代碼級復現 +Blue Team 威脅特征提取。

1. 威脅檢測

比起說紅藍知識庫可以幫助威脅檢測,倒不如說為了更好的檢測才有了紅藍知識庫。為了有更精確的告警采取復現攻擊技術,紅藍知識庫只是衍生總結出的產物。

2. 用戶賦能

既然有了知識庫自然要利用起來,SIEM 是一個需要安全知識才能使用起來的安全產品,對于分析師的能力有要求,目前紅藍知識庫可以提供給分析人員更多更詳細的學習指導。

小結

隨著 ATT&CK 框架的認知度越來越高,其完善發展的速度一定會更快,應用的方向也會更廣。就目前階段,我們認為 ATT&CK 最大作用是幫助惡意行為的檢測和分析。合抱之木始于毫末,萬丈高樓起于壘土。我們將踏實致力于實戰,不斷完善知識庫,通過統一標準的建立,打造高效便捷的交流話語,健全行業生態體系。若文中有描述不足的地方歡迎交流,開放才能更快的進步,共勉。

作者:安恒AiLPHA實驗室

相關閱讀

 

ATT&CK 隨筆系列之一:右腦知攻、左腦知防

加速檢測與響應的最新工具:MITRE ATT&CK 框架

 

 


相關文章

寫一條評論

 

 

0條評論