Linux内核中已
出现一个标志,该标志禁用了针对服务器上运行的所有子进程中的Spectre v4漏洞的保护。 有关新参数的更多信息-剪切下。
/ Flickr / Rie H / CC BY /照片已更改为什么需要禁用保护
Spectre处理器漏洞小组于2018年初首次出名,在接下来的几个月中,这个家族充斥着新的“安全漏洞”。 漏洞与提高处理器性能的系统运行有关-
推测性的读写和
预测转换 -并使攻击者可以绕过Intel和AMD处理器中的内存隔离机制。
为了消除漏洞,操作系统开发人员会发布补丁程序,但安装补丁程序通常会导致服务器速度降低。 例如,在Linux计算机上,某些Spectre补丁
会将性能
降低 30–50%。
系统管理员对此问题不满意,尤其是在大型数据中心中。 他们开始要求Linux内核开发人员有选择地禁用Spectre保护。 发现的某些漏洞本质上只是理论上的,在许多系统中,原则上它们不会造成危害。 例如,渲染服务器场和脱机超级计算机已与Internet断开连接,因此他们
不必担心恶意代码注入。
Linux团队会见了用户,并介绍了一些功能,这些功能禁用了针对Spectre v1,v2(我们将在后面详细讨论)和v4的漏洞防护。 它们的最后一个是在2月初针对所有当前内核版本引入的-这是新的标志PR_SPEC_DISABLE_NOEXEC。
什么以及为什么禁用该功能
Spectre v4的漏洞称为“推测存储绕过”。 它允许恶意软件访问处理器先前不必要丢弃的推测性计算结果。
当CPU使用间接寻址轮流读取和写入数据时,会发生这种情况。 读取比写入更常见,处理器可以使用内存中的数据确定读取地址,而无需等待间接寻址偏移量的计算。 如果在计算偏移量之后检测到用于写入和读取的存储区域的相交(即,从错误的区域执行了读取),则再次执行第二操作,并且丢弃推测结果。
从理论上讲,事实证明,如果攻击者知道存储单元的地址和结构,则可以从中提取数据,例如加密密钥。
在发布有关该漏洞的信息几天后,针对Spectre v4的补丁就出现在Linux内核中-默认情况下,它
关闭了
内存清除功能,该功能允许异常执行命令。 但这
使处理器的I / O操作
速度降低了 10–40%。
/ Flickr / Rie H / CC BY-SA在2018年6月上旬,内核4.17版使禁用此保护成为可能。 有一个问题:参数没有从父进程传递给子进程。 对于他们来说,必须手动禁用保护,这给系统管理员带来了不便。 但是在2月初,内核开发人员实现了标志
PR_SPEC_DISABLE_NOEXEC 。 它是对先前功能的补充,并将补丁的运行模式从Spectre v4从父进程复制到子进程。 PR_SPEC_DISABLE_NOEXEC是prctl的一部分,您可以在启动任何新进程时启用它。
专家怎么说
在Linux内核开发人员的邮件列表中,新标记的介绍
由 Red Hat的Waiman Long
撰写 。 据他介绍,受到Spectre v4的保护会严重影响执行许多写操作的应用程序(例如数据库)的性能。 PR_SPEC_DISABLE_NOEXEC将帮助自动执行禁用补丁程序的检查,并通过大量同时运行的进程来加速服务器。
同时,IT社区的参与者指出,在某些情况下,对新标记的不小心处理
可能会导致不愉快的后果。
IaaS提供商1cloud.ru的开发部门负责人Sergey Belkin说:“值得注意的是,在某些环境中禁用Spectre v4的保护是不安全的 。” -例如,包括使用Java和JavaScript的Web服务。 通过托管代码公开控制过程的内容对于应用程序安全性可能是致命的。”
关于Linux内核中的其他Spectre补丁
除了PR_SPEC_DISABLE_NOEXEC标志外,Linux内核还有其他禁用Spectre保护的参数。
第一个是
nospectre_v2 。 该功能禁用Spectre v2的保护,从而使攻击者可以
使用 过渡预测块来“强制”处理器以推测方式在特定内存模块中执行操作。 为了保护起见,该修补程序
禁用了间接预测转换
的功能,并阻止了在同一CPU内核中的线程之间传输接收到的信息。
禁用保护可将处理器性能提高30%-这是从Spectre v2安装补丁后
下降的原因 。 甚至Linux的创建者Linus Torvalds也支持该新功能。 据他介绍,该漏洞仅威胁具有
SMT功能的处理器,在这种特殊情况下,禁用此漏洞将更有利可图。
第二个参数
nospectre_v1禁用第一个Spectre选项的保护。 借助恶意软件,黑客可以使处理器错误地预测条件转换的结果,并丢弃黑客所需的内存区域中的推测性计算结果。 尽管来自v1的补丁程序不会显着影响性能(根据某些
报告 ,可以完全忽略处理器速度的降低),但是开发人员
要求增加对内核禁用此保护的功能。 这使我们能够简化与外部访问隔离的网络的结构。
Linux内核社区仍然坚持Linus Torvalds最初提出的自由选择的想法:用户自己负责平衡Linux系统的安全性和性能。 因此,我们应该期望,当在内核中发现新的类似Spectre的漏洞时,将会同时显示补丁和禁用它的功能。
我们公司博客中的帖子: