作者twlin (@@")
看板PC_Shopping
標題Re: [情報] Intel嚴重漏洞 OS更新將會降低效能
時間Thu Jan 4 13:20:59 2018
※ 引述《kira925 (1 2 3 4 疾風炭)》之銘言:
: https://googleprojectzero.blogspot.tw/2018/01/reading-privileged-
: memory-with-side.html?m=1
: https://tinyurl.com/y82aqvbf (縮網址)
: Google:我忍你們很久了
: 以下內容只是粗略看過 有錯誤請指正
: 目前Google找到了三種不同的問題
: 第一種: bounds check bypass 三家都有中獎,針對特殊的BPF JIT Compiler
: (Google的概念測試對象: Intel Xeon/AMD FX/AMD A8/ARM A57)
: 第二種: branch target injection Intel
: (概念測試對象: Intel Xeon)
: 第三種: rogue data cache load Intel
: (概念測試對象: Intel Xeon)
: 不過情節差異大概是 第一種並不是系統預設會去開啟的東西
: 第二與第三是日常的系統指令
: 順帶一提 第一種可能是先天SPEC就有漏洞
: ARM的回應表示Work as Intended不過也承認確實有漏洞存在
: 他們已經準備好對應的更新了(也要做FUCKWIT?)
: ----
: 讓我們繼續看下去
針對第三種,從paper的例子裡大致講一下
1 ; rcx = kernel address
2 ; rbx = probe array
3 retry:
4 mov al, byte [rcx] <--讀取kernel address
5 shl rax, 0xc
6 jz retry
7 mov rbx, qword [rbx + rax] <--user address
第4行,intel在scheduler要issue指令前,沒有確認load是否有權限讀取
等到指令執行完,要retire時才核查權限
但是等到這個時候,後面的指令也都執行完了
第7行的cache line [rbx + rax]從記憶體搬到了cache內
因為[rbx + rax]是位於user可以存取的範圍內
所以之後可以藉由讀取不同cache line,看他是cache hit/miss
來猜測kernel address裡的內容是什麼
至於其他家處理器,在scheduler要issue指令前就確認了權限
因此第4行指令就根本不會執行了,更不用說後面的567行了
舉個白話文的例子來說
未成年的小明到i餐廳點"高級"清酒喝,服務生在點酒時並未確認小明身分證
把清酒加熱後,上給小明時才發現他未成年
雖然小明沒有喝到酒,但是酒早已被加熱了
小明藉由酒溫知道了哪一瓶才是"高級"清酒,並把他偷出來喝掉
至於其他a餐廳,在點酒時就會先確認身分證,服務生自然不會加熱清酒
因此小明永遠不知道a餐廳真正的"高級"清酒是哪一瓶
例子講完了,至於要怎麼修?
那就在scheduler要issue訪存指令前先確認權限阿
根據架構不同,如果權限存放的地方離scheduler有點遠
讀起來多花一點時間,那就把頻率降低一點來meet timing
或者每個存取都多花一個cycle來確認權限囉
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 136.62.164.18
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PC_Shopping/M.1515043262.A.E55.html
1F:推 doom3 : 偷吃步被打回原形 -20%剛好而已 01/04 13:24
2F:→ Flyroach : 古有漢堡神偷,今有清酒神偷 01/04 13:25
3F:推 applejone : 就偷吃步 01/04 13:25
4F:推 atrix : 例子好懂 01/04 13:26
5F:推 kqalea : IT界的重大災難阿 01/04 13:27
6F:推 HGJman : 想請問,過去10幾年是駭客沒發現這漏洞?還是? 01/04 13:27
7F:推 wahaha99 : 推 這樣一整個明瞭了 01/04 13:29
8F:推 kqalea : 因為side channel attack 並不是有效率的偷資料方法 01/04 13:30
9F:推 ericinttu : 小明表示: 我什麼時候才能成年啊 01/04 13:30
10F:→ kqalea : 所以研究的人當然不多,要偷資料有更多有效方法 01/04 13:31
11F:推 HGJman : 再請問外行的問題這樣的攻擊無法用防毒木馬程式擋? 01/04 13:31
12F:→ hn9480412 : 這個問題是CPU自有的問題,你用防毒軟體都沒用啦 01/04 13:32
13F:推 saimeitetsu : 作弊優化跑分? 01/04 13:32
14F:→ kqalea : 不行~整個漏洞的概念在於無法阻止資料外洩 01/04 13:33
15F:→ kqalea : 並不是這個漏洞可以取得系統控制權限或改寫記憶體 01/04 13:33
16F:推 HGJman : 請問是透過網路就能入侵?還是要實體連接電腦? 01/04 13:34
17F:推 KotoriCute : 要從軟體上下手了話就得從OS層級把整個功能關閉 01/04 13:34
18F:→ JoyRex : ATM乖乖吐鈔 01/04 13:34
19F:→ KotoriCute : 但會嚴重影響性能。最極端情況會掉50%性能 01/04 13:35
20F:→ kqalea : 目前MeltDown的Patch就是增加人手檢查身份證 01/04 13:35
21F:→ kqalea : KPTI整體性能影響應該很小但特定應用會很嚴重 01/04 13:36
22F:→ protonchang : 這看來 透過網路就可以進去了吧 asm.js看來可以用 01/04 13:37
23F:→ protonchang : 來實作? 01/04 13:37
24F:→ kqalea : 可以喔~python js java 基本上都可以喔 01/04 13:38
25F:→ kqalea : 所以說是重大災難阿....唉唉煩欸 01/04 13:38
26F:推 Tiderus : 有人知道這個影響層面的詳細說明嗎? 01/04 13:39
27F:→ protonchang : 這洞真的大 最近幾個月看來會很刺激 01/04 13:39
28F:→ Tiderus : 例如什麼情況下會被影響,什麼情況下不會? 01/04 13:39
29F:推 KotoriCute : 所有雲端廠商都緊急維護了 01/04 13:39
30F:→ KotoriCute : 有用到虛擬化功能的都會被影響到 01/04 13:40
31F:→ Tiderus : 用軟體補強後,電腦在處理什麼樣的事情,效能會降 01/04 13:40
32F:→ Tiderus : 什麼情況效能不會降? 01/04 13:41
33F:→ KotoriCute : 所以目前影響最大應該就是各大雲端廠商 01/04 13:41
34F:推 protonchang : Google實作的部份 虛擬機好像也有辦法透過這個漏洞 01/04 13:41
35F:→ protonchang : 存取到Host的記憶體內容 01/04 13:41
36F:→ protonchang : 這對雲端廠商來說 還蠻嚴重的 01/04 13:42
37F:→ kqalea : zero day這東西放出來就是基本上大廠已經不怕了 01/04 13:42
38F:→ protonchang : 放出來之前 應該早就先通知了吧? 01/04 13:42
39F:→ kqalea : 現在跪在地上的是小廠商XD 01/04 13:42
40F:→ KotoriCute : 前幾大的雲端廠應該都有對應方案了 01/04 13:43
41F:→ protonchang : 小廠商表示QQ 01/04 13:43
42F:→ KotoriCute : Windows、Linux還有macOS有已經有製作相關的更新 01/04 13:44
43F:推 Tiderus : 是只要一開機就是用到了虛擬化功能了嗎? 01/04 13:45
44F:推 arrenwu : 推你的餐廳比喻 不然我還真看不懂XD 01/04 13:46
45F:推 protonchang : Linux的Patch不是早就出去了? 01/04 13:49
46F:推 kqalea : 4.15的patch要怎麼merge到3.x T__T 大大救我阿 01/04 13:53
47F:→ twlin : 一般來說外部網站無法藉由網站上的Java script讀取 01/04 13:53
48F:→ twlin : 你的密碼,現在他能藉由這種方式來正確推測出密碼, 01/04 13:53
49F:→ twlin : 上個網銀行帳密洩光光,還不恐怖嗎? 01/04 13:53
50F:→ Ekmund : 若是這樣 要修正不難 但是對效能影響有大到2016/6 01/04 13:53
51F:→ Ekmund : 月通知了 現在還不動作? 01/04 13:53
52F:推 kira925 : Linux的補丁 才剛上還沒release 01/04 13:54
53F:→ kira925 : 動了 不要當作驗證不用時間 01/04 13:55
54F:→ StarHero : 一個耳光就給錢~ 給錢~ 給錢~ 01/04 13:56
55F:推 kira925 : Meltdown誇張的程度是你很難得看到Linux Kernel大家 01/04 13:57
56F:→ kira925 : 都安安靜靜趕快寫patch 大頭都沒嘴你寫得很爛 01/04 13:57
57F:→ protonchang : KPTI不是已經backported到4.14.11了嗎? 01/04 13:59
58F:推 kira925 : 樓上 這個世上用3.x 甚至2.x的Server還滿街跑... 01/04 14:00
59F:→ protonchang : 完全忘記舊版的存在(X 01/04 14:02
60F:推 HGJman : 再外行請問,手機的部份有沒有類似的問題存在? 01/04 14:02
61F:→ kira925 : Spectre的話 有 01/04 14:03
62F:→ kira925 : 怕的是 ARM好像說A15 A57 A72 這三個好像有Meltdown 01/04 14:04
63F:推 kqalea : ARMv8 系列的不用怕 電視盒愛用的A15只能放生了 01/04 14:05
64F:→ twlin : 新的機器要改不難啊,只是tape out出去回來就兩個月 01/04 14:05
65F:→ twlin : 了,還要加上設計和驗證時間 01/04 14:06
66F:→ protonchang : 幫補一下ARM "可能"受影響的產品 01/04 14:08
67F:→ protonchang : A15 Allwinner A8X系列(電視盒愛用),Exynos 52/54xx 01/04 14:10
68F:→ protonchang : A57 Snapdragon 808/810 ,Exynos 7 5433/7420 01/04 14:11
69F:→ protonchang : A72 這就很精采了Snapdragon 65X系列,MTK Helio X2x 01/04 14:13
70F:推 howard10141 : 所以我的625沒事嗎QQ 01/04 14:14
71F:推 hegemon : A72一堆人在用... 01/04 14:15
72F:→ kqalea : 別怕兒~ARM patch打下去效能幾乎沒影響滴 01/04 14:17
73F:→ kqalea : 真的想偷你手機資料的也不用會side channel這麻煩法 01/04 14:18
74F:→ protonchang : Side Channel拉資料很慢啊 還不如找OS的漏洞 01/04 14:19
75F:推 kira925 : 也不慢了吧... 01/04 14:21
76F:→ Ekmund : 問一下 降頻這個不需要重走硬體的設計驗證流程吧? 01/04 14:22
77F:→ kira925 : 我看了下論文 Meltdown可以拉出500kB阿.... 01/04 14:23
78F:推 kqalea : ARM基本上不怕Meltdown的 01/04 14:27
79F:→ kqalea : 只有A75偷吃步過頭,但是patch基本上也都完善了 01/04 14:28
80F:推 timwu : 用A53的RPI3這次逃過一劫, 然後asm.js跟assmebly沒 01/05 05:40
81F:→ timwu : 半點關係, 重點不是程式語言, 要用這個漏動入侵機器 01/05 05:42
82F:→ timwu : 的前提是, 入侵者要先得到放任意執行檔的權限, 所以 01/05 05:44
83F:→ timwu : 所有開主機的服務(EC2,GCE)都有危險,主流PaaS(GAE, 01/05 05:50
84F:→ timwu : heroku)大概也好不到哪去,因為都允許放客製執行環境 01/05 05:52
85F:→ timwu : SaaS要看狀況,如果是大廠的(ex.gmail)應該不會跟外 01/05 05:54
86F:→ timwu : GCE/GAE客戶share host 01/05 05:56
87F:→ timwu : EC2客戶如果是租用 Dedicated Host 應該也躲過一劫 01/05 05:58
88F:→ madstorm : 恩 01/06 01:50
89F:推 stja : 01/14 19:19