近日,Linux 内核项目负责人 Linus Torvalds 拒绝了 AWS 工程师提交的一个补丁,该补丁的目的是减轻 Intel CPU 遭遇一种新型窥探攻击而导致数据泄露的风险。
这种新型攻击名为“探听辅助 L1 数据采样攻击”,简称 Snoop (CVE-2020-0550)。今年 3 月,来自 AWS 的软件工程师 Pawel Wieczorkiewicz 率先发现了 Intel 处理器的这一漏洞,它可能会泄露 CPU 内部存储器或缓存中的数据,涉及 CPU 包括 Intel 旗下流行的 Xeon 和 Core 系列处理器。Pawel 迅速向 Intel 报告了此问题,随后该漏洞被 Intel 定位为中等严重性漏洞。
新的 Snoop 攻击利用了 Intel CPU 多级缓存、缓存一致性和总线监听等特性,通过位于 CPU 内核中的一级数据缓存(L1D),通过“总线监听”(bus snooping)功能 —— 在 L1D 中修改数据时发生的缓存更新操作,将数据从 CPU 中泄漏出来。
以近代 CPU 的视角来说,计算机通常会采用三级缓存的设计来提高 CPU 的运行效率。三级缓存包括 L1 一级缓存、L2 二级缓存、L3 三级缓存,这些缓存都集成在 CPU 内,它们的作用是作为 CPU 与主内存之间的高速数据缓冲区。其中 L1 最靠近 CPU 核心;L2其次;L3再次。运行速度方面:L1最快、L2次快、L3最慢;容量大小方面:L1最小、L2较大、L3更大。在执行一项任务时,CPU 会先在最快的 L1 中寻找需要的数据,找不到再去找次快的 L2,还找不到再去找 L3,L3 都没有才去内存找。
而一级缓存其实还分为一级数据缓存(Data Cache,D-Cache,L1D)和一级指令缓存(Instruction Cache,I-Cache,L1I),分别用于存放数据及执行数据的指令解码,两者可同时被CPU 访问,减少了 CPU 多核心、多线程争用缓存造成的冲突,提高了处理器的性能。一般CPU 的 L1I 和 L1D 具备相同的容量,例如 I7-8700K 的 L1 即为 32KB+32KB。Snoop 攻击就是一种窃取 L1D 缓存中数据的攻击手段。
不过 Intel 的用户也不用惊慌,据 Intel 官方解释说,这种新攻击「很难实施」,并且不会泄露大量数据,毕竟 L1D 缓存中的数据非常有限,并且只有在任务运行时调用数据的短暂时间内才会存在。“我们不认为 Snoop 攻击在可信赖的操作系统环境下是一种实用的攻击 *** ,因为要利用这一漏洞需要同时满足很多苛刻的条件,比如攻击的时间要正好与用户打开程序的时间吻合,且程序调用的数据正好是攻击者想要窃取的数据。”
该漏洞披露之后,另一位来自 AWS 的软件工程师 Balbir Singh 为 Linux 内核提交了一个补丁,该补丁使 Linux 的应用程序能够选择在任务切换时自动刷新 L1D 的缓存,以降低 Linux 系统遭遇 Snoop 攻击的风险。
Singh 在 4 月份曾解释说:“这个补丁可以防止他们的数据在任务结束后被监听或通过旁道泄露。”他原本打算该补丁可以随 Linux 内核的 5.8 版一起发布。“如果硬件支持,该特性将允许基于可选加入的应用程序调用 prctl() 功能来刷新任务关闭后残留在 CPU 中的 L1D 缓存。”
但是,知名技术测试网站 Phoronix 指出,在任务结束后刷新 L1D 缓存会导致 CPU 的性能降低。Linux 内核项目负责人 Linus Torvalds 认为,这将导致使用该补丁的所有 Linux 用户(无论是否采用 Intel CPU)的 CPU 性能降低,严正拒绝了该补丁,同时还一如既往地说起了骚话。
Torvalds 在回复该提交的邮件列表中写道:“因为在我看来,这基本上是将缓存刷新指令导出到用户空间,并为进程提供了一种方式,可以说让与这事情无关的其他人也慢了下来。”
“换言之,据我所知,这就是疯狂的 Intel 发布了有缺陷的 CPU,它给虚拟化代码带来了问题(我对此并不太在意),但现在要因为它的问题影响到本来就没有这些问题的 Linux 用户,这是完全没有意义的。”
在一番非常 Linus 式的回复下,Linus 对虚拟化的引用其实也是针对 AWS 的,AWS 和其他云服务提供商一样,销售的虚拟 cpu 通常启用了同步多线程(simultaneous multithreading, *** T)功能。Linus 接着指出,“在启用 *** T 的情况下,任务调度是分布式进行的,所以说,在任务结束与新任务开始之间刷新 L1D 缓存是非常愚蠢的。”
值得一提的是,AWS 的首席工程师 Benjamin Herrenschmidt 在与 Red Hat Linux 内核贡献者 Ingo Molnar 的讨论中也为该补丁的争论添加了一些背景。Herrenschmidt 承认这个补丁对 *** T 来说毫无意义,但他敦促 Linux 内核开发人员不要“把婴儿和洗澡水一起扔掉”,并反驳了这个补丁是因为 AWS 想把超线程作为虚拟 cpu 出售的说法。Herrenschmidt 说,“这些补丁并不是要解决运行 *** T 的客户 VM 内部出现的问题,也不是要保护 VM 免受同一系统上其他 VM 的攻击。”
事实上,Linus 已经不是之一次严辞拒绝与 Intel CPU 有关的补丁。2018 年初,为了修补 Spectre 漏洞,Intel 工程师提供了一个间接分支限制推测(indirect branch restricted speculation, IBRS)功能的补丁,Linus 当时就在邮件列表中公开指出 IBRS 会造成系统性能大幅降低。
而就在上个月,Linus 对自己的私人电脑进行了升级,同时公开了自己最新的主力机器配置,他把自己的 CPU 换成了 AMD Ryzen Threadripper ,放弃使用了 15 年的 Intel 处理器。
(稿源:开源中国,封面源自 *** 。)
Hackernews 编译,转载请注明出处: 据观察,一个利益熏心的黑客正在部署一个全新的针对 Oracle Solaris 系统的 rootkit,目的是ATM机网络,并在不同银行使用伪造的卡进行未经授权的现金提款。 威胁情报和事件应急公司 Mandiant 正在追踪名为 UNC2891的组织,...
近日,应用交付领域(ADN)全球领导者F5公司发布了一项安全警告,其研究团队监测到一个关键漏洞正在被积极利用。漏洞的追踪代码为CVE-2022-1388,CVSS 3.0评分为9.8,危险等级非常高。该漏洞允许未经身份验证的网络攻击者执行任意系统命令,执行文件操作,并禁用BIG-IP上的服务。 根...
据TechCrunch报道,红十字国际委员会(ICRC)最近遭到网络攻击,超过51.5万名“高危人群”的数据被泄露,这很可能是国家支持的黑客所为。在周三发布的更新中,红十字国际委员会证实,最初的入侵可以追溯到2021年11月9日,即在1月18日攻击被披露之前的两个月,并补充说,其分析表明,入侵是对其...
美国总统拜登警告美国企业主管立即加强其公司的网络防御,准备应对潜在的来自俄罗斯的网络攻击,以报复使该国经济陷入瘫痪的制裁。拜登在一份白宫声明中写道,”根据不断变化的情报,政府正在重申以前的警告,即俄罗斯可能对美国进行恶意的网络攻击。” “我的政府将继续使用一切工具来阻止、破坏,并在必要时回应针对关...
在现在跟黑客直接对抗之时,美国政府官员正在为另一个更长期的威胁做准备:攻击者现在正在收集敏感的加密数据并希望他们能在未来的某个时候将其解锁。这种威胁来自于量子计算机,它的工作方式跟我们今天使用的经典计算机非常不同。 它们使用的不是由1和0组成的传统比特,而是可以同时代表不同数值的量子比特。量子计算...
5月5日,SentinelLabs 发布报告,显示他们曾在知名防病毒产品Avast 和 AVG (2016 年被 Avast 收购)中发现了两个存在时间长达近10年之久的严重漏洞。 这两个漏洞被跟踪为 CVE-2022-26522 和 CVE-2022-26523,存在于名为 aswArPot.s...