根據 The Hacker News 的報導,資安研究員 Dirk-jan Mollema 揭露了一項針對 Windows Hello for Business 的安全漏洞。這項技術允許已經在受害者電腦上執行且處於登入狀態的惡意軟體,在不需要管理員權限、不需要獲取使用者 PIN 碼,甚至不需要觸發生物辨識提示的情況下,靜默地利用 Windows Hello 的金鑰來通過 Microsoft Entra ID 的身分驗證。
背景與核心問題
Windows Hello for Business 是微軟提供的一種強身分驗證機制,旨在取代傳統密碼,利用 TPM(可信賴平台模組,一種硬體層級的加密晶片,用於安全地儲存金鑰與執行加密運算)來將金鑰綁定在特定裝置上。這類機制通常被認為具備抗釣魚能力,因為私鑰儲存在硬體中無法被導出。
然而,問題在於 Windows 的票據處理機制。當使用者在裝置上互動式登入後,系統會保持私鑰操作的可用狀態。這意味著只要惡意軟體能在該使用者的登入會話中執行,它就可以直接要求 Windows 對驗證數據進行簽名,而不需要使用者再次輸入 PIN 碼或掃描指紋。
技術運作方式
Mollema 發現,攻擊者可以將 Windows Hello for Business 的金鑰視為一種 FIDO2 Passkey(一種基於 WebAuthn 標準的無密碼驗證方式,旨在提供更安全且便捷的登入體驗)。透過 WebAuthn 協定,攻擊者可以繞過原本對裝置註冊的嚴格限制。
具體的攻擊流程如下:首先,攻擊者在受害者的登入會話中執行惡意代碼。接著,攻擊者在另一台受控主機上向 Entra ID 發起驗證請求,獲取一個有效期為五分鐘的挑戰碼。由於這個挑戰碼並不與特定的會話、使用者或租戶綁定,攻擊者可以將此挑戰碼傳回受害者的電腦,利用該電腦上的 Windows Hello 金鑰完成簽名並產生驗證斷言。
最後,攻擊者使用名為 ROADtools 的 Entra ID 交互框架,將這個簽名斷言提交給微軟雲端服務,從而獲取存取令牌。
持久化存取的影響
這次攻擊最危險之處在於它能建立長期的雲端存取權限。由於 WebAuthn 簽入被視為滿足微軟抗釣魚強度的多因素驗證(MFA),攻擊者可以利用此身分獲取 PRT(Primary Refresh Token,一種用於在微軟生態系中實現單一登入 SSO 的核心令牌)。
PRT 的有效期長達 90 天,且只要使用者持續使用裝置,該令牌就會自動續期。持有 PRT 的攻擊者可以在自己的受控裝置上註冊新設備,甚至在租戶策略允許的情況下,為該新設備添加額外的 Passkeys 或 Windows Hello 金鑰,從而完全擺脫對原受害設備的依賴,實現持久的權限控制。
限制與防禦建議
儘管此技術威力強大,但並非所有環境都受影響。如果企業部署了嚴格的裝置狀態檢查或合規性原則(Compliance Policies),例如要求裝置必須通過 Intune 管理或符合特定的安全性基準,則攻擊者即使獲取了令牌,也可能無法通過這些額外的設備檢查,導致持久化路徑中斷。
目前微軟尚未針對此行為發布 CVE 漏洞編號或正式的安全公告,因為這在某種程度上被視為 Windows Hello 工作方式的結果而非單純的程式碼錯誤。
針對此威脅,研究員建議企業監控 Entra ID 的登入紀錄,特別是搜尋那些裝置 ID(Device ID)為空的 Windows Hello for Business 簽入事件。雖然部分無痕瀏覽模式或非單一登入(Non-SSO)的瀏覽會話也會產生類似模式,但異常的空 ID 登入仍是偵測此類攻擊的重要指標。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。