Re: [情報] Linux之父對CPU漏洞門爆粗口:修復補丁一

看板 PC_Shopping
作者 kira925 (1 2 3 4 疾風炭)
時間 2018-01-24 16:59:52
留言 139則留言 (36推 1噓 102→)

http://xiaoliniess.space/index.php/2018/01/07/spectre-meltdown-and -cpu-speculative-execution-issues/ 這邊有解釋Google的Retpoline機制是怎麼運作的 簡單的說 就是利用ret取代了jmp 透過對編譯器的修改 去愚弄CPU的預測載入機制 這篇也提到了 由於AMD的運作機制不一樣 一樣的code Intel展開以後的asm會比AMD的複雜 也因此AMD理論上會受到比較低的懲罰 那回到這次的問題 為什麼Intel會這麼急著推出更複雜的機制 而不是單純靠引入Retpoline機制呢? https://lwn.net/Articles/745111/ All relevant CPUs have the ability to speculate on RET using the return stack buffer (RSB)—that's what makes retpolines work in the first place. The problem with Skylake (and presumably also Kaby Lake and later) is that if the RSB is empty, it can speculate RETs using the normal branch predictor mechanisms, which are vulnerable to Spectre. Forcing an empty RSB is not trivial—it can happen on IRQs (including SMM interrupts), or if the call stack gets more than 16 entries deep (old entries get popped off on CALL, and then on the 17th RET, you've forgotten where you originally came from). The question is how to weigh the risk of such nontrivial attacks versus the cost of enabling IBRS. LWN這邊的討論給了個可能的答案: 由於Skylake (甚至是以後的CPU? 看LKML的討論沒說不過可以合理懷疑7/8代都有?) 即使套用了Retpoline機制 也會因為更"先進"的分支預測技術 跳過了Retpoline的保護 也就是說 6代(以後?)的Intel CPU單靠Retpoline依然受到威脅 現在問題就是 為了完善保護開啟IBRS機制 vs 極嚴重的性能懲罰 到底你要選哪一個 ---- 居然是更新世代的CPU漏洞更大.... -- https://support.google.com/faqs/answer/7625886 Google自己發的Retpoline解說
※ 批踢踢實業坊(ptt.cc), 來自: 140.113.28.197
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1516784398.A.724.html

tart : 不是更新的漏洞更大 01/24 17:03

tart : 這年頭要當I黑很朝,但是也要有所本 01/24 17:03

tart : 這篇文章是說 1) google的補丁法叫Retpoline 01/24 17:04

tart : 2) 但是intel沒有採用google的方法,而用了個更慢 01/24 17:05

tart : 的方法 01/24 17:05

kira925 : 修正內文 我是要表示更新世代的CPU漏洞更大 01/24 17:06

tart : 3) 為什麼不用Retpoline??猜測是因為skylake含以後 01/24 17:06

tart : 所用的分支預測太強大了,用Retpoline補不住 01/24 17:06

kira925 : 感謝指正 01/24 17:08

twosheep0603: 所用的分支預測太強大(X)作弊換效能的程度更大了(O) 01/24 17:08

labbat : 為了提高IPC做得越來越激進 01/24 17:13

waterblue85 : 所以intel是靠偷吃步提升ipc嗎? 01/24 17:26

kira925 : 分支預測預載是大家都要作的 只是為了性能無視權限 01/24 17:27

kira925 : 得太嚴重 IPC是上升了但是漏洞又比以前更大 01/24 17:27

cavitylapper: 一定是的啊 不然要買AMD? 01/24 17:29

pxhome : 路過打卡,等intel倒了再叫我... 01/24 17:34

ChangWufei : 抄捷徑超太大被抓包GG 01/24 17:37

kira925 : F1比喻的話大概像是 切西瓜以後賽事裁罰得來速 01/24 17:38

kira925 : 結果發現這傢伙切西瓜得太過火 還要罰進pit重新出來 01/24 17:38

a2935373 : 往好處想Intel如果舊型的分支預測洞補的起來 牙膏縮 01/24 17:40

a2935373 : 一下還有救 01/24 17:40

a2935373 : 如果是牙膏的分支預測全死的話.... 01/24 17:40

b325019 : 所以IPC的進步是切西瓜來的嗎 01/24 17:41

kira925 : 大家都是切西瓜 只是i家程度更嚴重 01/24 17:41

a2935373 : 我覺得問題是會不會性能黃金交叉 01/24 17:42

kira925 : 至少五代以前 目前看來還能靠Retpoline 01/24 17:42

a2935373 : 分支預測本身就算西瓜吧 01/24 17:42

kira925 : 不過一樣的Retpoline AMD大概是歸還位置這種感覺 01/24 17:42

kira925 : Intel就是得來速甚至是進PIT了... 01/24 17:43

a2935373 : 只是牙膏的西瓜刀切太歪(?) 01/24 17:43

a2935373 : 不過之前紙大師的說法 Ryzen不需要用到Retpoline 01/24 17:45

kira925 : 不是啦 F1的切西瓜不是那意思XD 01/24 17:45

kira925 : F1那切西瓜的意思是抄捷徑XD 01/24 17:46

kira925 : RyZen也是要Retpoline吧 後來看討論還是要上 01/24 17:47

kira925 : 但是沒有Meltdown 然後Retpoline的深度也比較淺 01/24 17:47

b325019 : 我知道F1的切西瓜w 01/24 17:47

a2935373 : 啊 重看了一下 他後來改口了 01/24 17:48

a2935373 : https://goo.gl/2568MH 01/24 17:48

a2935373 : 我知道 我歪的意思是牙膏直接撞破護欄的感覺(? 01/24 17:48

kira925 : 牙膏廠的情況大概是直接除草開到底 01/24 17:49

kira925 : 農企大概只是開超過路沿石這樣ww 01/24 17:50

kira925 : 不過AMD也有作IRBS與IBPB 這個還沒看到討論... 01/24 17:51

kira925 : IRBS(X)IBRS(O) 01/24 17:51

a2935373 : AMD只有要做IBPB吧? 01/24 17:51

kira925 : https://lkml.org/lkml/2018/1/4/615 Further Readi 01/24 17:52

kira925 : Amazon那個工程師是說Intel/AMD都有作 01/24 17:54

kira925 : 不過我只看到討論都聚焦在Skylake以及Retpoline效果 01/24 17:55

a2935373 : 你是說哪邊 我看了一下找不到 01/24 17:58

kira925 : https://lkml.org/lkml/2018/1/22/598 01/24 17:59

kira925 : 就是護航Intel以後被Linus嘴爆的可憐人 01/24 18:00

a2935373 : AMD實作會拿跟Intel一模一樣的辦法? 01/24 18:02

a2935373 : 他那話看起來是那個意思沒錯啦... 01/24 18:02

kira925 : 應該說 AMD似乎也想要實作類似的東西 但運作不知道 01/24 18:03

kira925 : 一不一樣(我沒全看過 沒看到有沒有AMD的人發言) 01/24 18:03

a2935373 : 等東西出來吧 搞不好Linus也是炮 01/24 18:04

a2935373 : AMD的說法我也只看到紙大師 01/24 18:04

kira925 : 如果弄出來也是這種東西肯定被Linus噴爆ww 01/24 18:05

kira925 : 看了下Redhat的更新公告 01/24 18:08

kira925 : AMD有作IBRS的是10h 12h 16h 01/24 18:09

kira925 : 也就是 K10/喵喵系列/老的APU系列 01/24 18:09

kira925 : RyZen是17h 沒列在上面但有沒有需要存疑 01/24 18:10

kira925 : 更正 K10還有喵喵系列 01/24 18:11

kira925 : 老APU是K10兜出來的 不用特別寫 01/24 18:13

Joey452 : 原來牙膏擠到最後有毒啊 01/24 18:18

ken720331 : 排毒保養正在進行 01/24 18:25

a2935373 : APU也有喵喵系列的啊 01/24 18:32

kira925 : 那就不知道了...RedHat的Patch Note是這樣寫 01/24 18:36

a2935373 : 可能那個系列被直接算喵喵 01/24 18:56

kuninaka : 不然你要買AMD? 01/24 19:14

TaiwanFight : Linus那麼強自己出CPU阿 出張嘴誰不會啦 01/24 19:23

TaiwanFight : 這種漏洞不補對普通人根本沒影響 01/24 19:24

twosheep0603: 帳號部歡迎你 :) 01/24 19:35

a0101201012 : intel就把偷吃步的效能吐出來ipc跟amd幾乎一樣了 01/24 19:38

TaiwanFight : 說個笑話 小黑不開好車跑的跟阿隆索幾乎一樣 01/24 19:39

a0101201012 : ryzen的ipc和4代差不多 現在intel也退回6代前了 01/24 19:40

kira925 : 拿點有料的東西出來嘛 :) 01/24 19:41

Litfal : 最新世代的偷更多很正常啊XD 01/24 20:00

Shauter : 分支效能太強大這種鬼話都講得出來 wwwwwww 01/24 20:00

Shauter : 不照標準偷跑作弊叫強 一樓真的重新定義 01/24 20:01

a2935373 : 那是反串吧 01/24 20:06

Litfal : 這TF是不是吸吾二阿?風格語氣超像的XD 01/24 20:08

ken841520 : 如果不是反串的話,應該就是了吧XD 01/24 20:53

a2935373 : 那ID應該誰的分身吧 01/24 21:02

kira925 : 只能向版眾對不起 在文章下面有這種推文了 01/24 21:04

wert213 : I:切西瓜超車,被罰stop-and-go (回到維修站原地發 01/24 21:29

wert213 : 呆十秒)A:賽後調查←用F1舉例應該是醬子吧XD 01/24 21:29

kira925 : 我以為A是超車馬上被判把位子還回去XD 01/24 21:47

ctes940008 : 法拉利車體黑科技那種作弊? 01/24 22:40

wert213 : A讓出位子後進到DRS區再開DRS加嗑死反超!?? (已歪) 01/24 23:01

oil01 : i最新製程輸A的14奈米? 01/24 23:09

kira925 : 不是有人被罰Stop-And-Go了嗎XD 不過出來也只是平手 01/24 23:17

sdbb : 所以RETs到底什麼時候或誰才有權限存取? 01/24 23:23

esproject : 比喻的可不可以直接發一篇阿 這樣被切成七八段的 01/24 23:28

kira925 : 又要洗版嗎XD 01/24 23:29

kira925 : RETs看起來有點像是 反正與其讓你亂跑 不如我直接 01/24 23:30

kira925 : 跟你說你應該怎麼跑 所以你就不會亂塞東西進Cache 01/24 23:30

kira925 : 修正 retpoline 01/24 23:38

sdbb : 剛剛把抱歉剛剛把ret和rsb搞混 01/25 02:04

sdbb : 不知道是高級酸還是真稱讚 01/25 02:05

sdbb : intel分支預測很aggressive 01/25 02:08

ericinttu : 我覺得我看不懂 先推一下提昇文字理解力 01/25 02:44

kuma660224 : 分支預測很aggressive 翻譯: 偷吃步更誇張 01/25 12:13

geminitw : inyel branch prediction 可以去問台大賴飛羆 他以 01/25 17:12

geminitw : 前说台大资工一位葉學長在intel 出力甚多 哪來的偷 01/25 17:12

geminitw : 做弊 不懂別乱說 01/25 17:12

geminitw : Tse Yu Yeh 也算是台灣之光 01/25 17:20

a2935373 : 用簡體字在講112的事情超沒說服力的你知道嗎... 01/25 19:52

soem : 我覺得meltdown可以稱作偷吃步,但Spectre的部份該 01/25 19:54

soem : 算是歷史共業 01/25 19:54

kira925 : 就實作來說 還是有差距的 01/25 19:57

kira925 : 本來Speculative Prediction就是在偷吃步 01/25 19:57

kira925 : 差距只是 有些東西你可以拿 有些不能拿 今天是大家 01/25 19:58

kira925 : 都拿了不該拿的東西 情節輕重有差而已 01/25 19:58

soem : 想想也是,如果都沒有偷吃步的成份,就不會拿到不該 01/25 19:59

soem : 拿的東西了 01/25 19:59

soem : 這個只能說是現代電腦系統太複雜了,做了最佳化反而 01/25 19:59

kira925 : 至於說什麼 某某名人出力多少 也可以反過來看 01/25 19:59

soem : 沒有去注意到設計的安全性保護的問題 01/25 19:59

kira925 : 當年如果更小心點 畢生心血就不會沾上汙點 01/25 19:59

kira925 : 但這不代表他們設計的分支預測機制是壞的 01/25 20:00

kira925 : 而是不夠完善 實作沒有考慮安全問題 01/25 20:00

soem : 最近在跟做compiler的朋友聊天,他說底層轉asm有很 01/25 20:02

soem : 多搞不清楚為什麼這麼轉換的部份,實際去查就是一篇 01/25 20:02

soem : 篇不同的最佳化論文疊起來的結果。但是改成人類直觀 01/25 20:03

soem : 的轉換方式效能也不會差多少的感覺。問題來了,如果 01/25 20:03

soem : 背後的依據不是最佳化的論文,而是安全性的論文,是 01/25 20:04

soem : 不是一改就馬上造成漏洞了呢? 01/25 20:04

soem : 就像Google發表的Retpoline,十年後會不會有工程師 01/25 20:04

soem : 覺得這麼做太沒效率了,然後又把Spectre解封XD 01/25 20:05

kira925 : 其實現在如果能弄出個兼顧效率與權限的新分支預測 01/25 20:06

kira925 : 就又是一大票論文可以發表了 01/25 20:06

kira925 : retpoline很有趣的是 直接教育分支預測器怎麼走 01/25 20:07

kira925 : 這樣解決Spectre真的很漂亮 只是沒人想到Skylake 01/25 20:08

kira925 : 最佳化作得太好... 01/25 20:08

a2935373 : 我說稱之為更激進 01/25 21:58

kira925 : 我覺得如果他有檢查權限的話 確實是更先進阿…如果 01/25 22:11

a2935373 : 檢查權限在meltdown就知道問題了吧... 01/25 22:20

a2935373 : 然後分支預測跑更遠姑且不論安全性 我認為稱之激進 01/25 22:21

a2935373 : 應該沒什麼問題 01/25 22:21

您可能感興趣