近日,研究人员在Secure Boot(安全启动)过程的核心组件中发现一个安全漏洞——BootHole,CVE编号为CVE-2020-10713。攻击者利用该漏洞可以修改启动加载过程。启动加载过程是在真实操作系统启动之前进行的,这一过程主要依靠启动加载器(bootloader),负责加载所有操作系统之上运行的计算机硬件组件的固件。
BootHole是当下最流行的加载启动器组件GRUB2中的安全漏洞。GRUB2是大多数Linux 发行版的首选启动加载器,也是部分Windows、macOS和BSD系统的启动器。
BOOTHOLE工作原理
BootHole漏洞其实是Eclypsium研究人员今年早些时候发现的。完整技术细节参见https://www.eclypsium.com/2020/07/29/theres-a-hole-in-the-boot/
攻击者利用BootHole漏洞可以修改GRUB2组件在加载启动过程中插入和执行恶意代码,植入后期用来控制整个操作系统的代码。
Eclypsium称,BootHole漏洞是位于与GRUB2独立的配置文件grub.cfg中的,grub.cfg文件中保存着加载启动器指定的系统设置。攻击者可以修改配置文件中的值来触发GRUB2组件的缓冲区溢出漏洞,比如每次系统启动后读取该文件时就会触发缓冲区溢出漏洞。
下图是BootHole攻击漏洞的简单描述,攻击者可以修改grub.cfg中的一个或多个选项来在GRUB2 组件中执行恶意代码。
Eclypsium称,BootHole可以被滥用来攻击加载启动器,甚至可以用恶意或有漏洞的版本来替换。此外,启动了Secure Boot的服务器或工作站仍然受到BootHole漏洞的影响。
Secure Boot是服务器或计算机用加密检查的方法来确保启动进程只加载经过加密签名的固件组件。在一些设备和操作系统的设置中,Secure Boot并不验证grub.cfg文件的内容,因此攻击者可以修改其内容,因此启用Secure Boot并不影响 BootHole攻击。
BootHole攻击也不是万能的。要实现攻击,攻击者需要有admin权限来修改grub.cfg文件。这看起来是对攻击的一个限制,但事实上并不是,因为操作系统和其组件中存在提权漏洞可以被用来构成攻击利用链使恶意软件获取admin权限,并最终修改grub.cfg。
此外,Secure Boot过程主要是为了防止高权限的admin账号入侵启动过程,也就是说,BootHole是IT生态系统最安全的操作中的严重安全漏洞。
漏洞影响
每个Linux发行版应该都受到该漏洞的影响,因为所有使用GRUB2加载器的系统都可以从外部grub.cfg文件中读取命令。截止目前,已经确定有80多个shim受到该漏洞的影响。Shim是允许OEM/厂商固件代码与GRUB2进行交互的组件。
除了Linux系统外,所有使用标准UEFI CA的Secure Boot的系统也受到该漏洞的影响。因此,研究人员认为目前使用的大多数主流系统都受到该漏洞的影响,包括服务器、工作站、笔记本、台式机、以及基于Linux的OT和IoT系统。
补丁和修复
Eclypsium称已经通知了所有的软硬件生态系统,预计今天开始相关厂商会陆续发布补丁来修复BootHole安全漏洞。预计会发布安全预警和补丁的厂商有:
· 微软
· UEFI Security Response Team (USRT)
· Oracle
· Red Hat (Fedora and RHEL)
· Canonical (Ubuntu)
· SuSE (SLES and openSUSE)
· Debian
· Citrix
· HP
· VMware
· OEMs
· 以及包括安全软件在内的软件厂商
由于修复启动器漏洞是一个复杂的过程,设计多个组件和加密技术,因此Eclypsium猜测整个修复的周期会比较长。
Canonica响应
Canonica的安全工程师主管Joe McManus称,Canonical正在与开源社区合作来升级GRUB2以应对这一安全漏洞。在这一过程中,研究人员还发现了GRUB2的7个安全漏洞,相关补丁已经发布。攻击本身并不是远程漏洞利用,但是需要攻击者有root权限,因此该漏洞并不会成为广泛利用的在野漏洞。
Red Hat回应
Red Hat安全产品主管Peter Allor称,Red Hat也意识到了该漏洞,目前正在进行深入分析以确定漏洞是否影响Red Hat产品,以及漏洞是如何影响Linux 内核的。补丁发布后将会尽快推送给所有受影响的产品和用户。
本文翻译自:https://www.zdnet.com/article/boothole-attack-impacts-windows-and-linux-systems-using-grub2-and-secure-boot/ 与 https://www.zdnet.com/article/linux-distros-fix-new-boothole-bug/如若转载,请注明原文地址