编译 | 伍杏玲
出品 | 程序人生(ID:coder_life)
——Talk is cheap,Show me the code!
——好了,看完了,太 Low 了,我删了哈。
以上段子还真不是段子,近日,Linux 之父Linus Torvalds 删除了工程师提交的关于对 Intel CPU 的Snoop攻击补丁。
今天三月,Intel CPU曝光容易受到新的Snoop攻击影响,可能会泄漏CPU内部存储器(缓存)中的数据。AWS工程师Pawel Wieczorkiewicz发现并报告了此攻击方法,该攻击被描述为“Snoop辅助L1数据采集”,或“Snoop”(CVE-2020-0550),这些攻击可能会影响了一系列Intel Xeon和Core CPU。。
于是AWS工程师Balbir Singh为Linux内核写了个补丁,应用程序在任务关闭时选择加入刷新L1D缓存的功能。
Balbir Singh表示: “这可以保护数据在任务切换到上下文后不被旁通道窃听或泄漏。” 该补丁本来会随Linux内核版本5.8一起发布。这个功能将允许应用程序以选择加入的方式调用prctl(2),在任务离开CPU后刷新L1D缓存,前提是硬件支持这个任务。
Linus 认为这个补丁程序会允许选择加入这个补丁的程序应用降低其他应用程序的CPU性能,他在邮件里详细描述:
邮件传送门:
https://lore.kernel.org/lkml/CAHk-=wgXf_wQ9zrJKv2Hy4EpEbLuqty-Cjbs2u00gm7XcYHBfw@mail.gmail.com/
“在我看来,这是将缓存刷新指令导出到用户空间,并提供一种方法来让用户说出'我要让其他人减速'的方式,” Linus在邮件里写道。
Linus将怼人的技术练就得炉火纯青了:
“换句话说,疯狂的'英特尔发布有故障的CPU,这会导致虚拟化问题'(我不太在意),还可能影响到不需要它的人和CPU以及增加完全没有意义的配置”。
“我不希望有任何应用程序在运行的时候都是'哦,我很特别,很漂亮,如此娇嫩,我想在每个任务开关上刷新L1D,无论使用的是哪个CPU,以及是否存在问题'。如果这样做的话,应用程序不仅在降低自身速度,还在减慢其他应用程序的速度。”
Linus表示其实对虚拟化的引用是针对AWS的,AWS与其他云提供商一样,通常启用了同步多线程(SMT)的虚拟CPU。
当启用SMT后,“在最低要求下,启用SMT应该完全禁用这种疯狂的伪安全性,因为在那种情况下它是完全没有意义的。调度根本不是SMT处于启用状态的同步点,因此在上下文切换刷新L1是很愚蠢的” 他说。
“在SMT上刷新L1D 是疯狂的,因为攻击者只会在同级内核上并在任务切换发生之前攻击L1内容”。
原文参考:
https://www.zdnet.com/article/linus-torvalds-rejects-stupid-aws-made-linux-patch-for-intel-cpu-snoop-attack/
【END】
更多精彩推荐
☞程序员之痛:六次创业五回失败了
☞研发的未来在哪里?Serverless 云开发来了!
☞张一鸣是如何练就字节跳动的
☞性能超越最新序列推荐模型,华为诺亚方舟提出记忆增强的图神经网络
☞DevOps 在移动应用程序开发中扮演什么角色?
☞稳定币经济:十大稳定币简史
你点的每个“在看”,我都认真当成了喜欢