看板 PC_Shopping
作者 twlin (@@")
標題 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
※ 文章代碼(AID): #1QJRc-vL (PC_Shopping)
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1515043262.A.E55.html
doom3: 偷吃步被打回原形 -20%剛好而已1F 01/04 13:24
Flyroach: 古有漢堡神偷,今有清酒神偷2F 01/04 13:25
applejone: 就偷吃步3F 01/04 13:25
atrix: 例子好懂4F 01/04 13:26
kqalea: IT界的重大災難阿5F 01/04 13:27
HGJman: 想請問,過去10幾年是駭客沒發現這漏洞?還是?6F 01/04 13:27
wahaha99: 推 這樣一整個明瞭了7F 01/04 13:29
kqalea: 因為side channel attack 並不是有效率的偷資料方法8F 01/04 13:30
ericinttu: 小明表示: 我什麼時候才能成年啊9F 01/04 13:30
kqalea: 所以研究的人當然不多,要偷資料有更多有效方法10F 01/04 13:31
HGJman: 再請問外行的問題這樣的攻擊無法用防毒木馬程式擋?11F 01/04 13:31
hn9480412: 這個問題是CPU自有的問題,你用防毒軟體都沒用啦12F 01/04 13:32
saimeitetsu: 作弊優化跑分?13F 01/04 13:32
kqalea: 不行~整個漏洞的概念在於無法阻止資料外洩
並不是這個漏洞可以取得系統控制權限或改寫記憶體14F 01/04 13:33
HGJman: 請問是透過網路就能入侵?還是要實體連接電腦?16F 01/04 13:34
KotoriCute: 要從軟體上下手了話就得從OS層級把整個功能關閉17F 01/04 13:34
JoyRex: ATM乖乖吐鈔18F 01/04 13:34
KotoriCute: 但會嚴重影響性能。最極端情況會掉50%性能19F 01/04 13:35
kqalea: 目前MeltDown的Patch就是增加人手檢查身份證
KPTI整體性能影響應該很小但特定應用會很嚴重20F 01/04 13:35
protonchang: 這看來 透過網路就可以進去了吧 asm.js看來可以用來實作?22F 01/04 13:37
kqalea: 可以喔~python js java 基本上都可以喔
所以說是重大災難阿....唉唉煩欸24F 01/04 13:38
Tiderus: 有人知道這個影響層面的詳細說明嗎?26F 01/04 13:39
protonchang: 這洞真的大 最近幾個月看來會很刺激27F 01/04 13:39
Tiderus: 例如什麼情況下會被影響,什麼情況下不會?28F 01/04 13:39
KotoriCute: 所有雲端廠商都緊急維護了
有用到虛擬化功能的都會被影響到29F 01/04 13:39
Tiderus: 用軟體補強後,電腦在處理什麼樣的事情,效能會降什麼情況效能不會降?31F 01/04 13:40
KotoriCute: 所以目前影響最大應該就是各大雲端廠商33F 01/04 13:41
protonchang: Google實作的部份 虛擬機好像也有辦法透過這個漏洞存取到Host的記憶體內容
這對雲端廠商來說 還蠻嚴重的34F 01/04 13:41
kqalea: zero day這東西放出來就是基本上大廠已經不怕了37F 01/04 13:42
protonchang: 放出來之前 應該早就先通知了吧?38F 01/04 13:42
kqalea: 現在跪在地上的是小廠商XD39F 01/04 13:42
KotoriCute: 前幾大的雲端廠應該都有對應方案了40F 01/04 13:43
protonchang: 小廠商表示QQ41F 01/04 13:43
KotoriCute: Windows、Linux還有macOS有已經有製作相關的更新42F 01/04 13:44
Tiderus: 是只要一開機就是用到了虛擬化功能了嗎?43F 01/04 13:45
arrenwu: 推你的餐廳比喻 不然我還真看不懂XD44F 01/04 13:46
protonchang: Linux的Patch不是早就出去了?45F 01/04 13:49
kqalea: 4.15的patch要怎麼merge到3.x T__T 大大救我阿46F 01/04 13:53
twlin: 一般來說外部網站無法藉由網站上的Java script讀取你的密碼,現在他能藉由這種方式來正確推測出密碼,上個網銀行帳密洩光光,還不恐怖嗎?47F 01/04 13:53
Ekmund: 若是這樣 要修正不難 但是對效能影響有大到2016/6月通知了 現在還不動作?50F 01/04 13:53
kira925: Linux的補丁 才剛上還沒release
動了 不要當作驗證不用時間52F 01/04 13:54
StarHero: 一個耳光就給錢~ 給錢~ 給錢~54F 01/04 13:56
kira925: Meltdown誇張的程度是你很難得看到Linux Kernel大家都安安靜靜趕快寫patch 大頭都沒嘴你寫得很爛55F 01/04 13:57
protonchang: KPTI不是已經backported到4.14.11了嗎?57F 01/04 13:59
kira925: 樓上 這個世上用3.x 甚至2.x的Server還滿街跑...58F 01/04 14:00
protonchang: 完全忘記舊版的存在(X59F 01/04 14:02
HGJman: 再外行請問,手機的部份有沒有類似的問題存在?60F 01/04 14:02
kira925: Spectre的話 有
怕的是 ARM好像說A15 A57 A72 這三個好像有Meltdown61F 01/04 14:03
kqalea: ARMv8 系列的不用怕 電視盒愛用的A15只能放生了63F 01/04 14:05
twlin: 新的機器要改不難啊,只是tape out出去回來就兩個月了,還要加上設計和驗證時間64F 01/04 14:05
protonchang: 幫補一下ARM "可能"受影響的產品
A15 Allwinner A8X系列(電視盒愛用),Exynos 52/54xxA57 Snapdragon 808/810 ,Exynos 7 5433/7420
A72 這就很精采了Snapdragon 65X系列,MTK Helio X2x66F 01/04 14:08
howard10141: 所以我的625沒事嗎QQ70F 01/04 14:14
hegemon: A72一堆人在用...71F 01/04 14:15
kqalea: 別怕兒~ARM patch打下去效能幾乎沒影響滴
真的想偷你手機資料的也不用會side channel這麻煩法72F 01/04 14:17
protonchang: Side Channel拉資料很慢啊 還不如找OS的漏洞74F 01/04 14:19
kira925: 也不慢了吧...75F 01/04 14:21
Ekmund: 問一下 降頻這個不需要重走硬體的設計驗證流程吧?76F 01/04 14:22
kira925: 我看了下論文 Meltdown可以拉出500kB阿....77F 01/04 14:23
kqalea: ARM基本上不怕Meltdown的
只有A75偷吃步過頭,但是patch基本上也都完善了78F 01/04 14:27

--