目前尚不完全清楚該漏洞的運作方式,微軟表示正在調查中。
一個在網路上流傳的零日漏洞允許擁有 Windows 11 系統實體存取權的人,在數秒內繞過預設的 BitLocker 保護,並取得加密磁碟的完整存取權。
這個名為 YellowKey 的漏洞由一位使用別名 Nightmare-Eclipse 的研究者於本週早些時候公布。它能可靠地繞過 Windows 11 預設部署的 BitLocker。BitLocker 是微軟提供的全磁碟加密保護,能讓沒有解密金鑰的人無法存取磁碟內容,而該解密金鑰儲存在一個稱為可信平台模組(TPM)的安全硬體中。BitLocker 是許多組織的強制保護措施,包括與政府簽約的機構。
YellowKey 漏洞的核心是一個自訂的 FsTx 資料夾。網路上關於此資料夾的文件很少。後文解釋,與 fstx.dll 檔案相關的目錄似乎涉及微軟所稱的交易式 NTFS(Transactional NTFS),它允許開發者在單一檔案、多個檔案或跨多個來源的交易中,對檔案操作實現「交易原子性」。
繞過的步驟很簡單:
執行第三步驟至少有兩種方法。一種是開機進入 Windows,按住 [Shift] 鍵,點擊電源圖示,然後點擊重新啟動。另一種是開機後,當 Windows 開始啟動時立即重新啟動裝置。
無論哪種方式,都會出現命令提示字元(CMD.EXE)。該提示字元擁有對整個磁碟內容的完整存取權,允許攻擊者複製、修改或刪除資料。在正常的 Windows 恢復流程中,攻擊者需要輸入 BitLocker 恢復金鑰,但 YellowKey 漏洞能繞過這項防護。包括 Kevin Beaumont 和 Will Dormann 在內的多位研究者已確認該漏洞如描述般有效。
目前尚不清楚自訂 FsTx 資料夾中何者導致繞過。Dormann 表示,這似乎與交易式 NTFS 有關,而交易式 NTFS 底層使用命令日誌檔案系統。Dormann 進一步指出,查看 Windows 的 fstx.dll 會發現程式碼明確尋找 \System Volume Information\FsTx,位於 FsTxFindSessions() 函數中。
YellowKey 漏洞中使用的 FsTx 目錄內容未顯示與 RecoverySimulation.ini 相關的字串,但顯示了檔案與路徑 \??\C:\Windows\win.ini 和 \??\X:\Windows\System32\winpeshl.ini,其中 X:\Windows\System32\winpeshl.ini 控制 Windows 恢復環境(WinRE)啟動時的行為。
Tharros Labs 的資深主要漏洞分析師 Dormann 表示:
「令我感興趣的是,為什麼一個磁碟上的 \System Volume Information\FsTx 目錄存在,會影響另一個磁碟的內容,當它被重播時?🤔」
在正常的 WinRE 會話中,X:\Windows\System32 目錄中有一個 winpeshl.ini 檔案:
[LaunchApp] AppPath=X:\sources\recovery\recenv.exe
然而,利用 YellowKey 漏洞時,交易式 NTFS 在 USB 隨身碟上的部分能刪除另一個磁碟(X:)上的 winpeshl.ini 檔案,導致出現 cmd.exe 提示字元,且 BitLocker 被解鎖,而非預期的 Windows 恢復環境。雖然 TPM-only BitLocker 繞過本身很有趣,但我認為真正重要的是,一個磁碟上的 \System Volume Information\FsTx 目錄能在重播時修改另一個磁碟的內容,這本身就像是一個漏洞。」
微軟代表拒絕回應電子郵件中關於該漏洞的問題,只表示公司正在調查中。
目前人們應該知道,Windows 11 上的 BitLocker 並未提供應有的保護。這意味著即使啟用了 BitLocker,失竊或遺失的裝置仍可能被存取。
此繞過僅適用於 Windows 11 預設的 BitLocker 模式,即將解密金鑰儲存在 TPM 中。許多資安專家長期認為 TPM-only 配置不足,建議應要求輸入 PIN 碼才能從 TPM 取得金鑰。Beaumont 建議使用者啟用 BIOS 密碼鎖以防止 YellowKey 攻擊。雖然使用 BIOS 密碼鎖是良好做法,但目前尚不清楚它對此漏洞有何防護效果。