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