今日凌晨,苹果发布了基于Arm核心的Mac笔记本处理器M1,从手机基带到Mac笔记本处理器,苹果似乎彻底与Intel分手了,详情请看《是“第三者”,导致了苹果与Intel的彻底分手吗?》,而此中原因,有很大一部分确实是Intel差强人意,这不,人家在宣布自己的喜讯:"M1诞下了三胞胎:MacBook Air、MacBook Pro、Mac mini",可Intel还在修补自己的CPU漏洞......
英特尔今日发布了 CPU 微代码更新,以防止攻击者滥用 RAPL 机制、从其 CPU 中窃取敏感数据。与此同时,一支研究团队披露了一种名叫“鸭嘴兽”(Platypus)的新型攻击方法,全称为“针对受保护的用户敏感数据的功率泄露攻击”(Power Leakage Attacks:Targeting Your Protected User Secrets)。
被攻击者利用 RAPL 接口,全称为“运行平均功率限制”(Running Average Power Limit)。其支持通过系统固件、或工具软件,来监测 CPU 和 DRAM 的功率消耗。
作为一种已被运用多年的应用程序 / 系统硬件性能追踪和调试接口,其能够有效地让固件和工具软件调取 CPU 为执行相关任务所需耗费的能源。
然而在今日发表的一篇论文中,来自格拉茨技术大学、伯明翰大学、以及 CISPA 亥姆霍兹信息安全中心的研究人员团队,已经揭示了如何通过 Platypus 攻击来确定 CPU 内部正在处理哪些数据,然后通过 RAPL 接口汇报相应的值。
研究人员指出,借助 Platypus,其证明了可通过观察功耗的变化,来区分不同的指令、以及不同的操作数和存储负载的权重,从而达成推断出负载值的目的。
PLATYPUS - Breaking KASLR with Intel RAPL(via)
这些“已加载值”特指 CPU 中加载的数据,比如加密密钥、密码、敏感文档、或任何其它类型的信息。
通常情况下,这类数据的访问可受到一系列安全机制的防护。比如内核空间布局随机化(KASLR),或在硬件隔离的受信任执行环境(TEE)下运行,Intel 公司的 SGX 也是其中一种。
然而新研究表明,Platypus 攻击允许别有用心者通过查看功耗值的变化,来绕过所有这些安全机制构筑的信息围栏。
测试期间,研究人员称其仅通过持续 20 秒的 RAPL 功耗值观察,即成功地绕过 KASLR 机制的防护,并从 Linux 内核中检索了相关数据。在另一项测试中,他们还检索了在 Intel SGX 安全区内处理的数据。
不过要从 SGX 安全区内检索 RSA 秘钥,需要攻击者通过 Platypus 展开持续 100 分钟的 RAPL 数据监测。若要从 SGX 安全区和 Linux 内核内存空间检索 AES-NI 加密密钥,更需要耗费 26 个小时。
而且相比之下,Linux 较其它平台更易受到 Platypus 攻击的影响。因为 Linux 内核附带了 powercap 框架,该通用驱动程序可用于和 RAPL 接口(及其它功率限制 API)进行交互,以轻松读取功耗值。
当然,这并不意味着 Windows 和 macOS 就可以高枕无忧。只是在某些情况下,攻击者必须在目标设备上安装 Intel Power Gadget 实用工具应用程序,才能够通过 RAPL 接口进行交互。
但无论底层操作系统如何处理,针对 Intel SGX 安全区的 Platypus 攻击都可以在一定程度上得逞。因为攻击者仅追求对 SGX 安全区的访问,而不涉及 OS 底层及其独立的 CPU 内存区域。
PLATYPUS - Attacking AES-NI with Intel RAPL(via)
除了通过物理接触,研究团队也证实 Platypus 攻击可远程发起。比如通过将攻击代码植入恶意软件的安装包中,即可在没有真人直接介入的情况下对目标系统展开攻击。
当然,Platypus 和 PlunderVolt 攻击也存在着较大的区别。后者是针对 Intel CPU 电源电压接口的另一种形式的攻击,实际应用中也更加积极(比如主动修改功率值)。
相比之下,Platypus 要更加被动一些,仅通过查看功耗数据来推断出 CPU 正在处理的敏感数据。庆幸的是,芯片制造商已于今日发布了 CPU 微代码(固件)修复更新。
最后,相关安全报告涉及 CVE-2020-8694(Linux + Intel)、CVE-2020-8695(Intel)、以及 CVE-2020-12912(Linux AMD),研究论文(PDF)和更多细节可移步至 Platypus Attack 网站查看。