有些AMD处理器(最早可追溯到2006年)存在一个安全漏洞,这个漏洞会让恶意软件和内部恶意人士更容易攻击计算机,然而,AMD只为2020年后生产的型号提供修补程序。
这个漏洞是由资讯安全服务机构IOActive的人员发现的,并被关注为CVE-2023-31315,又名SinkClose。它的CVSS严重性评级为7.5分(满分10分),这使得它成为重要而非关键的漏洞。
对于那些将会获得修复的处理器,修复的方式有两种:
通过BIOS制造商提供的固件更新:也就是说,主板的BIOS制造商会发布新的BIOS版本,其中包含了针对这个漏洞的修复程序代码。用户需要下载并更新主板的BIOS,才能获得修复。
可热加载的微码更新:微码是存储在处理器内部的一种程序代码,控制处理器的运行方式。有些处理器支持在系统运行时更新微码,这种更新方式称为“热加载”。如果处理器支持这种方式,就可以通过操作系统安装微码更新来修复漏洞,不需要重新启动计算机或更新BIOS。
该错误允许恶意软件和具有操作系统核心访问权限的恶意用户在系统管理模式(SMM)中执行程序代码,SMM是Intel和AMD的x86处理器中存在的高度特权的执行环境。不过,SinkClose漏洞是AMD处理器独有的。
SMM位于核心和虚拟化管理程序以及应用程序之下,因为管理模式对机器具有不受限制的访问和控制权。在其之上运行的软件,包括核心,不能干涉SMM。如果你能在SMM中获得任意程序代码执行,攻击者可以破坏整个系统,无法被操作系统及其安全工具侦测到,从而隐秘地进行各种恶意操作。
管理模式(与Intel的管理引擎不同,后者是完全不同的系统)设计上应该在系统的其他部分中基本上不可见;它存在于BIOS(UEFI)之外,执行背景任务,控制系统电源和冷却,还有一些与主板硬件和芯片组相关的任务。核心可以请求调用SMM,但通常无法控制或看到它。在SMM中运行的程序代码是由BIOS在启动期间提供的,在操作系统运行之前。
因此,如果恶意软件或具有特权的恶意用户能够进入SMM,例如通过利用AMD机器上的Sinkclose,他们就可以真正接管该机器,监视它,窃取数据并干扰它,并以持续的方式感染它,在BIOS层面上,这将使其难以检测和清理。
但是,要利用SMM,你需要处于核心模式——这意味着你基本上已经控制了机器。这使得该漏洞的重要性大大降低,但它仍可以被聪明的对手用来让你这整个月过得很糟糕。
某些特殊的CPU托管器定义了SMM的操作,一旦这些托管器被BIOS设置,它们通常会被锁定,直到下一次重新启动(BIOS将再次设置它们),这样其他软件就不能更改它们。IOActive找到了一种绕过该锁定的方法,以便SMM的操作可以被攻击者控制。
据我们所知,SinkClose影响AMD将近20年来的处理器。
AMD关于Sinkclose的公告只提到了2017年以来发布的CPU,而且即使如此,也不是所有的CPU都受到了影响。
已知存在漏洞并且可用缓解措施或修复的处理器包括第一至第四代Epyc处理器——即Naples、Milan、Rome、Genoa、Bergamo和Siena。
在桌面处理器方面,只有部分Ryzen 3000系列产品将被修复,还有4000、5000、7000和8000系列的大量SKU。
一些Ryzen 1000和2000嵌入式桌面处理器将得到修复。但Ryzen系列的桌上CPU型号不会得到修补。据了解,AMD认为那些不会得到修补的型号已经超过了支持期限。
如果你还在怀疑AMD的Zen和Zen+ 桌面CPU是否会得到修补,那么AMD明确表示不会为Ryzen 3000桌面CPU提供修补程序,更不用说更旧的Zen和Zen+ 架构的CPU了。这意味着这些CPU的用户将持续暴露在Sinkclose漏洞的风险之下。
今年稍早,AMD针对Ryzen 3000桌面CPU修补了CVE-2023-20577漏洞,但这次却选择不修补Sinkclose漏洞,这暗示了AMD可能不再为这些处理器提供任何进一步的安全更新。