這周是進入2018年後第一個星期, 本應是讓人期待的一個好開始, 但事實上剛開年, 全球用戶和軟硬體廠商就必須面對一個難堪的問題:我們日常使用的PC和手機中最主要硬體之一的處理器, 近日被曝出存在兩個重大缺陷:“Meltdown”和“Spectre”, 惡意軟體可以利用它們來對PC、移動設備和雲進行攻擊獲取個人資訊, 而且與以往硬體缺陷容易被修復不同的是, 這兩個缺陷的根源是來自現代處理器的架構設計。
“Meltdown”和“Spectre”嚴重性在於它們利用到處理器的底層執行指令, 這是自處理器架構設計而來的特性。 由於現代化的處理器都採用了推測執行(speculative execution)來進行任務調度, 即處理器會根據工作任務預先給出猜測指令, 如果符合特定的條件即進行執行, 否則的話就會丟棄這條推測的指令, 不進行執行。 推測執行是所有處理器中最基本的一個架構功能, 所以它可以直接從緩存中獲取所有包括標識為不可讀的資料,
據外媒ArsTechnica在報導中解釋到, “Meltdown”利用的便是推測執行來獲得使用者程式中的內核資料, 目前Intel、AMD和ARM的處理器都會在記憶體內進行推測執行, 其中Intel最為激進, 其晶片允許 使用者程式使用內核資料和執行進入檢查, 從而可以訪問到內核記憶體(Kernel memory), 這裡往往保存了使用者的隱私資料, 但AMD和ARM的處理器則沒有這樣被攻擊的風險, 因為AMD禁止了這類執行, 而ARM早已經有補丁進行防範。
目前要封堵“Meltdown”存在隱患, 主要通過打補丁來關閉作業系統的共用內核映射, 這是個自上個世紀九十年代初, 便用於來提高系統運行效率的作業系統功能,
對於AMD和ARM處理器更需要面臨的漏洞則是來自“Spectre”(當然Intel處理器也有這個缺陷), 其利用到更多推測執行的能力, 所以這個危害性要比“Meltdown”更為廣泛和深入, 不僅會獲取系統內核的資訊, 還可以獲取虛擬機器管理員到訪客系統的大範圍資訊, 而且利用這個缺陷進行的攻擊還無法被追蹤到(所以稱為幽靈), 這使得目前還沒有很有效的防範措施放出。
慶倖的是, 現階段還沒有人利用“Meltdown”和“Spectre”進行攻擊, 這兩個缺陷對於雲服務商的威脅更大, 而普通用戶受到的影響要小很多, 大眾只要安裝Windows、macOS和Linux系統提供的安全補丁即可。 當然這些都只是補救手段, 要徹底解決這兩個缺陷, 還需要處理器在未來的架構上作改進了。