2024-07-02

AD Identity Snowball Attack:攻擊手法解析與 Edge Blocking 演算法作為緩解方法

2023 年 12 月,奧義智慧資安研究員蘇俊銘 (Jimmy Su) 與資安研究助理施乃心 (Maxim Shih) 在日本 SECCON 以「BloodHound 的新路徑:結合可擴展性權限阻擋演算法以優化 AD 防禦」(BloodHound’s New Trail: Incorporating Scalable Edge Blocking Algorithms for Refined AD Defense)為題發表演說。

在這場演講中,兩位講師帶領聽眾深入探討 Active Directory 上 Identity Snowball Attack 的成因及資安研究人員在使用開源工具 BloodHound 分析 Identity Snowball Attack 時會遇到的痛點,並介紹如何將分析時的方法論及痛點轉換成可計算的演算法並且推薦使用者該如何阻擋 Identity Snowball Attack。

本文將統整該篇演講的研究內容,並向讀者說明其中所利用的各項技術。此外,此篇文章內容部分參考自 Mingyu GuoScalable Edge Blocking Algorithms for Defending Active Directory Style Attack Graphs 一文,非常感謝作者 Mingyu Guo 同意我們使用他的論文內容。

閱讀本文,你可以知道:
  • AD Identity Snowball Attack 成因。
  • 使用 BloodHound 分析 Identity Snowball Attack 的難處。
  • 提供 Identity Snowball Attack 的緩解措施。

關於 Active Directory (AD)

Active Directory (AD) 是由微軟所開發的集中化驗證服務,主要用於管理網路中的資源和使用者資訊。AD 在網路中扮演的角色,類似於一個巨大的電話簿或地圖,能幫助公司內的電腦、伺服器和使用者們找到彼此,同時也控制著哪些使用者可以訪問、存取哪些資源,例如允許員工 A 可以訪問文件夾 X 等。

除此之外,AD 有另一個強大功能的工具:「群組管理原則」(Group Policy Object, GPO)。GPO 是用於管理使用者和電腦設定的一種機制,系統管理員可以經由 GPO,一次性地完成多台電腦的配置設定,諸如軟體安裝、安全性措施或者網路設定等。這意味著,企業的 IT 人員不需要逐一為每台電腦設定防火牆或更新軟體,只需要在 AD 中設定一次 GPO,便能一併派送應用到組織中的多台機器上。

正因為 AD 和 GPO 能集中管理如此多的設定和權限,在資訊安全方面便也舉足輕重,一旦 AD 或 GPO 設定不當導致弱點產生,攻擊者便可獲取他們理應無法擁有的訪問權限、或利用弱點展開攻擊和惡意行為。因此,妥善地配置和維護 AD 與 GPO 不僅能讓企業營運更有效,也是確保網路安全的基礎。

DACL

AD 的許多功能都和 DACL 息息相關,DACL 是許多權限 (permission) 的組合,透過 DACL 的設置可以讓兩個 AD 物件產生關係。AD 物件關係的類型可分為以下兩種:

Maxim (Read/Write) -> Jimmy

Maxim 和 Jimmy 之間是直接 (Direct) 關係,此種關係可以在 Jimmy 的 DACL 上觀察到(圖1)。

圖1 直接關係

在連續的直接關係下,物件間會產生間接 (Indirect) 關係(圖2):

Maxim (Read/Write) -> Jimmy (Read/Write) -> John

Maxim 與 Jimmy 的直接關係,導致 Maxim 與 John 之間產生了間接關係:

Maxim (Read/Write) -> John

圖2 間接關係

間接權限不會以任何方式被記錄在 John 的 DACL 中(圖3),只能藉由關聯分析此種連續的直接關係,才有機會觀察到間接關係的存在。

圖3 間接關係不會在 DACL 中留下紀錄

因此,繼續推演此類連續的直接關係,最終可能會產生以下間接關係:

Maxim (Read/Write) -> Admin

此間接關係讓 Maxim 可以提升權限 (privilege escalation) 成為 Admin(圖4)。

AD 間的間接關係存在提升權限的風險
圖4 潛在提權風險的間接關係

圖4 潛在提權風險的間接關係

這種連續、會被惡意使用者濫用的 40 種直接關係,所導致非預期的間接關係,便被稱為 Identity Snowball Attack,意味著權限如雪球一般,越滾越大造成管理困難的潛在風險

Identity Snowball Attack

Identity Snowball Attack 是在 2009 年時由 Microsoft Research 論文 Heat-ray: Combating Identity Snowball Attacks Using Machine Learning, Combinatorial Optimization and Attack Graphs 中所定義。

根據 Microsoft Research 論文,利用 Identity Snowball Attack 的攻擊者會登入第一個受駭主機的使用者帳號,並濫用這些帳號在其他主機上的權限,執行後續攻擊。由於 AD 管理機制十分複雜,因此 Identity Snowball Attack 非常容易出現在 AD 中。

為了方便觀察這類型的問題,在 2016 年,SpectorOps 在 DEF CON 24 上發佈了 BloodHound,一套透過圖論的方式來表達 Identity Snowball Attack 以及 間接關係的開源工具。

BloodHound

在本文開頭我們將 AD 比擬為電話簿,BloodHound 則是透過還原電話簿,將電話簿間各個地址進行關聯、並找出地址間的關係。

BloodHound 透過關聯 AD 物件的內容,可以找到間接關係,並畫出物件之間的關聯圖(圖5),讓管理者直觀地看到是否有非預期的關係出現。

BloodHound 透過關聯 AD 物件的內容,找到間接關係,並畫出物件之間的關聯圖
圖5 BloodHound 畫出的 AD 物件關係圖

然而,BloodHound 很難分析涵蓋多種權限設定的 AD 物件關係圖(圖6),除了圖表本身過於複雜外,分析過程也會產生更多的不確定因素,例如移除掉某些關係是否會對公司營運造成影響等。

AD 權限關係難以分析
圖6 過於複雜的 AD 權限關係難以分析

因此,前述論文作者 Mingyu Guo 研發了能量化權限關係的邊緣阻擋 (Edge Blocking) 演算法,可以幫資安團隊快速篩選,找到通常認為危險程度較高的關係,專注分析推薦的關係即可,避免在複雜的圖表上耗費太多時間。

Edge Blocking 演算法

接下來我們將一步步拆解 Edge Blocking 演算法的操作邏輯與如何藉以緩解 Identity Snowball Attack。

定義目標

首先,身為防禦者,我們的目標是什麼?

我們的目標是「預測攻擊者將做什麼並提前阻止」,但是該怎麼做呢?當有了描述 AD 環境的 Bloodhound 圖,我們可以更具體、精確地將目標定義為 : 「找到最有可能遭攻擊的高風險路徑,並先發制人地進行防守」。

將環境轉換為圖形問題

參考 Bloodhound 的圖形結構,我們希望將目標轉換為圖形問題(圖7)。

參考 Bloodhound 的圖形結構,將目標轉換為圖形問題
圖7 BloodHound 的圖形結構轉換

具體的轉換步驟包括:

1. 將 BloodHound 中的實體轉換為圖的節點。

2. 利用可解釋被攻擊機率的數字代表每條邊緣風險值,我們選擇了 GoodHound 的攻擊成本 ( Exploit Cost ) 作為每條邊緣代表的風險評分,用以表示攻擊者攻擊該權限關係的難易程度(圖8)。攻擊越容易,攻擊成本就越低,攻擊者就越有可能對這條邊緣發動攻擊,意味著此關係受到攻擊的風險更大。因此,我們將最低的攻擊成本設定為最高的風險分數。

圖8 GoodHound 攻擊成本與攻擊風險分數之對照

3. 我們也在圖中定義了一些特殊的節點:

  • 入口節點 (entry node) 是攻擊者可以開始攻擊的地方。
  • DA (Domain Admin) 是我們的防守目標,代表了 AD 的管理員帳戶。

有了以上兩個節點,現在我們可以將攻擊者的攻擊路徑 (Attack Path) 描繪成圖中入口節點和 DA 之間的連線(圖9)。

圖9 將入口節點和 DA 連線描繪出的攻擊路徑

至此,我們成功地將 AD 環境轉換成相對應的圖形,並定義了一些基本要素。接下來,我們將在這個圖上新增更多防守者在防禦與阻擋邊緣時需要考量的要素。

防守者的考量要素
  1. 考量風險

防守者的首要目標是防禦最具風險的攻擊路徑,圖10 包含了四個顏色的攻擊路徑:

描繪了四種攻擊路徑
圖10 四條攻擊路徑

為了計算攻擊路徑的風險評分,我們將攻擊路徑中所有邊緣的風險分數相乘(圖11),發現第一條淺紅色攻擊路徑的風險分數最高,因此是最須關注、最危險的攻擊路徑。

攻擊路徑風險分數計算
圖11 攻擊路徑風險分數計算

2. 考量防禦

除了風險分數之外,防守者還需要考慮可採取的防禦行為。防守者在評估邊緣被成功阻擋的可能性時,可以為每條邊緣設定一個成功防守的機率 B(e) ,1-B(e) 就表示該邊緣沒有阻檔的可能性。

因此,我們將分數與沒有阻擋的機率相乘 r(e) *(1-B(e)),表示攻擊者在此邊緣上發起攻擊且未被阻擋的風險。換句話說,這也代表了攻擊者成功濫用此邊緣的機率。

防禦行為的量化,單線代表普通的邊緣,雙線代表不可阻擋的邊緣
圖12 防禦行為的量化,單線代表普通的邊緣,雙線代表不可阻擋的邊緣。

3. 考量預算

由於防禦的人力和資源有限,我們還需考慮預算配置。在此階段,防守者的目標變成在預算範圍內找到最佳的阻擋策略,以最小化攻擊路徑的最大風險得分。

例如,在預算範圍內,我選擇了五條邊緣來進行阻擋(圖13)。

考量預算的攻擊路徑阻擋
圖13 考量預算的攻擊路徑阻擋

在這個阻擋策略下,我重新計算了所有攻擊路徑的風險得分(圖14):

在阻擋策略下,重新計算預算內的攻擊路徑風險
圖14 預算內的攻擊路徑風險計算

圖14 預算內的攻擊路徑風險計算

結果顯示,第一條淺紅色攻擊路徑 (0.9 * 0.4 … = 0.04) 在此阻擋策略下是最危險的路徑。我們的目標是通過不同的阻擋策略來最小化這個最大風險得分。不幸的是,如果將這個問題轉化為最短路徑問題,這個路徑問題被證明是 NP-Hard 的問題。我們需要考慮的邊緣數量太多,且圖形太過複雜,有什麼簡化的方法呢?

阻擋決策的痛點:分岔路徑

在決策過程中,我們發現遇到分岔路徑時,情況會變得特別複雜。分岔路徑是指路徑中有一個分岔節點 (split node),且這個節點會延伸出不止一條路徑(圖15)。

分岔路徑與非分岔路徑比較
圖15 分岔路徑與非分岔路徑比較

分岔路徑的問題是,當我在預算範圍內阻擋了紫色路徑,攻擊者仍舊可以選擇紅色攻擊路徑,導致防禦無效。

非分岔路徑則是相對容易防守的單一路徑,無論攻擊者在哪裡,只要阻擋了最靠近 DA 的邊緣,防禦將始終有效,此種邊緣便是值得阻擋的選項。

因此,我們認為比起分岔路徑,更應將注意力放在非分岔路徑上,因為只需要防守一條值得阻擋的邊緣就能阻止任何攻擊企圖。如何將分岔路徑轉變成非分岔路徑呢?

1. 將分岔路徑切割成非分岔路徑

我們將分岔節點當作斷點,藉此把分岔路徑切割成非分岔路徑,圖 15 的分岔路徑就可拆分為三個不同顏色的非分岔路徑(圖16)。

分岔路徑切割成非分岔路徑
圖16 分岔路徑切割成非分岔路徑

2. 將 AD 圖拆解為非分岔路徑

透過上述方法,我們可以將 AD 圖拆解成多組非分岔路徑,並標示出每條路徑中值得阻擋的邊緣(圖17)。

AD 圖轉換成非分岔路徑圖
圖17 AD 圖轉換成非分岔路徑圖

3. 計算非分岔路徑的風險得分

在成功減少了需要阻擋的邊緣選項後,我們可以計算非分岔路徑的風險分數(圖18)。

非分岔路徑的每條邊緣之風險分數
圖18 非分岔路徑的每條邊緣之風險分數

計算後,每條非分岔路徑的風險得分如下圖 19:

非分岔路徑的風險得分
圖19 非分岔路徑的風險得分

4. 簡化 AD 圖

經過上述步驟,切割了分岔路徑、保留分岔節點與所有非分岔路徑的風險得分後,我們將原先複雜的 AD 圖簡化成從入口節點連結到 DA 的非分岔路徑圖(圖20)。

簡化後的 AD 非分岔路徑圖
圖20 簡化後的 AD 非分岔路徑圖

使用線性規劃

在有了核心化的圖後,我們使用線性規劃來尋找要阻擋的邊緣。

1. 設定線性規劃目標

此優化問題的目標為「在有限預算下找出能讓攻擊 DA 成功機率最低的阻擋策略」。

2. 為線性規劃添加限制

限制 1 :

(父節點得分) ≥


(所有到子節點並考慮阻擋的非分岔路徑得分)*(子節點得分)

我們先添加限制 1 並在其中同時考慮防守預算。由此一來,我們便能確保在每一個節點都儲存從此節點到 DA 的最高攻擊機率的路徑機率。


限制 2 :

(最佳入口節點數值) ≥( 所有入口節點數值)

限制 2 目的是在特定阻擋策略中找到最高風險得分的入口節點。


限制 3 :

(預算限制) ≥( 阻擋策略使用的預算總和)

限制 3 考慮阻擋預算。

3. 計算線性規劃結果

最後我們透過線性規劃的計算與輸出,找到有限預算下最值得阻擋的邊緣以及在最佳阻擋策略下相對應最高的攻擊路徑風險得分。

總結

在真實場域中常常發現 Identity Snowball Attack,且此攻擊難以偵測,我們認為需格外注意此議題與相關攻擊手法。本篇文章深入拆解 AD 環境中的兩種路徑類型,運用 Edge Blocking 演算法和線性規劃技巧,計算不同節點與每條邊緣的風險分數。

透過簡化 AD 物件權限圖,我們演示了演算法在真實環境中的運作,協助資安團隊迅速且正確地做出防守決策,以梳理盤根錯節的 AD 權限關係,提升 AD 管理效能與準確度。

延伸閱讀
Writer:
Jimmy Su
關於 CyCraft
奧義智慧科技(CyCraft Technology)是一家專注於 AI 自動化技術的資安科技公司,成立於2017年。總部設於台灣,在日本和新加坡均設有子公司。為亞太地區的政府機關、警政國防、銀行和高科技製造產業提供專業資安服務。獲得華威國際集團(The CID Group)和淡馬錫控股旗下蘭亭投資(Pavilion Capital)的強力支持,並獲得國際頂尖研究機構 Gartner、IDC、Frost & Sullivan 的多項認可,以及海內外大獎的多次肯定。同時也是多個跨國資安組織和台灣資安社群的成員和合作夥伴,長年致力於資安產業的發展。
訂閱奧義智慧電子報
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
點擊此按鈕,即表示您同意奧義智慧的隱私權政策,並同意奧義智慧使用您所提供的資訊並寄送資訊給您。您隨時可以取消訂閱。