漏洞百出的硬體和理論CPU攻擊令Linus Torvalds感到越來越沮喪
在過去的一周裡,Linux 的創造者Linus Torvalds 一直活躍在Linux 內核郵件列表當中,討論如何避免copy_from_user() 中的barrier_nospec(),因為它”矯枉過正,速度慢得令人痛苦”。 對話演變成了關於CPU 行為和最佳處理方法、支援Linear Address Masking (LAM) 的新英特爾CPU 的不同行為/要求,以及最近令人頭疼的CPU 安全緩解措施等問題的底層討論。
Torvalds 提出,一些建議的代碼可能不適用於Arrow Lake 和Lunar Lake 等採用LAM 的英特爾CPU。 但由於某些CPU 行為缺乏確定性,建議先行修改一些核心程式碼。 這就是Linus Torvalds 在周日深夜撰寫回應的原因,其中包含另一個經典的Torvalds 風格訊息:
老實說,我已經受夠了漏洞百出的硬體和從未在實際中使用過的完全理論性攻擊。
因此,我認為這次我們要反擊硬體人員,告訴他們這是他們**的問題,如果他們連”是”或”否”都懶得說,那我們就坐以待斃。
因為該死的,讓我們把責任歸咎於誰,而不是隨便拿一個糟糕的硬體說事,然後說”哦,但這**可能是個問題”。
Linus
關於新英特爾LAM CPU 的問題,英特爾工程師Kirill Shutemov今天上午在該主題上發表了評論:
LAM帶來了自己的猜測問題[1],LASS[2]將解決這些問題。 有一個補丁[3]可以在LASS 上線前停用LAM,但由於某些原因一直沒有應用。
[1] https://download.vusec.net/papers/slam_sp24.pdf
[2] https://lore.kernel.org/all/ 20240710160655.3402786-1-alexander.shishkin@linux.intel.com
[3] https://lore.kernel.org/all/5373262886f2783f054256babdf5a98545dc986b.1706068222.git.pawan.kumar.gupta@linux.intel.com
LASS 是線性地址空間分隔支持,作為一項新的安全功能,可防止用戶/核心模式下的惡意虛擬地址空間存取。 核心程式碼與Linus Torvalds 圍繞著避免copy_from_user() 中的barrier_nospec() 所進行的討論完全不同。
長話短說,Linus Torvalds 對漏洞百出的硬體和不斷增加的CPU 安全問題(尤其是圍繞理論與實際攻擊的混亂狀態)並不滿意。