导语:微软的Windows恢复环境里有个调试标志叫”FailRelock”——字面意思”锁定失败”。设为1,解锁后的BitLocker永不重锁。攻击者用一个U盘加一个配置文件,就能让所有加密形同虚设。这是5年内的第5次。

事件回顾
安全研究员@weezerOSINT在分析Windows 11恢复环境(WinRE)时,发现了一个”惊天大秘密”:
微软在WinRE里留了一个完整的调试测试框架。
其中有一个标志位,叫 FailRelock。
FailRelock = 1 时,解锁后的BitLocker永远不会重新锁定。
这不是漏洞,这是微软自己留的后门,被研究员武器化了。
攻击步骤:一张图看懂
普通人:
┌─────────────────────────────────────┐
│ 1. U盘启动到WinRE │
│ 2. 创建RecoverySimulation.ini │
│ 3. Active=Yes, FailRelock=1 │
│ 4. WinRE解锁BitLocker │
│ 5. 弹出cmd.exe,拥有完全访问权 │
│ 6. 你的"加密"驱动器:已公开 │
└─────────────────────────────────────┘
微软工程师:
┌─────────────────────────────────────┐
│ "测试完了,代码先不删了" │
│ "反正用户也不会发现" │
│ "flag名字就叫FailRelock吧" │
│ "毕竟我们是微软" │
└─────────────────────────────────────┘
全程只需要一个U盘 + 改一个配置文件。
不需要昂贵设备,不需要零日漏洞,不需要GPU破解。
就是这么大巧若拙。
一个单词的笑话:FailRelock
FailRelock = “锁定失败”
程序员的命名真是诚实:
-
这个flag的本意是:测试时让系统不要重锁,方便调试 -
实际效果是:真的让锁定失败了 -
名字就叫FailRelock——字面意思,一字不差
建议下一个flag取名叫”NoSecurity”(无安全),或者直接叫”Oops”(哎呀)。
微软的BitLocker翻车史
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5年5个。
微软的BitLocker已经不是”锁”了,是”装饰品”。
每次出漏洞,微软都打个补丁。但从来不重构这个糟糕的设计——把WinRE当成”受信任”的恢复环境,里面还藏着调试开关。
修修补补,5年5洞。下一洞还会远吗?
技术原因分析
BitLocker的信任模型:
正常启动:TPM验证 → 解锁 → 系统启动
恢复启动:WinRE环境 → 解锁 → 弹cmd
问题在于:BitLocker信任WinRE,认为WinRE是”安全”的。
但微软在WinRE里藏了个开关,可以让加密形同虚设。
这就好比:
你家防盗门很安全,但门的备用钥匙藏在门框上方的钉子后面,还贴了张条:”测试用,不要动。”
缓解措施
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
物理攻击的情况下,防御手段有限。但至少不要让攻击者轻易碰到你的机器。
微软的代码质量反思
“They left an entire debug testing framework in production.” “他们在生产环境里留了一套完整的调试测试框架。”
这是工程师的大忌:
-
测试代码上线前要删除 -
调试开关不能留在生产环境 -
FailRelock这种flag应该叫XXX_TEST_MODE_ONLY_DELETE_BEFORE_SHIP
但微软没删。
可能是忘了,可能是赶工期,可能是”反正也没人发现”。
结果:5年后被发现了,还被公开了。
彩蛋
研究员预告了下一个漏洞:GreenPlasma——Windows CTFMON任意段创建提权漏洞。
微软的安全团队:求放过。
版权声明:本文由华盟网原创发布,转载需授权。














暂无评论内容