https://www.theregister.co.uk/2018/...pu_design_flaw/
看了一下這篇,說明一下一些誤解。
1. the flaw is in the Intel x86-64 hardware, and it appears a microcode update can't address it. It has to be fixed in software at the OS level, or go buy a new processor without the design blunder.
根據這段,這個問題無法從microcode解決,只能從軟體解決。
2. 原理很簡單,記憶體管理分成kernel和user兩個空間,一般程式原則上只能存取 user 的空間。但程式執行時,因為經常需要進行系統函式呼叫,會在kernel和user兩個記憶體空間一直轉換,為了加速轉換,intel 讓執行序的分頁表保存了kernel的記憶體位址,執行序正常情況下,無法存取kernel 空間的記憶體。
但問題在intel為了更加速存取過程,使用了 speculatively execute code, 可以讓一般執行序越級存取到kernel空間的記憶體位址。
甚至可以利用JavaScript讓瀏覽器存取kernel空間的記憶體。
3. 所有使用Intel 這個技術的CPU的使用者,都有可能被駭。但對雲端運算公司傷害最大,因為駭客可以直接利用雲端運算公司提供的服務,寫個病毒控制他雲端運算的系統。
4. 軟體解決方法就是把 kernel 和 user 的記憶體空間完全分開。代價就是失去記憶體空間轉換加速的功能,導致效能降低。