0
本文作者: 劉琳 | 2020-06-09 18:17 |
“大神” Linus Torvalds 又來懟人了。
據(jù)開源中國報道,近日,Linux 內(nèi)核項目負責人 Linus Torvalds 刪除了 AWS 工程師提交的一個補丁,他認為這將導致所有使用該補丁的 Linux 用戶的 CPU 性能下降(無論他們是否使用英特爾 CPU) 。在回復該郵件時表示:
在我看來,這基本上是將緩存刷新指令導出到用戶空間,并為進程提供了一種方式,可以說讓與這事情無關的其他人也慢了下來。
換言之,據(jù)我所知,這就是瘋狂的 Intel 發(fā)布了有缺陷的 CPU,它給虛擬化代碼帶來了問題(我對此并不太在意),但現(xiàn)在要因為它的問題影響到本來就沒有這些問題的 Linux 用戶,這是完全沒有意義的。
我不想某個應用程序跑起來就像在說 ‘哦,我是一個特別的,漂亮的,如此嬌嫩的花,我想刷新 L1D 上的每一個任務緩存,無論我在什么 CPU 上,無論它是否有漏洞’。因為這個應用程序不僅會降低自身速度,還會降低其他應用程序的速度。
也就是說,漏洞確實存在,影響不大,但如果利用這個補丁來修復反而會讓用戶的電腦變得更慢。
同時,他也指出,Linus 對虛擬化的引用其實也是針對 AWS 的,AWS 和其他云服務提供商一樣,銷售的虛擬 cpu 通常啟用了同步多線程(simultaneous multithreading,SMT)功能。
“在啟用 SMT 的情況下,任務調(diào)度是分布式進行的,所以說,在任務結束與新任務開始之間刷新 L1D 緩存是非常愚蠢的?!?/p>
對此,有網(wǎng)友表示贊成,認為這是典型的 AOE 補丁,打補丁之后,無論是 AMD 還是 Intel ,都會降低性能,不能通過是正常的。
也有些網(wǎng)友純碎是來吃瓜的,表示 Linus 又口吐芬芳了,我的青春又回來了?。ㄊ謩庸奉^)
那么,讓大神吐槽的這個漏洞補丁是啥?
據(jù)開源中國介紹,這種新型攻擊名為“探聽輔助 L1 數(shù)據(jù)采樣攻擊”,簡稱 Snoop (CVE-2020-0550)。
今年 3 月,來自 AWS 的軟件工程師 Pawel Wieczorkiewicz 發(fā)現(xiàn)了 Intel 處理器的這一漏洞,稱它可能會泄露 CPU 內(nèi)部存儲器或緩存中的數(shù)據(jù),涉及 CPU 包括 Intel 旗下流行的 Xeon 和 Core 系列處理器。Pawel 迅速向 Intel 報告了此問題,隨后該漏洞被 Intel 定位為中等嚴重性漏洞。
Snoop 攻擊利用 Intel CPU 多級緩存、緩存一致性和總線監(jiān)聽等特性,通過位于 CPU 內(nèi)核中的一級數(shù)據(jù)緩存(L1D),通過“總線監(jiān)聽”(bus snooping)功能 —— 在 L1D 中修改數(shù)據(jù)時發(fā)生的緩存更新操作,將數(shù)據(jù)從 CPU 中泄漏出來。
所以,這個漏洞到底重不重要呢?
在講這個問題之前,先要明白三級緩存的概念。
百度百科顯示,通常,計算機會采用三級緩存的設計來提高 CPU 的運行效率,三級緩存包括 L1 一級緩存、L2 二級緩存、L3 三級緩存,這些緩存都集成在 CPU 內(nèi),它們的作用是作為 CPU 與主內(nèi)存之間的高速數(shù)據(jù)緩沖區(qū)。
圖片來源自網(wǎng)絡(侵刪)
其中 L1 最靠近 CPU 核心;L2 其次;L3 再次。運行速度方面:L1 最快、L2 次快、L3 最慢;在執(zhí)行一項任務時,CPU 會先在最快的 L1 中尋找需要的數(shù)據(jù),找不到再去找次快的 L2,還找不到再去找 L3,L3 都沒有才去內(nèi)存找。
一級緩存又可以分為一級數(shù)據(jù)緩存(Data Cache,D-Cache,L1D)和一級指令緩存(Instruction Cache,I-Cache,L1I),分別用于存放數(shù)據(jù)及執(zhí)行數(shù)據(jù)的指令解碼,兩者可同時被 CPU 訪問,減少了 CPU 多核心、多線程爭用緩存造成的沖突,提高了處理器的性能。
也就是說,這個漏洞一旦被攻擊者利用就會直接攻擊電腦的核心,所以,Pawel 認為這一攻擊方式是危險的,補丁是必要的。
但 Linus Torvalds 卻不這樣認為。
Intel 官方也給出了解釋,表示這種新攻擊很難實施,并且不會泄露大量數(shù)據(jù),因為 L1D 緩存中的數(shù)據(jù)非常有限,并且只有在任務運行時調(diào)用數(shù)據(jù)的短暫時間內(nèi)才會存在。
我們不認為 Snoop 攻擊在可信賴的操作系統(tǒng)環(huán)境下是一種實用的攻擊方法,因為要利用這一漏洞需要同時滿足很多苛刻的條件,比如攻擊的時間要正好與用戶打開程序的時間吻合,且程序調(diào)用的數(shù)據(jù)正好是攻擊者想要竊取的數(shù)據(jù)。
至于這個補丁是否真的沒多大用處,我們也只能等待時間來證明了。
在開源世界,Linus Torvalds 是個如雷貫耳的名字。技術天才、大神、開源領袖……他開發(fā)的 linux 對開源軟件運動功不可沒,是所有 Geek 們的最愛。
Linux 是一種自由和開放源代碼的類 UNIX 操作系統(tǒng)。該操作系統(tǒng)的內(nèi)核由 Linus Benedict Torvalds 在 1991 年 10 月 5 日首次發(fā)布。在加上用戶空間的應用程序之后,成為 Linux 操作系統(tǒng)。
但是,偉大的人總有點怪脾氣,這位開源之父就經(jīng)常因為講話帶有情緒,甚至是因為帶有臟話的意見而飽受非議。但大多數(shù)情況下 Linus Torvalds 憤怒的主要原因都與技術有關,并不針對人。
比如,2018 年,為了修補 Spectre 漏洞,Intel 工程師提供了一個間接分支限制推測(indirect branch restricted speculation, IBRS)功能的補丁。Linus Torvalds 當時就在郵件列表中公開指出 IBRS 會造成系統(tǒng)性能大幅降低,直言該補丁“就是徹徹底底的垃圾”,“Intel 真的要做這個 X 一樣的東西?”
再比如,他曾經(jīng)是這樣評價C++:“坦白的說,C++ 是一個非??膳碌恼Z言,并且很多不合格的程序員都在使用它,這讓它變得更可怕。即使你用C語言不做任何事情也可以把那些用 C++ 的程序員干掉?!?/p>
甚至連 windows 也沒逃過他的吐槽。
在一次采訪中,記者問他對微軟 Windows 操作系統(tǒng)的看法時,他回答道:Windows 作為一個操作系統(tǒng),確實打造了許多還算 OK 的應用,其中有些還是非常不錯的。但是從操作系統(tǒng)跟這個角度來看的話,Windows 真的是一個很爛的操作系統(tǒng)。從道德角度來看,他的影響會更大些。微軟確實是在影響著世界,但是我覺得他們不應該涉及那么廣,只顧著賺錢?!?/p>
還有,在一次課堂上,當有學生問及英偉達芯片相關的問題時,Linus 更是簡單粗暴,并且直接對著鏡頭來了這么個動作:
盡管他自己也意識到了自己的這個壞毛病,曾經(jīng)還表示閉關反省,但網(wǎng)友們認為這也并非什么大問題,畢竟比起他做出的貢獻,這些反而是大神的人格魅力。
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
參考來源:
【1】https://www.zdnet.com/article/linus-torvalds-talks-frankly-about-intel-security-bugs/
【2】https://www.theregister.com/2020/06/02/linus_torvalds_kernel_intel_patch/
【3】https://lore.kernel.org/lkml/CAHk-=wgXf_wQ9zrJKv2Hy4EpEbLuqty-Cjbs2u00gm7XcYHBfw@mail.gmail.com/
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。