近日,Linux內核負責人Linus Torvalds(linux之父)刪除了Amazon Web Services(AWS)工程師的補丁程序。
事情的起因是今年的三月,Intel CPU曝光容易受到新的Snoop攻擊影響,可能會泄漏CPU內部存儲器(緩存)中的數據。AWS工程師Pawel Wieczorkiewicz發現并報告了此攻擊方法,該攻擊被描述為“Snoop輔助L1數據采集”,或“Snoop”(CVE-2020-0550),這些攻擊可能會影響了一系列Intel Xeon和Core CPU。
而寫這個補丁的Balbir Singh表示: “這可以保護數據在任務切換到上下文后不被旁通道竊聽或泄漏。” 該補丁本來會隨Linux內核版本5.8一起發布。這個功能將允許應用程序以選擇加入的方式調用prctl(2),在任務離開CPU后刷新L1D緩存,前提是硬件支持這個任務。
而Linus Torvalds看見卻表示忍受不了。直接刪了補丁,并發了郵件回復為什么。
對于刪除的補丁,他說:“因為在我看來,這基本上是將緩存刷新指令導出到用戶空間,并為進程提供一種方式”。“我不希望內核執行似乎“超出愚蠢”的事情。”換句話說,就是這個補丁降低了性能
而在linux的文件里也詳細的說明了。
Torvald的觀點之一是,在最低要求下,啟用SMT應該完全禁用這種瘋狂的偽安全性,因為在那種情況下它是完全沒有意義的。調度根本不是SMT處于啟用狀態的同步點,因此在上下文切換刷新L1是很愚蠢的” 他說。
Linus表示其實對虛擬化的引用是針對AWS的,AWS與其他云提供商一樣,通常啟用了同步多線程(SMT)的虛擬CPU。