「幽靈」和「熔斷」,究竟是什麼?(事件匯總)

作者:fec

最近被「幽靈」和「熔斷」刷了屏,雖然已經有各路大牛發布了相關的研究和分析,但依然聽到身邊有不少疑惑和緊張的聲音,於是筆者整理了事件相關的內容匯總,以供大家參考。(僅為整理,歡迎大家討論。)

事件回顧

2018 年 1 月 3 日有消息傳出說,Intel CPU 存在重大 Bug ,幾乎影響所有的英特爾現代的 CPU 。後來經證實,不僅影響 Intel CPU ,其他主流 CPU 也會受到影響。

此次影響的漏洞主要為 2 個:Meltdown(熔斷)對應編號惡意數據緩存載入 CVE-2017-5754 ,Spectre (幽靈)對應編號邊界檢查繞過 CVE-2017-5753 、分支目標註入 CVE-2017-5715 ,Meltdown 影響幾乎所有的 Intel CPU(從1995年起)以及部分 ARM CPU 。而 Spectre 擁有更廣的影響範圍,Intel 、ARM、AMD 都受其影響。在 Meltdown 的情況下,一個惡意程序可以窺探操作系統的內存,並可讀取自身無許可權訪問的數據。利用此漏洞低許可權用戶可以訪問到本身無許可權訪問的內容,例如用戶密碼、加密密鑰。Spectre 可以歸納為計算機上運行的兩個程序可以相互監視,無視自身的安全界限。用戶瀏覽器訪問了含有 Spectre 的惡意利用程序,可能導致用戶的帳號、密碼泄漏。而在公共雲伺服器上,則可能打破界限,從一台虛擬機器獲取到另一個用戶的許可權。

漏洞成因簡單分析

這次漏洞利用了 CPU 執行中對出現故障的處理。由於現在 CPU 為了提供性能,引入了亂序執行和預測執行。

  • 亂序執行是指 CPU 並不是嚴格按照指令的順序串列執行,而是根據相關性對指令進行分組並行執行,最後匯總處理各組指令執行的結果。
  • 預測執行是 CPU 根據當前掌握的信息預測某個條件判斷的結果,然後選擇對應的分支提前執行。

這兩種執行在遇到異常時,CPU 會丟棄之前執行的結果,將 CPU 的狀態恢復到亂序執行或預測執行前的正確狀態,然後繼續執行正確的指令,從而保證了程序能夠正確連續的執行。但是問題在於,CPU 恢復狀態時並不會清除 CPU 緩存中的內容,而這兩組漏洞正是利用了這一設計上的缺陷進行側信道攻擊。亂序執行對應的利用即為 Meltdown ,而預測執行對應的利用即為 Spectre 。

漏洞驗證

目前 Github 給出的相應驗證 Poc

github.com/paboldin/mel

github.com/Eugnis/spect

github.com/feruxmax/mel

github.com/gkaindl/melt

github.com/turbo/KPTI-P

漏洞影響

雖然此次漏洞影響範圍較廣,並且在 Github 上已有 Poc 流出,但是目前流出的 Poc 並不能直接對系統造成危害。同時由於 CPU 本身的複雜性,暫未發現有能夠造成嚴重危害的通用穩定的 Poc 流出。同時此次漏洞並不能被單獨進行遠程利用。此次主要影響的為雲服務廠商對普通用戶的影響主要為瀏覽器方面。養成良好的上網習慣,不點開陌生人發送的連接,同時將瀏覽器更新為最新版本基本不會收到此次漏洞的影響。此外,目前暫未發現野生的針對該漏洞進行的攻擊。

修復建議

具體修復可參照下列各廠商安全公告相關安全公告

CPU 廠商

Intel

https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr

newsroom.intel.com/news

newsroom.intel.com/news

intel.com/content/www/u

ARM

developer.arm.com/suppo

developer.arm.com/suppo

AMD

amd.com/en/corporate/sp

操作系統

Microsoft微軟

  • 普通用戶:support.microsoft.com/h
  • 伺服器用戶:support.microsoft.com/h
  • 雲用戶:support.microsoft.com/h

Red Hat

access.redhat.com/secur

Linux

lkml.org/lkml/2017/12/4

Android

source.android.com/secu

Apple

support.apple.com/en-us

其他廠商

Amazon

aws.amazon.com/de/secur

Google

googleprojectzero.blogspot.co.at

chromium.org/Home/chrom

MITRE

cve.mitre.org/cgi-bin/c

cve.mitre.org/cgi-bin/c

cve.mitre.org/cgi-bin/c

Xen

xenbits.xen.org/xsa/adv

Mozilla

blog.mozilla.org/securi

VMware

vmware.com/us/security/

參考連接

blog.rapid7.com/2018/01

Understanding The Meltdown And Spectre Exploits: Intel, AMD, ARM, And Nvidia

meltdownattack.com/melt


推薦閱讀:

不要慌,U4 內核已防範「幽靈」漏洞

TAG:安全漏洞 | Meltdown | Spectre |