看板 PC_Shopping 關於我們 聯絡資訊
簡單回覆一下這個漏洞是怎麼回事,用手機不想打太多字 這次的漏洞有 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 的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.39.149 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1690353037.A.4DD.html
oppoR20: 推 有料 42.77.215.102 07/26 14:38
mrme945: 懂了(其實沒有 111.71.212.31 07/26 14:39
a58524andy: Push 36.233.21.177 07/26 14:40
yymeow: 推 專業 60.250.130.216 07/26 14:44
asdg62558: 專業 推 125.229.47.209 07/26 14:50
mayolane: https://i.imgur.com/vtSOIoc.png114.136.134.162 07/26 14:50
liumang: 跟我想的一樣(完全不懂 27.242.37.73 07/26 14:50
spfy: 這種比酸一句就跑的強多了 223.136.218.89 07/26 14:51
E7lijah: https://i.imgur.com/fgsSL97.jpg 39.15.25.32 07/26 14:53
Fezico: 這bug看reddit上解釋還要暫存器處於某種特 118.168.14.172 07/26 15:04
Fezico: 定狀況下才成立的樣子? 118.168.14.172 07/26 15:04
要有特定指令跟順序觸發才會踩到,受害程式也必須有用到特定指令 但這不是甚麼罕見的指令,反倒是很常見的
avans: 哇 專業講解,推 111.71.20.228 07/26 15:07
SILee: 聽起來怪怪的。所以他是還沒commit就把reg 99.92.209.224 07/26 15:07
SILee: release出來? 99.92.209.224 07/26 15:07
對,但 rollback 沒有把資料還原回去,導致惡意程式可以讀到髒資料
jay0215: 薛丁格的兩隻貓搶一個盒子223.136.186.146 07/26 15:13
righer: 所以跑windows update就可以修正cpu的漏洞 111.82.89.112 07/26 15:21
righer: 嗎? 111.82.89.112 07/26 15:21
yymeow: 要等新的BIOS 60.250.130.216 07/26 15:22
comipa: 推專業文 114.36.222.209 07/26 15:39
lazioliz: 跟我想得一樣 112.78.90.23 07/26 15:50
smallreader: 這樣有可能造成BSOD嗎 114.27.43.49 07/26 16:08
AmibaGelos: zen有實作checkpoint只留預測時的狀 114.43.184.10 07/26 16:11
AmibaGelos: 態 其餘物理reg可以複用 我猜corner 114.43.184.10 07/26 16:11
AmibaGelos: case回溯的reg map錯了 114.43.184.10 07/26 16:11
我不是很確定理解正不正確 map 應該沒錯,但是 rollback 只還原 zero bit 而沒有還原資料是錯的 導致惡意程式可以讀到髒資料
sdbb: 感謝科普 61.230.97.130 07/26 16:22
Chikei: 這bug是ymm暫存器用vzeroupper指令的時候211.72.92.133 07/26 16:33
Chikei: 低位(對,不是高位)位元rollback沒處理好211.72.92.133 07/26 16:35
kuninaka: phantom bug61.227.115.226 07/26 17:16
blueballer: 推解釋185.213.82.245 07/26 17:31
kenphin0729: 推解釋1.200.24.124 07/26 17:54
更正一下文內消息 剛剛看到目前只有 EPYC 才有微碼更新 [1] 其他 Zen 2 家族處理器還沒有 patch 好的微碼 準確的來說目前只有修復下列處理器家族: 2nd Gen AMD EPYC™ Processors "Rome" (fixed) 尚未修復: AMD Ryzen 3000 Series Desktop Processors "Matisse" (Target Dec 2023) AMD Ryzen 4000 Series Desktop Processors with Radeon Graphics "Renoir" AM4 (Target Dec 2023) AMD Ryzen Threadripper 3000 Series Processors "Castle Peak" HEDT (Target Oct 2023) AMD Ryzen Threadripper PRO 3000WX Series Processors "Castle Peak" WS SP3 (Target Nov 2023/Dec 2023) AMD Ryzen 5000 Series Mobile Processors with Radeon Graphics "Lucienne" (Target Dec 2023) AMD Ryzen 4000 Series Mobile Processors with Radeon Graphics "Renoir" (Target Nov 2023) AMD Ryzen 7020 Series Processors "Mendocino" FT6 (Target Dec 2023) 本來沒有要那麼早公開揭露漏洞的 但可惜的是 AMD 錯誤的提前釋出修正微碼,而且只有修復部分產品 [2] 所以只好提早公開揭露了 目前 linux kernel 針對此問題將預設開啟前述緩解方案 如果偵測到尚未包含修正的微碼,會設定對應的 chiken bit 避免漏洞開採 [3] 沒意外的話各大 linux distro 應該已經或很快會上這個 patch 1: https://seclists.org/oss-sec/2023/q3/67 2: https://github.com/google/security-research/tree/master/pocs/cpus/zenbleed 3: https://seclists.org/oss-sec/2023/q3/79
freezeyp: 該升級zen3了嗎?101.136.44.88 07/26 18:08
dxzy: 不想打太多字 (手停不下來)36.228.225.23 07/26 18:11
harry886901: 懂了 分支預測對吧 抱歉我大學教授計101.10.3.57 07/26 18:12
harry886901: 算機網路都在亂教101.10.3.57 07/26 18:12
a1234567289: 計算機網絡@@? 49.216.29.40 07/26 18:27
atbb: 樓上不是啦,你連內文都沒仔細的看耶.. 114.137.229.40 07/26 18:28
chicagoparis: 這至少是計算機組織或架構的事情… 49.158.172.18 07/26 18:30
bunjie: 不明覺厲啊 182.155.80.135 07/26 18:30
roc074: 計算機組織吧XD 42.72.104.242 07/26 18:39
wardraw: 推專業 124.11.129.176 07/26 18:46
s25g5d4: 大學的計算機組織是不喜歡的教授上的,我 59.127.39.149 07/26 18:47
Gsanz: https://i.imgur.com/EdywNCP.jpg 59.126.179.241 07/26 18:47
s25g5d4: 混個及格而已 科科 59.127.39.149 07/26 18:47
s25g5d4: 印象中 branch prediction/speculative e 59.127.39.149 07/26 18:48
s25g5d4: xecution/OOE 大學都不會教啦,這些上網 59.127.39.149 07/26 18:48
s25g5d4: 啃資料比較實際。至少當年大學我們教 ARM 59.127.39.149 07/26 18:48
s25g5d4: 都沒有這些東西 59.127.39.149 07/26 18:48
s25g5d4: 然後啟蒙我了解這些的是 PCADV 的水球大 59.127.39.149 07/26 18:49
s25g5d4: ,水球大大你有看到嗎我在這 59.127.39.149 07/26 18:49
asd4302asd: 推專業 223.140.1.111 07/26 19:01
leung3740250: 大學的ppt不是還在教祖傳5-stage p 45.64.242.172 07/26 19:05
leung3740250: ipeline嗎XD? 45.64.242.172 07/26 19:05
TFnight: 推 114.42.110.136 07/26 19:10
ekgs: 大學計組會教喇 只是教個皮毛爾已111.251.111.197 07/26 20:12
ekgs: 現在的處理器太複雜了 一門計組課上不完的111.251.111.197 07/26 20:15
damnedfish: 推 203.217.111.28 07/26 20:59
BlackCoal: 推,雖然我完全看不懂 36.239.169.134 07/26 21:13
lc85301: 竟然是用 fuzz test 抓到的 36.231.88.222 07/26 21:33
lc85301: 應該說現在處理器太複雜,學都是學概念 36.231.88.222 07/26 21:35
lc85301: 但其實現在也找得到 riscv 的實作,要從 36.231.88.222 07/26 21:37
lc85301: 實作學也不是不行 36.231.88.222 07/26 21:37
wahaha99: 推,這算妥妥的Bug了 36.226.176.19 07/26 21:43
lc85301: 是說這在攻擊上有實用性嗎?你只能拿到一 36.231.88.222 07/26 21:46
lc85301: 個 register 的值 36.231.88.222 07/26 21:46
可以,目標是攻擊 strlen 跟 strcmp, 這兩個函式的泛用性可想而知 而且這不是只拿一個 register 值 這是一個針對 SIMD 指令的攻擊,它的單次讀取有效長度達 128 bit 加上每個攻擊循環只有數行指令碼,不需太多 cycle 就能讀 然後,幹你 AMD https://i.imgur.com/NiygTzB.png
※ 編輯: s25g5d4 (218.164.132.132 臺灣), 07/26/2023 22:12:49
croweva: Zen3沒這錯誤 是不是AMD早就知道修掉了 1.200.91.144 07/26 23:20
s25g5d4: 應該不是,可能是執行策略改了 59.127.39.149 07/26 23:34
lc85301: 原來如此 36.231.88.222 07/27 00:27
xiaotee: 推一下 101.8.21.22 07/27 00:48
HenryLin123: 怎麼聽起來是個DV就要找到的bug? 24.7.100.65 07/27 01:47
HenryLin123: physical register 會亂給別人 24.7.100.65 07/27 01:49
hn9480412: 水球現在都在Cool3C發文比較多www 125.229.98.170 07/27 02:17
s25g5d4: 哈,我指的是還在紙本電腦王雜誌連載的 59.127.39.149 07/27 02:19
s25g5d4: 當然現在線上版的也會看,不過論啟蒙還是 59.127.39.149 07/27 02:19
s25g5d4: 靠當年電腦王雜誌 59.127.39.149 07/27 02:19
Bf109G6: QQ 115.66.7.39 07/27 04:45
lc85301: 現在 CPU 太複雜了,出現沒驗到的 bug 60.250.111.124 07/27 08:52
lc85301: 還算正常吧 60.250.111.124 07/27 08:52
niverse: 計組都祭祖惹 150.117.240.33 07/27 09:35
v86861062: 推推180.217.130.131 07/27 12:49
moocow: !!!!!!! 122.116.46.54 07/27 14:36
SUCKERKING: 水球20年前常常在連線硬體版打筆戰。180.177.104.103 07/27 21:35
biofish: 推推 1.200.58.79 07/28 01:38
skycat2216: @SUCKERKING 還有當時的資料嗎? 223.136.61.159 08/03 19:42
skycat2216: 死CS新鮮肝想看看 223.136.61.159 08/03 19:42