防攻擊服務器租用-怎么防范Meltdown/Spectre的漏洞?

      Meltdown?和?Spectre?是最近在 Intel、AMD、Apple 和 ARM 處理器芯片中發現的漏洞。這些漏洞由相關芯片的嚴重設計缺陷引起,由于發現了這個問題,開發人員不得不重新設計 Windows、Mac 和 Linux?操作系統軟件,以防護漏洞并防止攻擊者加以利用。

      這些漏洞由 Google Project Zero 的研究人員發現,該團隊致力于及時發現安全漏洞,以免遭攻擊者利用。截至目前,尚未發現有人利用 Meltdown 或 Spectre 漏洞。Apple、Intel 和 Microsoft 等主要技術公司的安全團隊以及開源 Linux 開發人員現在都投入了大量資源,試圖確保其處理器和操作系統的安全性,以免遭到惡意利用。

      防攻擊服務器租用-怎么防范Meltdown/Spectre的漏洞?-南華中天

      誰會受到 Meltdown 和 Spectre 漏洞的影響?

      除了少數例外,所有 PC 和/或智能手機所有者都面臨危險。根據 Google 提供的信息,1995 年以后生產的所有裝有 Intel 處理器芯片的設備都會受到影響。AMD 和 ARM 更難被利用,但它們同樣有風險。

      如何防范 Meltdown/Spectre 漏洞?

      除更換 PC 處理器以外,消除漏洞的唯一方法是修補操作系統。蘋果在 12 月初悄悄針對 OSX 推出了 Meltdown 修補程序,微軟在 1 月 3 日發布了 Windows 修補程序,而 Linux 開發人員仍在創建修補程序。

      很遺憾,這些 Meltdown 修補程序有一個副作用:由于設計原因,計算機安裝帶修補程序的操作系統后,其處理速度會減緩。速度減緩會導致性能下降大約 5-30%,這在很大程度上取決于芯片的類型和所執行的任務。

      Meltdown 和 Spectre 漏洞的實際工作方式是怎樣的?

      Meltdown 和 Spectre 都是在執行稱為“內核代碼”的特殊低級代碼時創建的漏洞,內核代碼專門在“推測執行”期間運行。

      什么是推測執行?

      用比喻來解釋推測執行,或許是最簡單的辦法。想象一個徒步旅行者在樹林里迷了路,他遇到了一個岔路口,分別通向兩條大致平行的路。其中一條通往她家,另一條則不是。她沒有浪費時間等待其他遠足者給她指路,而是選擇了她認為最有可能通向家中的那條路。在途中某個地方,她遇到了一個路標,如果路標告知她走的是正確的路,那么她會繼續沿著那條路回家。如果路標告訴她走錯了,她會迅速返回并改走另一條路,這并不比她一直呆在原地尋找方向更差。

      防攻擊服務器租用-怎么防范Meltdown/Spectre的漏洞?-南華中天

      許多現代處理器采用一種叫做“推測執行”的類似技術:CPU 嘗試猜測下一步需要執行什么代碼,在收到請求前即開始執行該代碼。如果事實證明不需要執行該代碼,則撤銷更改。這是為了節省時間并加快性能。

      關于 Meltdown/Spectre 漏洞的報告表明,Intel CPU 可能在無需進行重要安全檢查的情況下,對代碼進行推測執行操作?;蛟S,可以編寫軟件來檢查處理器是否已執行通常會被這些安全檢查阻止的指令。

      這種對推測執行的錯誤處理會產生一個 CPU 漏洞,攻擊者可以利用該漏洞來訪問內核內存中非常敏感的數據,例如密碼、加密密鑰、個人照片、電子郵件等。

      那么,什么是內核?

      內核是位于計算機操作系統核心的程序。它具有對操作系統的完全控制權,并負責管理啟動、內存處理等所有流程。內核還負責將數據處理指令發送到 CPU(中央處理單元)。大多數 CPU 一直在內核模式和用戶模式之間來回切換。

      內核模式和用戶模式有什么區別?

      在內核模式下,CPU 執行的代碼可以不受限制地訪問計算機的硬件和內存。此模式通常專用于最低級別和最受信任的操作。若在 CPU 處于內核模式時發生崩潰,就可能是災難性的;它們可能會使整個操作系統崩潰。

      在用戶模式下,正在執行的代碼無法訪問硬件或參考內存,相反,必須委托系統 API 進行訪問(擁有適當權限的用戶模式軟件可以請求某些內核模式功能,然后系統 API 可以運行這些功能)。用戶模式崩潰通常是孤立的,并且可以恢復。大多數代碼在用戶模式下執行。

      防攻擊服務器租用-怎么防范Meltdown/Spectre的漏洞?-南華中天

      為什么 Meltdown 修補程序會降低性能?

      Meltdown 修補程序中的修復功能將內核的內存與用戶進程進行更顯著的分離。這是通過稱為內核頁表隔離(KPTI)的方法完成的。KPTI 將內核模式操作移到與用戶模式操作完全分開的地址空間中。這意味著需要花費大量時間,在內核模式和用戶模式之間切換。

      為了說明這一點,假設有一輛快餐車,只出售兩種東西:熱狗和冷檸檬水??觳蛙噧鹊膯T工可以輕松到達裝熱狗的蒸鍋和裝冷檸檬水的冷卻器,快速地為顧客服務。現在,假設健康檢查員來了,要求將冷熱食品存放在不同的場所?,F在,員工仍然可以直接拿取熱狗,但必須走出快餐車,然后沿著街邊走到取檸檬水的地方。這樣,等候的隊列將移動得慢得多,尤其是在顧客訂購大量檸檬水的情況下。KPTI 降低操作系統性能的原因與此類似。

      Meltdown 和 Spectre 有什么區別?

      Meltdown 和 Spectre 都是因處理器處理推測執行的方式而導致的漏洞,但它們的工作方式及其影響的處理器類型有所不同。

      Meltdown 僅影響 Intel 和 Apple 處理器,并可能遭到利用,泄露處理器在推測執行期間執行代碼時暴露的信息。Meltdown 比 Spectre 更容易遭到利用,安全專家標記其具有更大的風險。值得慶幸的是,Meltdown 可以更容易和更直接地修補。

      Spectre 會影響 Intel、Apple、ARM 和 AMD 處理器,攻擊者可以利用該漏洞,真正誘使處理器運行其不應運行的代碼。據 Google 的安全專家稱,Spectre 比 Meltdown 更難利用,但也更難防護。