本文由奧義智慧 (CyCraft) 與資安卓越中心規劃建置計畫 (CCoE) 共同發布。
現今,許多大型企業的身分驗證有地對雲同步整合的需求,而 Active Directory Federation Services (AD FS) 為其常見的解決方案。然而,絕大多數企業並沒有將 AD FS 做為核心資產善加管理,容易忽視其安全性。因此本篇報告便以 AD FS 的重要性出發,分析攻擊者如何透過 GoldenSAML ,進而能夠攻擊信任 AD FS 簽章的服務。
Federation Service (FS) 是 Active Directory Federation Services (AD FS) 的一項角色服務,也是一項相當常見的主流服務,在過往,許多網頁要串接單一簽入整合 (Single Sign-On, SSO) 時,往往會選擇使 AD FS,如今許多雲端服務的身分串接也會選擇透過 FS 進行身分驗證,利用現有的服務直接串接所有需求,而這無疑也提升了 AD FS 服務的重要性。更何況有許多 APT 攻擊案例是透過此種方式從地端攻擊到雲端。
遺憾的是,許多場域並沒有將 FS 伺服器列為重要資產進行管理和防護,有些企業甚至無法盤點主機存在與否。因此分析師特別挑選此篇文章分析其相關危害,以提升企業對於這類服務的安全意識。
2022 年六月,國外資安研究員 Nestori Syynimaa 在 TROOPERS22 研討會整理了關於 AD FS 的攻擊知識。一般來說,AD FS 全名為 Active Directory Federation Services,為企業進行外部身分驗證、SSO 讓異質系統串接身分驗證的重要服務。本篇報告以該篇研討會的內容為基礎,整合目前所有攻擊 AD FS 的已知方式,以讓人了解相關的攻擊面向並進行安全評估。
在介紹攻擊AD FS前,需要先了解AD FS驗證的流程,以下為常見角色解釋:
驗證流程主要分為兩種,以下進行詳細說明:
方式一:透過 SP(例如Azure AD)重新導向至 ldP(例如ADFS),在 ldP 驗證完成後,User 會獲得 Security Token,再提交給 SP。
方式二:直接連線至 ldP,完成身分驗證後獲得 Security Token,使用者會被重新導向至 SP 提交 Security Token。
新型攻擊技術 GoldenSAML 首先在 2017 年時被發現,其原理在於,假設 Security Token 是透過 ldP 簽屬的,SP 就會信任此簽屬者 (ldP)。所以只要攻擊 ldP 也就是 AD FS,竊取 ldP 的 Private Key,攻擊者便可以任意偽造身分透過 SP 進行身分驗證。2017 到 2020 年間陸陸續續有相關攻擊工具釋出,而在 2020 年 Solorigate APT 事件,研究人員便發現駭客有竊取了AD FS 的 Private Key,利用 GoldenSAML 攻擊進而存取受駭單位的雲端資訊,國外多家大型企業、政府單位都深受其害。
換言之,GoldenSAML 攻擊的前提是必須竊取 AD FS 伺服器上的 Private Key。因此國外研究員將目前竊取 Private Key 的攻擊方式整理成了決策樹形式,而我們接下來會逐項針對決策的部分,了解會受到什麼樣類型的攻擊。
分為 Managed 與 Custom 兩種形式。Managed 為預設模式,會將 Private Key儲存在配置管理資料庫 (Configuration management database, CMDB),使用 DKM Key(儲存在 AD 結構上)進行加密,因此攻擊者必須獲得 Config 和 DKM Key 才能獲得完整的 Private Key。至於 Custom,即為我們常見的 Windows 儲存金鑰的方式,會將 Private Key 儲存在 certificate store 中。
以 Certificate 類型為 Custom 的模式來看,由於金鑰會儲存在 certificate store 內,因此當原本的 AD FS 設定成不可輸出 Private Key 時,攻擊者必須透過工具,例如 Mimikatz 進行竊取。反之,如果原先設定為可以輸出,攻擊者透過內建工具即可完成金鑰竊取。
如果攻擊者沒有成功獲得 AD FS 的主機控制權,但獲得了適當的 LDAP 權限,攻擊者就可以透過 LDAP 進行遠端竊取。另一方面,如果攻擊者已獲得 AD FS 的主機控制權,就可以透過 .NET Reflection 竊取金鑰。此手法就如同 NOBELIUM 的 FoggyWeb 惡意程式。該惡意程式也有被研究人員關聯到 Solorigate APT 事件,顯見該攻擊手法的濫用程度。
如果攻擊者對 AD FS 有存取權限,便可用 SQL Client 進行存取或是透過 WMI 對 AD FS 存取設定資訊,或是用 .NET Reflection 讀取設定。攻擊者若是採用遠端存取的方式,就需要知道 AD FS 將設定存放在預設的 WID 或是 SQL Server。而獲得 SQL 存取權限、AD FS 服務帳號或本地管理員帳號,都能進行遠端存取。最後,將 Key 與 Config 結合在一起就可以解出 Private Key,並用於 GoldenSAML 攻擊中,詳細組合流程可以參考 Douglas Bienstock (@doughsec) 和 Austin Baker (@BakedSec) 在 TROOPERS19 研討會的分享。
以下幾種方式可以緩解相關攻擊帶來的威脅:
Writer: CyCraft
奧義智慧科技(CyCraft Technology)是一家專注於 AI 自動化技術的資安科技公司,成立於2017年。總部設於台灣,在日本和新加坡均設有子公司。為亞太地區的政府機關、警政國防、銀行和高科技製造產業提供專業資安服務。獲得華威國際集團(The CID Group)和淡馬錫控股旗下蘭亭投資(Pavilion Capital)的強力支持,並獲得國際頂尖研究機構 Gartner、IDC、Frost & Sullivan 的多項認可,以及海內外大獎的多次肯定。同時也是多個跨國資安組織和台灣資安社群的成員和合作夥伴,長年致力於資安產業的發展。