近日,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。