V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Osk
V2EX  ›  Windows

直呼 Linux 太坑,手动安装 Grub2 BootHole 漏洞的缓解 “补丁”

  •  
  •   Osk · 2020-09-19 15:43:09 +08:00 · 904 次点击
    这是一个创建于 1527 天前的主题,其中的信息可能已经有所发展或是发生改变。

    炸机警告

    ⚠Bitlocker 用户

    • 操作前进入控制面板暂停 Bitlocker 保护(不是关闭 Bitlocker 哈)
    • 更新前请准备好恢复密码,特别是 PCR7 绑定的,以免触发保护无法启动计算机。虽然更新 dbx 一般没啥问题,就怕万一...

    ⚠HP 商用机用户

    请参考 HP 官网更新 BIOS 或者临时禁用 HP SureStart 保护,以免更新失败。

    ⚠Linux 用户

    安装 dbx 前请更新系统, 特别确认 Grub2 是修复了 BootHole 的重签版本,否则更新后会无法启动 Linux 。

    ⚠奇葩 UEFI 固件的电脑

    可能炸机也不一定。。。

    解决方案

    土豪用户(比如 Surface Pro 等设备) + 不用 Linux

    进入固件设置 > Secure Boot,把 Secure Boot 证书模板中 Microsoft 第三方 CA ( Microsoft Corporation UEFI CA 2011 ) 拉黑。这样就只能启动 Windows 8/10,其它系统不能再启动了。

    无法拉黑第三方 CA / 要用 Linux

    很不幸我的乞丐版 surface 固件设置中并不能拉黑第三方 CA,又不想自己去测试搞自己的 PK,只能安装 dbx 更新了。

    参考 Microsoft guidance for applying Secure Boot DBX update 这篇文章安装 dbx 即可,链接我发不出来,各位自行搜索。

    自建 Secure Boot 证书的用户

    要么 dbx 里面拉黑或者不签 Microsoft Corporation UEFI CA 2011,不用其它 Linux 系统。

    也可以试试用那个 dbx 拉黑有问题的 grub2 ( uefi.org 提供的 dbx 不知道是谁的 KEK 签的, 猜测是 Microsoft Corporation KEK CA 2011 )。

    测试

    自建 PK 的计算机我没测试,因为我只签了自己的 EFI 文件,所有其它操作系统都无法启动的,也根本不受 Grub2 BootHole 漏洞影响。

    在 Surface 上测试一下安装 dbx 是否有效。

    先看看原来的 dbx :

    Get-SecureBootUEFI -Name dbx -OutputFilePath dbx-oem.var
    

    尝试一下启动 Ubuntu 20.04 LiveCD, 可以启动。

    然后安装 dbx 更新重启。看一下 dbx 变大了。回头找工具看看 dbx 里面的 hash 。

    再尝试启动 Ubuntu 20.04 LiveCD,挂了。升级 grub2 到最新,重启,可以了。

    其它发行版的 ISO 没测试过。

    不知道这个 dbx 更新是拉黑 grub2 的 hash 还是 Linux 发行版厂商用来签 Grub2 的证书,反正 shim 没被拉黑。如果是拉黑 grub2 的 hash 就太窒息了,想想 grub 发了这么多个版本...

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2964 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:35 · PVG 22:35 · LAX 06:35 · JFK 09:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.