在过去的一周里,Linux 的创造者 Linus Torvalds 一直活跃在 Linux 内核邮件列表当中,讨论如何避免 copy_from_user 中的 barrier_nospec,因为它"矫枉过正,速度慢得令人痛苦"。 对话演变成了关于 CPU 行为和最佳处理方法、支持 Linear Address Masking(LAM) 的新英特尔 CPU 的不同行为/要求,以及最近令人头疼的 CPU 安全缓解措施等问题的底层讨论。
nS*Y+Q^9a /:'>-253 Torvalds 提出,一些建议的代码可能不适用于 Arrow Lake 和 Lunar Lake 等采用 LAM 的英特尔 CPU。 但由于某些 CPU 行为缺乏确定性,建议先行修改一些内核代码。 这就是 Linus Torvalds 在周日深夜撰写回应的原因,其中包含另一条经典的 Torvalds 风格信息:
G0Qw&
mqF Z>Mv$F"p: 老实说,我已经受够了漏洞百出的硬件和从未在实际中使用过的完全理论性攻击。
_Uq' N0U =4a:)g' 因此,我认为这次我们要反击硬件人员,告诉他们这是他们**的问题,如果他们连"是"或"否"都懒得说,那我们就坐以待毙。
v|o{AL:ei HOF$(86zqA 因为该死的,让我们把责任归咎于谁,而不是随便拿一个糟糕的硬件说事,然后说"哦,但这**可能是个问题"。
gJ'pwSA gtZmBe= Linus
5;U Iz@BJ q1( [mHZ 关于新英特尔 LAM CPU 的问题,英特尔工程师 Kirill Shutemov 今天上午在该主题上发表了评论:
y~@zfJ5/^ U5OX.0 LAM带来了自己的猜测问题[1],LASS[2]将解决这些问题。 有一个补丁[3]可以在 LASS 上线前禁用 LAM,但由于某些原因一直没有应用。
I/MY4?(T D5D *$IC [1]
https://download.vusec.net/papers/slam_sp24.pdf DylO;+ f7lj,GAZ [2]
https://lore.kernel.org/all/20240710160655.3402786-1-alexander.shishkin@linux.intel.com MMs~f* VNHceH [3]
https://lore.kernel.org/all/5373262886f2783f054256babdf5a98545dc986b.1706068222.git.pawan.kumar.gupta@linux.intel.com :aej.>I0 ~\jP+[>M' LASS 是线性地址空间分隔支持,作为一项新的安全功能,可防止用户/内核模式下的恶意虚拟地址空间访问。 内核代码与 Linus Torvalds 围绕避免 copy_from_user 中的 barrier_nospec 所进行的讨论完全不同。
Wye* ~t )Y7H@e\1 长话短说,Linus Torvalds 对漏洞百出的硬件和不断增加的 CPU 安全问题(尤其是围绕理论与实际攻击的混乱状态)并不满意。
4a+gM._+O