Black Hat USA 2025 | Windows Hell No for Business
三句話摘要
德國安全研究員在 Black Hat 揭露 Windows Hello 企業版生物辨識資料庫的本地管理員提權漏洞,並現場演示攻擊。 Windows Hello 企業版的生物辨識資料庫在缺乏 ESS 模式的設備上,本地管理員即可解密並篡改任意用戶的生物模板,最壞情況可從本地管理員直接提權至網域管理員,啟用 ESS 模式(需硬體支援)是目前唯一根本性防禦手段。 生物驗證與密碼驗證在熵來源上存在根本差異:傳統密碼驗證中,密碼本身提供密碼學熵;生物辨識中,「臉部」只是識別觸發器,實際釋放金鑰的機制依賴磁碟上的資料,導致無法在金鑰釋放時強制綁定具體的生物輸入。
重點整理
重點- 1
生物驗證與密碼驗證在熵來源上存在根本差異:傳統密碼驗證中,密碼本身提供密碼學熵;生物辨識中,「臉部」只是識別觸發器,實際釋放金鑰的機制依賴磁碟上的資料,導致無法在金鑰釋放時強制綁定具體的生物輸入。
- 2
資料庫加密依賴系統層 DPAPI,本地管理員等同擁有解密能力:Windows 使用 `CryptProtectData/CryptUnprotectData` 保護資料庫加密標頭,此函式在 System 帳戶下執行,使得具有本地管理員權限的攻擊者可直接呼叫並解密,讀取、篡改任意用戶的生物模板。
- 3
ESS(增強型登入安全)模式透過 VBS 隔離解決根本問題:ESS 在 Hypervisor 的 VTL1(隔離虛擬機)中獨立運行生物辨識服務,模板金鑰只存在於 VTL1 記憶體,VTL0(正常 OS)即使擁有管理員權限也無法存取,但此模式需要硬體(安全攝影機感測器 + Intel 晶片)支援。
- 4
本地管理員提權到網域管理員是最壞情境:攻擊者替換特定用戶的生物模板後,可在域環境中以該用戶(例如域管理員)身份通過 Kerberos 驗證,完成橫向移動與提權。
實用技巧與重點
乾貨- 研究由德國 BSI(聯邦資訊技術安全辦公室)資助,為期約兩年(開始於研討前一年,結束於演講後一年春天),完整報告約 170 頁
- 資料庫加密方式:AES-CBC,每個資料庫有獨立加密金鑰與 IV(Initialization Vector)
- 資料庫完整性保護:SHA-256 雜湊值加密後存於標頭
- 資料庫路徑來源:`HKLM\SYSTEM\CurrentControlSet\Services\WinBio\`
- 資料庫類型值:`2` 代表人臉辨識
- 三種適配器類型:Sensor Adapter、Engine Adapter、Storage Adapter
- 隱藏的第四種:Framework Adapter(微軟未公開文件,用於 VBS 安全隔離)
- ESS 模式執行檔:`system32` 下獨立可執行檔,含 VTL1 隔離版生物辨識服務
- 驗證分數:引擎輸出 0~1 之間的浮點閾值,超過閾值即識別成功
- 攻擊工具:研究員開發了資料庫解密工具(現場演示)
- 緩解建議:每台客戶端只登錄一個用戶;無法用 ESS 時改用 PIN 驗證(PIN 提供熵並受 TPM anti-hammering 保護);監控應針對 Windows 生物辨識服務的資料庫存取行為
結論
結論“Windows Hello 企業版的生物辨識資料庫在缺乏 ESS 模式的設備上,本地管理員即可解密並篡改任意用戶的生物模板,最壞情況可從本地管理員直接提權至網域管理員,啟用 ESS 模式(需硬體支援)是目前唯一根本性防禦手段。”
完整解析
詳細Windows Hello 在 2015 年被微軟引入,目的是以生物辨識取代密碼。對企業環境而言,Windows Hello for Business 的核心機制是:在用戶完成生物登記後,系統為其生成一組非對稱金鑰對,公鑰上傳至身份提供商(Active Directory 或 Entra ID),私鑰保存在本地 TPM 中,此後以加密挑戰的形式向網域驗證身份。而生物辨識本身的作用,是透過「手勢 → 保護金鑰 → 身份驗證金鑰 → 用戶 ID 金鑰」的鏈式釋放機制,讓系統在確認「是這個人」之後才釋放用於簽名的私鑰。
在 Windows 生物辨識服務(WinBio Service)的內部架構中,感測器資料由硬體驅動傳入核心模式,再透過廠商提供的驅動程式轉換後進入用戶模式服務。服務內部以適配器(Adapter)架構組織:Sensor Adapter 負責採集、Engine Adapter 負責 AI 比對(輸出 0~1 的閾值判斷),Storage Adapter 負責從本地加密資料庫存取模板。所有通訊透過稱為「管道(Pipeline)」的函數指標結構進行,客戶端應用程式永遠無法直接讀取生物特徵原始資料,只能透過 RPC 取得識別結果,從而保護隱私邊界。
然而,研究員發現這套架構存在一個根本性的信任邊界問題。資料庫的加密標頭使用微軟的 DPAPI(`CryptProtectData`)保護,而這個函式在 System 帳戶下執行,意味著任何擁有本地管理員權限的帳戶,都可以呼叫 `CryptUnprotectData` 解密整個資料庫,包括讀取每位用戶的生物模板、加密金鑰與 SID 綁定關係。攻擊者因此可以:解密某用戶的模板、注入自己的生物特徵資料、重新加密並更新資料庫中的雜湊完整性標頭,使系統在下次人臉辨識時,將攻擊者的臉識別為被攻擊用戶。在現場演示中,研究員以本地管理員身份執行工具,成功將自己的臉替換進另一位研究員的帳戶模板,隨後在網域環境中以對方身份完成 Windows Hello 登入。
緩解方向有兩個層次。硬體層面,應啟用 ESS(Enhanced Sign-in Security)模式,它利用 Hypervisor 的 VTL1 隔離環境運行獨立的生物辨識服務,VTL0 的管理員即使取得系統權限也無法存取 VTL1 的記憶體,從根本阻斷此攻擊路徑;但此模式需要支援安全感測器的攝影機硬體(通常為 Intel 平台),AMD 平台目前尚不支援。軟體層面,若無法啟用 ESS,建議每台客戶端僅允許一位用戶登記生物辨識(縮小攻擊面)、改以 PIN 碼驗證替代(PIN 提供密碼學熵,並受 TPM anti-hammering 機制保護),並對 WinBio 服務的資料庫存取行為進行監控告警。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

