基本介紹
- 中文名:惡意數據快取載入
- 外文名:Meltdown
- 別稱:熔斷、崩潰
概述,受影響硬體,漏洞修復,參見,
概述
在具備非依序運行及推測運行特性的處理器上,處理器會檢測指令的相依性,對無相依性的指令會進行預先運行,或者當處理器運行某一指令出現異常而面臨停頓時,處理器會先運行與異常指令無相依性的指令以跳過停頓,這兩類指令運行方式的運行結果都會保存到CPU快取上一段時間以備使用(超過時間即拋棄結果),這些預測運行的動作包括分支預測,預讀取,推測性記憶體訪問,快取缺失的重疊/亂序處理(MSHR)等等。
某進程的某條指令需要其指定某個存儲器地址的數據進行運算,基於CPU快取的機制,該筆數據會先載入至CPU快取上,而這個過程對於指令而言是透明的,因此其它進程是無法直接從CPU快取上得知該筆數據的內容,而又因數據未載入至CPU暫存器上,需要該數據的指令仍無法得知數據內容,在這裡,基於分級保護域機制,CPU將數據從CPU快取載入至CPU的暫存器前是需要經過數據許可權檢查和存儲器地址合法性檢查,只有這些數據的訪問許可權被確認等於或低於該進程的許可權、存儲器地址空間的訪問許可權匹配該進程的許可權時,方能被相應進程的指令訪問,否則將數據丟棄並對該指令進行異常處理。但是,而從存儲器載入數據到CPU快取時,CPU是既沒有對這些數據進行許可權檢查也沒有進行存儲器地址的合法性檢查的,而沒有被命中的CPU快取的數據也不會馬上被清空。如果CPU快取的數據內容無法被得知,那么這種機制的處理邏輯並不會有問題,然而如果有方法可以從其它途徑“偷看”CPU快取的數據內容的話,那么這種處理邏輯便存在缺陷。
惡意程式利用熔毀缺陷進行攻擊活動時也無法被偵測感知,是該信息安全漏洞的一大危險之處。
受影響硬體
最初發現熔毀缺陷主要在英特爾的微處理器產品上出現,但後來發現一些ARM架構的處理器也有該缺陷並被ARM確認,隨後IBM的POWER架構的處理器也被發現有此缺陷也得到了IBM的確認。同為x86架構的AMD處理器則沒有被發現有熔毀缺陷。而英特爾在處理器缺陷被發現公布數天后,才發表聲明確認,除了使用依序運行的產品以外全系列的英特爾微處理器都有熔毀缺陷,並且在聲明中指所有非依序運行的x86微處理器都有該缺陷以暗示競爭對手也受熔毀缺陷影響,不過另一家主要的x86微處理器供應商AMD則表示其處理器產品沒有熔毀缺陷,並指出“我們之所以認為AMD的處理器不受缺陷影響,是因為我們的標籤頁架構有特權級保護”。
更為具體的,有缺陷的CPU型號數量非常多,Google的Project Zero報告指出,除了安騰以及2013年前的Atom系列,英特爾自1995年發表基於P6微架構的Pentium Pro開始所有具備非依序運行的CPU產品都有熔毀缺陷,P6微架構是英特爾首款具備預測執行的x86(IA-32)微架構,首發產品便是Pentium Pro,而後續的英特爾x86微架構除Netburst(Pentuim 4)外都是以P6為藍本。
而ARM表示它們的主要處理器IP核不受影響,具體受影響的IP核型號已經公布。ARM Cortex-A75除了有熔毀缺陷以外還受幽靈漏洞的影響,而其它型號則沒有熔毀缺陷。帶預測運行技術的Cortex-R7、Cortex-R8、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A17、Cortex-A57、Cortex-A72及Cortex-A73IP核只受幽靈的影響。ARM是在英特爾之後第二個被發現有熔毀缺陷的產品的,但與英特爾的不同,ARM唯一有熔毀缺陷的IP核產品Cortex-A75尚未有實現商用。另外,不使用預測運行技術的ARM架構處理器,也是當前使用數量最多的ARM產品,不受任何影響,也沒有熔毀缺陷,這部分包括了大量使用在Android移動設備上的Cortex-A53IP核,以及即將有商用實現案的Cortex-A55。僅使用Cortex-A53、Cortex-A55的處理器產品包括高通的驍龍630、626/625、400系列等、聯發科的MT6795等、樹莓派單板電腦使用的博通SoC等等。