歡迎光臨
每天分享高質量文章

註意了,你的伺服器效能或將下跌50%,罪魁禍首就是他

1月2日,Google Project Zero 在部落格發文公佈了一系列CPU漏洞資訊,其中就包括在外網及雲端計算供應商中引起軒然大波的 Meltdown:該漏洞由硬體設計引發,在同一物理空間的虛擬使用者A可以任意訪問到另一個虛擬使用者B的資料,包括受保護的密碼、應用程式密匙等,該漏洞需要進行OS級別修複,同時將導致嚴重的效能下降。。。

漏洞詳情


  • Meltdown 技術可以讀取 Linux、Mac OS 的整個物理記憶體和 Windows 的大部分物理記憶體。Linux 核心 2.6.32 ~ 4.13.0 的版本以及最新的 Windows 10 均受到影響。

  • 可以讀取其他行程的物理記憶體。即使在使用核心共享技術(例如 Docker, LXC)或者用 Xen 晶片的 paravirtualization 功能製作的沙箱中,也可以讀取核心或 hypervisor 記憶體。

  • 影響了大部分從 2010 年開始生產的 Intel 晶片。在 ARM 和 AMD 晶片上的實驗沒有成功。

  • 漏洞根本原因是“預測執行”技術的設計缺陷。


漏洞原理

為了提高處理效率,當代處理器內嵌有預測技術:透過預測下一條指令,處理器可以填滿內部流水線,充分發揮運作效率。Intel的推測執行(Speculative Execution)技術是業界標桿水平,行業內所有公司都在向Intel靠攏,但是這個漏洞說明Intel的推測性執行在晶片內部的訪存執行單元Load/Store Unit和重排序緩衝區ROB上存在安全檢查漏洞,導致作業系統核心的安全保護出現問題,使得使用者程式可以窺測核心資料,包括系統訪問歷史記錄,密碼等等隱私,同時會造成KASLR(Kernel Address Space Layout Randomization,核心位址空間佈局隨機化)的無效化,導致攻擊者可以推斷出核心地址,進而發動攻擊控制控制整個系統,造成嚴重的安全風險。受影響使用者包括伺服器環境、PC環境和移動環境。

該漏洞使得攻擊者可以透過構造一段程式碼完成如下的利用過程:

  • 使得一句需要訪問受保護記憶體的指令本來永遠無法達到,但是可能因為“預測執行”而提前執行。

  • 該程式碼根據受保護的資料內容不同而訪問記憶體中的不同位置。(例如如果 data 是想破譯的資料,那麼 prob_array[data*4096] 會根據 data 的不同而訪問不同的記憶體頁)。

  • 晶片發現許可權不足,因此回滾之前的操作,將狀態恢復到那條指令執行之前的情況。然而,CPU 中的記憶體快取沒有回滾。

  • 攻擊程式檢測 prob_array 中的每個記憶體頁取回資料的時間。如果某記憶體頁的取回時間很短,說明該頁在快取中,是之前剛剛訪問過的頁面。從這個頁面的下標就可以推斷出 data 是什麼。


如何修複

目前該漏洞的解決方案方案只有兩個:進行OS級別修複或者購買重新設計的CPU。至關重要的一點是,OS級別的修補措施會對 Linux 和 Windows 系統在 Intel 處理器上的執行效能造成影響。

目前 Linux 系統已經修複該漏洞,採用的方案被稱為核心頁表分離。主要功能是透過KPTI(Kernel Page Table Isolation)完全分離系統核心與使用者記憶體,讓系統使用另外一個分割槽表,使得使用者程式無法訪問系統核心。

漏洞影響


  1. 效能影響:

    KPTI會導致CPU頻繁地從核心樣式切換到使用者樣式,引發耗時的TLB快取掃清,拉低系統效能。根據初步測試,Intel CPU效能會降低5%-30%,相當於回退1~2代。舉例來說,第八代的酷睿CPU打上補丁後的效能可能低於同檔次的第七代的酷睿CPU。

    目前phoronix已對此進行了測試,IO效能幾乎下降了50%,編譯效能下降了接近30%,postgresql和redis也有差不多20%的效能下跌。

  2. 個人使用者:

    對於個人使用者來說,本次漏洞在大部分使用場景下的影響並不嚴重, CPU 效能下降帶來的換機需求除外。。。。。。

  3. 雲端計算服務商:

    本次的漏洞會影響所有的雲廠商,包括但是不限於Amazon、Microsoft、Google等巨頭。

    如果漏洞被利用,那麼在同一物理空間的虛擬使用者A可以任意訪問到另一個虛擬使用者B的資料,包括受保護的密碼、應用程式密匙等。讓人擔心的是,已經有跡象表明有駭客在利用本漏洞攻擊雲系統。短期來看,雲廠商的服務成本或有較大提升。

    由於雲平臺應用了大量的虛擬化技術,這些補丁比針對個人電腦的補丁更為複雜,由於雲廠商的伺服器擁有極高的資料吞吐,補丁對伺服器系統效能的影響會比對PC更為嚴重。

  4. 運維工程師:

    對於運維工程師而言,當務之急是將Linux系統核心升級至最新版,防止即將到來的一大波攻擊。

    未來一段時間伺服器效能下降不可避免,運維工程師需要提前做好準備。



————近期開班————

《馬哥Linux雲端計算及架構師》課程,由知名Linux佈道師馬哥創立,經歷了8年的發展,聯合阿裡巴巴、唯品會、大眾點評、騰訊、陸金所等大型網際網路一線公司的馬哥課程團隊的工程師進行深度定製開發,課程採用 Centos7.2系統教學,加入了大量實戰案例,授課案例均來自於一線的技術案例,自動化運維、Devops、雲服務、python等技能一站式搞定,掌握2018年linux雲端計算高薪未來。

28期面授班:2018年01月08號(鄭州)

29期網路班:2018年02月10號(網路)

掃描二維碼領取學習資料

更多Linux好文請點選【閱讀原文】哦

↓↓↓

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖