Re: [情報] AMD Zen2的CPU漏洞Zenbleed

作者: s25g5d4 (function(){})()   2023-07-26 14:30:32
簡單回覆一下這個漏洞是怎麼回事,用手機不想打太多字
這次的漏洞有 Meltdown/Spectre 有諸多相似之處
但是比起這兩者,這次的漏洞更為直接
目前我沒看到有人把 Zenbleed 歸類為 side channel attack
所以就當它不是
關於 Meltdown 可以參考先前文章:
#1QJlGo9y (PC_Shopping)
以下用 M/S/Z 分別代表上述三種漏洞
相似的地方在於都是濫用預測執行 (speculative execution)
但 AMD 這次可以說是邏輯錯誤,跟 M/S 不同
因為 M/S 的執行邏輯是正確的,但在安全性檢查上不夠完善
雖然無法「直接」存取受害程式資料,但仍然可以從間接資料推測出原始資料
而 AMD 這次的漏洞則是妥妥的讓攻擊者直接讀取它不該讀到的東西
也就是說,即使不是惡意攻擊,仍然有機會在特定條件下造成執行錯誤
簡述這次的漏洞,就是濫用分支預測與預測執行,
在發生分支預測錯誤而回滾狀態時,讓兩個不同執行緒搶到同一個暫存器
x86 作為 CISC 代表,他的暫存器長度是多變的,
再加上暫存器重命名機制,即使你現在機器碼寫存取第一個暫存器,
實際上 CPU 可能會把它對映到另外一個暫存器上
所以當預測執行錯誤而必須回滾處理器狀態時,
本來已經被釋出的暫存器又被回滾回釋放前的狀態,
但回滾前另外一個執行緒已經拿走這個暫存器去用了
這時兩個執行緒都搶到同一個暫存器,
其中一個是惡意程式,就能直接讀取資料
所以我認為這是一個邏輯錯誤
因為即使不是惡意攻擊,這也是個妥妥的 race condition
目前 AMD 給的解決方法是微碼更新
依照白帽駭客的做法,在公開揭露前都會留時間給廠商修正
所以這次攻擊只要更新到最新的 AGESA 就修正了 **更新:可能尚未修正,見下方補充**
對於暫時無法更新微碼的機器,可以透過修改 CPU 執行模式緩解
此緩解辦法可能會造成一定程度的效能減損
目前我沒有看到有人提供效能影響報告就是了
詳細的資訊可以參考發現此漏洞的白帽駭客文章:
https://lock.cmpxchg8b.com/zenbleed.html
值得一題的是,這次的漏洞發現並非刻意針對某種系統/機制/邏輯的弱點攻擊,
而是在稱為 fuzzing 的一種產生任意指令/資料,以檢視軟體穩定性的測試中發現
詳細的發現過程是隨機產生一堆指令,再以同樣的順序再執行一次,比對兩者結果
不一樣的是對照組將嚴格遵循循序且不平行處理模式,務求最正確的結果
所以該作者能發現就是執行結果不一樣,
在現實應用中是有機會造成 phantom bug 的

Links booklink

Contact Us: admin [ a t ] ucptt.com