日益增多的安全事件(資料洩露,勒索軟體,挖礦病毒)表明百分百安全的防護方案是不存在的。攻擊者往往只需要利用一個漏洞就能攻陷你的網路,而防守者需要防守加固所有的方面。這就是為什麼安全方案朝著檢測和響應的方向演進的原因:對已經攻入網路的攻擊者進行檢測並針對他們的各種行動進行有效的響應,以此來達到防護並降低安全風險的目的。
伴隨著各種檢測和響應(Detection Response)安全產品(EDR,NDR,XDR)的推廣,有一個熱門詞彙逐漸出現在各大安全會議和媒體----MITRE ATT&CK框架。MITRE ATT&CK框架是一個系統性地收集整理了攻擊手法的知識庫,並且這些攻擊手法是來自於對真實安全事件的洞察。該框架把攻擊者所採用的攻擊戰術系統性地組織起來,在每個戰術項內又包含實現該戰術目的的各種已知的攻擊技術,同時在每項技術中詳細描述了運用該技術的具體步驟和流程。這就是另一個熱門詞彙TTP(Tactic,Technology,Procedure)的概念,在ATT&CK的框架矩陣中以表格的形式展示了TTP,即:
- “戰術”位於表格的每一列的表頭,它代表著攻擊者運用某個技術的目的,包括:初始進入,程式碼執行,持久化,提升許可權,憑據竊取,內部偵察,橫向移動,資料收集,C2,影響。
- “技術”位於某個戰術列的下方,它代表著攻擊者為達某個戰術目的可採用的手段,ATT&CK框架為每個技術賦予一個編號。
- “步驟”代表著攻擊者如何執行一項技術,它提供了某個技術如何在真實世界中被實現的詳細資訊。
這些“戰術”被從左到右以此排列,從最左邊的“初始進入”一直到最右邊的“影響”代表著攻擊者如何開始攻擊一直到實現攻擊目的。這個框架一直在演變和進化之中,在不久的將來MITRE將會有一個重大的調整,“子技術”的概念將會被引入。現有的某些技術會被合併為一個,而有些技術中將會細分出多個“子技術”。例如Rundll32和Regsvr32將會被降級為“子技術”,新的技術為“簽名的二進位制代理執行(Signed Binary Proxy Execution)”,而“許可權提升”將會包含多個細分的“子技術”。
簡而言之,MITRE ATT&CK框架系統性地收集整理了攻擊者的TTP。那如何利用這個系統性的知識庫來增強安全能力呢?目前出現在各類安全會議和媒體的議題主要集中在這幾個方面:利用該框架進行紅藍軍建設,利用該框架評估安全能力,該框架與安全情報建設,利用該框架的甲方安全建設。而本文將要探討的是罕被提及的ATT&CK框架在安全產品的落地和應用,且本文認為終端安全產品是ATT&CK框架的最佳落地點。
為何ATT&CK框架的落地能增強安全產品的能力?
常見的安全產品不論是防護類或者是檢測響應類,他們都是基於檢測能力而構建(防護類方案被認為檢測後配上各種自動處置機制)。因此,檢測能力成為大部分安全產品的最基本的核心能力。縱觀整個網路安全歷史,攻防雙方一直是圍繞著反檢測與檢測進行著持續的對抗。攻擊方對抗檢測的最重要法寶是“變”,他們通過變化來規避各種已知的檢測手段,而防守方必須去應對各種變化才能逐步提升防護能力。下圖展示了攻擊者做出各類變化的難度和成本,從下往上的難度和成本逐步增加,亦被稱為“痛苦金字塔”。
痛苦金字塔
如果防守方採用一些簡單的特徵匹配的方法檢測位於底層的Hash/IP,攻擊者只需要做一些簡單的自動處理就可以躲避檢測(如混淆變形等),這對攻擊者來說幾乎沒有痛苦。而如果我們針對TTP進行檢測,意味著我們是在根據攻擊者的行為進行檢測。如果攻擊者想要躲避檢測就需要改變他們的行為,這需要研究一些新的技術和攻擊手段,這意味著更高的難度和付出更大的成本,對攻擊者來說是存在較大的痛苦。
而ATT&CK框架的TTP都來自於對真實攻擊的調研,很多相同的技術被不同的攻擊者運用在不同的攻擊事件中。TTP位於痛苦金字塔的頂端,這是攻擊者需要付出最多努力才能發現新手法並實現躲避的領域。如果能讓ATT&CK框架在安全產品中落地實現,讓安全產品具有針對TTP的檢測能力,無疑能增強安全產品的核心檢測能力,一切TTP層以下的規避動作將無所遁形。
為何終端安全產品是ATT&CK框架的最佳落地點?
所有的檢測方案都是基於某些資料來源和某些策略(人工產生或AI生成)的匹配過程。我們如果需要檢測某個攻擊技術,首先需要獲取到這項技術所對應的資料,所謂的資料就是當攻擊者運用這項技術攻擊主機或網路後,在主機或網路裝置上留下的蛛絲馬跡,他們所呈現的形式往往是各種日誌,可能是系統或應用內建的日誌,也可能是因為安全需要而特意錄製的日誌資料。在MITRE ATT&CK的每項技術描述中都有對應於該技術的資料來源資訊,它告訴我們可以從哪些型別的資料中找到攻擊技術實施後所留下的痕跡。
例如上面這項攻擊技術的資料來源為程式和程式命令列引數。這意味著如果攻擊者運用這項技術實施攻擊,就會在程式資訊和程式命令列引數資訊中留下痕跡。如果對這些資訊進行實時監控或者把這些資訊記錄下來,再配以相應的匹配機制就可以實現對該技術的檢測或防護。
如果對所有技術相關的資料來源進行統計,會發現有些資料來源與很多技術有關,而有些資料來源只與一兩項技術相關。根據各資料來源相關的技術數排序如下:
這些資料來源有的只能從終端上獲取,有的只能從網路裝置獲取,還有一些從終端和網路裝置都可以獲取。統計如下:
從上面我們可以看到,大部分的資料來源只能在終端獲取。在不需要跨終端的場景下,終端成了落實ATT&CK框架的天然落地點。如果能在終端一線實現有效的針對TTP的檢測,無疑防護的時效性是最佳的。
所以在本文的剩餘部分我們將簡單探討如何在終端安全產品中落實ATT&CK框架。
攻擊技術的篩選和排序
如何落地實現呢?我們可能會想過去鑽研每一項技術的具體步驟,並運用這些知識來對攻擊者的行為進行監測。這似乎很簡單,但整個框架中有三百多的技術並且還在持續增加中。我們該從哪裡開始並排出優先順序呢?
我們可以根據客戶的業務和網路環境來分析攻擊介面以及威脅通過攻擊介面後在客戶環境中的擴散和達成目的可能路徑。這能讓我們明確我們需要保護的東西,以及這些東西所面臨的風險。我們可以據此來挑選我們需要重點檢測和防護的攻擊技術,並根據攻擊技術的流行程度和實現難度進行優先順序排序。攻擊技術的實現難度可以按如下表格劃分:
用不同的顏色在ATT&CK的矩陣標記這些難度,如下所示:
在挑選出需要重點防護的攻擊技術後,我們該如何做出有針對性的檢測防護方案呢?在下一篇文章中筆者將重點討論這幾方面:如何獲取所需資料來源,資料的分析處理與建模,終端安全中如何運用這些資料.