grub2 被报道安全问题,可致安全启动被绕过

2020-07-30 02:40:54 +08:00
 yanqiyu
https://eclypsium.com/2020/07/29/theres-a-hole-in-the-boot/#breaking
6586 次点击
所在节点    Linux
38 条回复
ungrown
2020-07-30 13:13:53 +08:00
@spcharc #15 你这个立场脑子正常的都看不出来,因为这个立场本身是个伪命题。
照你这么说,全盘加密、TPM 这种最简单最基本的手段完全就是多余的。
但是你不会这么说,这个技术已经太成熟也太普遍了。
你就只会拿些刚发现不久的新漏洞说说风凉话。
物理接触意味着为所欲为,但是为所欲为是需要过程和时间的。
对漏洞不遗余力地防堵,不仅仅是追求一个“无敌金身”。
当敌人已经打到家门口,而“无敌”偏偏又是不可求或者成本过高时,多修几堵墙多填几个洞,这都是脑子正常的人的务实的选择。
每少一个漏洞,每多一个反制手段,攻击面就会因此变窄,攻击需要耗费的时间就更长,需要依赖的条件就更多,防御成功性就提升。这也是每个务实的人对现实世界的认知,不局限于信息安全。
“反正城墙上有个洞,敌人来了就万事休矣了,既然如此,这个洞就不填了……”就这种弱智想法,不说其他人,哪怕你自己,你说你站这样的立场,谁信啊?倒是有可能你会用这种错误观念去忽悠别人,上了当的人大概能做你的炮灰或者笑料。
LokiSharp
2020-07-30 13:28:32 +08:00
我印象中。。。用 grub2 的各位不都想着法子绕开安全启动么
Osk
2020-07-30 13:37:12 +08:00
@LokiSharp GRUB2 和 Linux 发行版的问题在于 MS 认可的 CA 给他们签名了 shim, 让他们可以在开启 secure boot 的情况下正常加载 grub2 并启动 Linux, 然而 grub2 出现了不仅影响 Linux 自身甚至影响其它操作系统的安全漏洞...

比如 ubuntu, 很久前就被报道过类似的问题, 也不知道修复没有, 甚至很难修复, 前一阵子微软通过 Windows Update 更新 secure boot 的证书库, 据说炸了一些 HP 的商用电脑.
spcharc
2020-07-30 14:59:37 +08:00
@ungrown #21
行,开始人身攻击了。
就你脑子正常,可以了吧?
接着用渔网装水吧,懒得跟你多说了
ungrown
2020-07-30 15:17:53 +08:00
@ungrown #21 就你这种没事找茬歪理邪说从头到尾发言中隐含着傲慢鄙夷的杂碎,还想被人以礼相待?
不攻击你那是天理不容!
你那个“渔网”的比喻我都懒得接,因为根本就和现实差了十万八千里。
现实中安全领域的人们兢兢业业勤勤勉勉认真对待每个暴露出来的漏洞,就是为了防止出现“渔网”,虽然城墙上大门小洞无数但那依旧是个大体坚固的城堡,不是什么你所谓的狗屁“渔网”。
自以为是的东西还想强词夺理?
artandlol
2020-07-30 15:49:19 +08:00
资本家再想怎么挣钱,你在想怎么让你电脑安全。也没人对你电脑感兴趣
ungrown
2020-07-30 15:51:41 +08:00
@artandlol #26 你如果完全根据别人对某样事物是否感兴趣来决定自己是否也应该对之感兴趣的话,那么你会遇到一个问题:
别人对你的命也不感兴趣,按照前述,你也不该对自己的命感兴趣。
artandlol
2020-07-30 16:39:36 +08:00
五年以后,你如果还感兴趣再来聊什么是感兴趣。
@ungrown
fuxiuyin
2020-07-30 17:06:07 +08:00
@spcharc 对个人用户意义可能不大,对企业来讲还是有用的。应用场景催生解决方案,这些东西能诞生在 wintel 而不是 google 、linux,也是这两家都有很大的企业市场。这两家联手的企业市场是,企业买硬件然后买软件使用权,最终形成了企业有自己的几个服务器,拥有硬件的完全控制权但是只有软件的使用权,比如以前经典的 Outlook,sharepoint,现在的 windows 365,azure stack 。而且这种使用场景是要求,企业只需要有最基础的硬件维护人员而不需要其他 IT 人员,所以所有的安全都得 MS 和 Intel 做,要去防止这些能接触到硬件的人欺负企业上下谁都不懂而使坏,偷看其他雇员的信息呀,售卖企业的用户的数据呀。wintel 的好多安全措施都是为这种场景搞得,就像最开始的 windows AD,credential management,对零售个人用户意义不大。
ysc3839
2020-07-30 17:13:03 +08:00
@Osk 那些人不反对移动设备锁 BL,估计是知道自己怼不过厂商及广大用户。
目前的环境是大部分用户不需要且不关心这个开放性,少部分用户还会主动为封闭辩护,比如“我信得过这个厂商,我就要厂商帮我管着应用,避免应用干坏事”。
jim9606
2020-07-30 17:52:09 +08:00
@shijingshijing
x86 这边跟 iBoot 对应的应该是 Intel Boot Guard 吧。主板生产时 fuse 在 PCH 上,由 Boot Guard 验证 UEFI 固件的其余部分,固件到 OS Loader 用 Secure Boot 。

initramfs 不验证很正常吧,各家 OS 的 Secure Boot 好像都只管内核态的代码,用户态默认都不验证的,initramfs 里要加载的 ko 都是要验证签名的吧,真要连这个都检查得给 FS 上 dm-verify 了。

至于说增加攻击面,我觉得就像说不支持密码的软件就没有密码安全漏洞一样,有安全机制总比没有好,它能成为一个问题是因为我们期望它有安全性。如果一开始不期待它安全,那就不是安全问题了。
Osk
2020-07-30 18:24:04 +08:00
@jim9606 secure boot 我猜微软是想配合 bitlocker 等安全手段使用的,毕竟启用了 secure boot 内核安全了,但启动个 pe 往 c 盘里放个木马什么的就喜剧了,secure boot 也保不了。

Linux 这边只使用 secure boot 可以说真没啥意义,和 Windows 只使用 Secure Boot 一样,纯粹添堵。但一旦启用 luks 加密 / 后,不验证 initramfs 的风险就变得极大了,secure boot 信任 shim, shim 信任 kernel,但不验证 initramfs,initramfs 可以被修改加入恶意代码,比如添加一个脚本往解密后的 rootfs 植入恶意程序,或者窃取 luks key,这些攻击的成本都极低。

而 windows 的 bootmgr 好像没有类似的风险,毕竟功能少,攻击面少,不像 grub/initramfs 太过强大。(这里待验证,也许 bootmgr 有类似的风险但我没了解到,也不排除 bootmgr 在未来出现漏洞)

对于这个问题,systemd bootloader 有一个很有趣的解决方案,archlinux 上可以很方便地将 bootloader + kernel + initramfs + intel ucode + kernel cmdline 打包到一个 efi 文件中,然后对整个 efi 文件 secure boot 签名,安全上很不错,然而操作太麻烦,且需要自己生成 secure boot 的各种证书。
Osk
2020-07-30 18:25:44 +08:00
@Osk 打错了,应该是 secureboot/firmware -> shim -> grub2 ->kernel,漏了一个 grub2
jim9606
2020-07-30 19:20:09 +08:00
@Osk windows 文档对标准硬件安全性的要求是支持内存完整性+TPM+Secure Boot+DEP+UEFI MAT,说还是防范恶意软件,可能是认为内核空间安全是 OS 该负责的事,userland 的安全就不是 OS 负责了。

你说的单文件 EFI 是 EFI Boot Stub 。这个虽然是跳过 GRUB,但主要是更新太麻烦,而且生成的 efi 太大了,对于通常就 100M 左右的 ESP 分区是有点危险。Ubuntu 在有 dkms 模块时会自动配置 MokManager 负责为自编译的模块签名。不过个人觉得也就是为了兼容关不了 Secure Boot 的系统,安全性上意义不大。
bitdepth
2020-07-30 19:29:18 +08:00
@Osk 開源社區非常討厭任何人插入任何未知的東西到自己的機器上。你估計沒有見過歐洲的狂熱份子,去一趟 FOSDEM,很多的
bootloader lock 在 xda developer 用戶中也是不受歡迎的
只不過 PC 特為目標,大家認知是 PC 比較有主控權的領域,也有一些沒反成功,比如 Intel ME
shijingshijing
2020-07-30 21:29:15 +08:00
@jim9606 不好说苹果的 iBoot 和 Intel Boot Guard 是严格对应的,首先是 iBoot 有时候会被用来称呼苹果移动设备的整个启动系统,有的时候又特指 Stage 2 的启动系统,要看上下文;其次,我看了一下 Boot Guard 的内容,主要是从 ACM 转到 IBB 的时候起作用,这个感觉更接近于苹果的 LLB 。

其实核心还是逐级验证这个思想,Secure Boot 本身其实描述的是一个流程或者一个 feature,苹果貌似没有专门的称呼去描述这个,但验证过程是存在的。
shijingshijing
2020-07-30 21:58:18 +08:00
@bitdepth 不能说 Intel ME 没有反成功,其实现在很多工作站比如 HP 的 Z 系列都在 UEFI/BIOS 里面提供了永久关闭 ME 的选项,还有不少第三方工具能够清理或者削弱 ME,至于是否真正关闭了不好说,但我觉得这至少算是一个进步了。Intel 的 ME 能够做大主要还是因为发现的太晚了,Intel 悄悄把生米煮成了熟饭,更新了好几代 ME,才有人发现 PCH 里面还有一套位于 Ring -3 的操作系统。

我其实不反对这套验证机制,我真正反对的是这些东西不受用户自己控制,如果这一套验证机制是开源的,我巴不得每台设备上面都部署。
ungrown
2020-09-10 14:45:01 +08:00
@artandlol 谁允许你偏题找台阶溜的?

前面当你阴阳怪气地写出“资本家再想怎么挣钱,你在想怎么让你电脑安全。也没人对你电脑感兴趣”这样的评论的时候,你是在聊什么是感兴趣?

放肆!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694193

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX