Re: [情報] Intel嚴重漏洞 OS更新將會降低效能
※ 引述《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
推
01/04 13:24,
6年前
, 1F
01/04 13:24, 1F
→
01/04 13:25,
6年前
, 2F
01/04 13:25, 2F
推
01/04 13:25,
6年前
, 3F
01/04 13:25, 3F
推
01/04 13:26,
6年前
, 4F
01/04 13:26, 4F
推
01/04 13:27,
6年前
, 5F
01/04 13:27, 5F
推
01/04 13:27,
6年前
, 6F
01/04 13:27, 6F
推
01/04 13:29,
6年前
, 7F
01/04 13:29, 7F
推
01/04 13:30,
6年前
, 8F
01/04 13:30, 8F
推
01/04 13:30,
6年前
, 9F
01/04 13:30, 9F
→
01/04 13:31,
6年前
, 10F
01/04 13:31, 10F
推
01/04 13:31,
6年前
, 11F
01/04 13:31, 11F
→
01/04 13:32,
6年前
, 12F
01/04 13:32, 12F
推
01/04 13:32,
6年前
, 13F
01/04 13:32, 13F
→
01/04 13:33,
6年前
, 14F
01/04 13:33, 14F
→
01/04 13:33,
6年前
, 15F
01/04 13:33, 15F
推
01/04 13:34,
6年前
, 16F
01/04 13:34, 16F
推
01/04 13:34,
6年前
, 17F
01/04 13:34, 17F
→
01/04 13:34,
6年前
, 18F
01/04 13:34, 18F
→
01/04 13:35,
6年前
, 19F
01/04 13:35, 19F
→
01/04 13:35,
6年前
, 20F
01/04 13:35, 20F
→
01/04 13:36,
6年前
, 21F
01/04 13:36, 21F
→
01/04 13:37,
6年前
, 22F
01/04 13:37, 22F
→
01/04 13:37,
6年前
, 23F
01/04 13:37, 23F
→
01/04 13:38,
6年前
, 24F
01/04 13:38, 24F
→
01/04 13:38,
6年前
, 25F
01/04 13:38, 25F
推
01/04 13:39,
6年前
, 26F
01/04 13:39, 26F
→
01/04 13:39,
6年前
, 27F
01/04 13:39, 27F
→
01/04 13:39,
6年前
, 28F
01/04 13:39, 28F
推
01/04 13:39,
6年前
, 29F
01/04 13:39, 29F
→
01/04 13:40,
6年前
, 30F
01/04 13:40, 30F
→
01/04 13:40,
6年前
, 31F
01/04 13:40, 31F
→
01/04 13:41,
6年前
, 32F
01/04 13:41, 32F
→
01/04 13:41,
6年前
, 33F
01/04 13:41, 33F
推
01/04 13:41,
6年前
, 34F
01/04 13:41, 34F
→
01/04 13:41,
6年前
, 35F
01/04 13:41, 35F
→
01/04 13:42,
6年前
, 36F
01/04 13:42, 36F
→
01/04 13:42,
6年前
, 37F
01/04 13:42, 37F
→
01/04 13:42,
6年前
, 38F
01/04 13:42, 38F
→
01/04 13:42,
6年前
, 39F
01/04 13:42, 39F
→
01/04 13:43,
6年前
, 40F
01/04 13:43, 40F
→
01/04 13:43,
6年前
, 41F
01/04 13:43, 41F
→
01/04 13:44,
6年前
, 42F
01/04 13:44, 42F
推
01/04 13:45,
6年前
, 43F
01/04 13:45, 43F
推
01/04 13:46,
6年前
, 44F
01/04 13:46, 44F
推
01/04 13:49,
6年前
, 45F
01/04 13:49, 45F
推
01/04 13:53,
6年前
, 46F
01/04 13:53, 46F
→
01/04 13:53,
6年前
, 47F
01/04 13:53, 47F
→
01/04 13:53,
6年前
, 48F
01/04 13:53, 48F
→
01/04 13:53,
6年前
, 49F
01/04 13:53, 49F
→
01/04 13:53,
6年前
, 50F
01/04 13:53, 50F
→
01/04 13:53,
6年前
, 51F
01/04 13:53, 51F
推
01/04 13:54,
6年前
, 52F
01/04 13:54, 52F
→
01/04 13:55,
6年前
, 53F
01/04 13:55, 53F
→
01/04 13:56,
6年前
, 54F
01/04 13:56, 54F
推
01/04 13:57,
6年前
, 55F
01/04 13:57, 55F
→
01/04 13:57,
6年前
, 56F
01/04 13:57, 56F
→
01/04 13:59,
6年前
, 57F
01/04 13:59, 57F
推
01/04 14:00,
6年前
, 58F
01/04 14:00, 58F
→
01/04 14:02,
6年前
, 59F
01/04 14:02, 59F
推
01/04 14:02,
6年前
, 60F
01/04 14:02, 60F
→
01/04 14:03,
6年前
, 61F
01/04 14:03, 61F
→
01/04 14:04,
6年前
, 62F
01/04 14:04, 62F
推
01/04 14:05,
6年前
, 63F
01/04 14:05, 63F
→
01/04 14:05,
6年前
, 64F
01/04 14:05, 64F
→
01/04 14:06,
6年前
, 65F
01/04 14:06, 65F
→
01/04 14:08,
6年前
, 66F
01/04 14:08, 66F
→
01/04 14:10,
6年前
, 67F
01/04 14:10, 67F
→
01/04 14:11,
6年前
, 68F
01/04 14:11, 68F
→
01/04 14:13,
6年前
, 69F
01/04 14:13, 69F
推
01/04 14:14,
6年前
, 70F
01/04 14:14, 70F
推
01/04 14:15,
6年前
, 71F
01/04 14:15, 71F
→
01/04 14:17,
6年前
, 72F
01/04 14:17, 72F
→
01/04 14:18,
6年前
, 73F
01/04 14:18, 73F
→
01/04 14:19,
6年前
, 74F
01/04 14:19, 74F
推
01/04 14:21,
6年前
, 75F
01/04 14:21, 75F
→
01/04 14:22,
6年前
, 76F
01/04 14:22, 76F
→
01/04 14:23,
6年前
, 77F
01/04 14:23, 77F
推
01/04 14:27,
6年前
, 78F
01/04 14:27, 78F
→
01/04 14:28,
6年前
, 79F
01/04 14:28, 79F
推
01/05 05:40,
6年前
, 80F
01/05 05:40, 80F
→
01/05 05:42,
6年前
, 81F
01/05 05:42, 81F
→
01/05 05:44,
6年前
, 82F
01/05 05:44, 82F
→
01/05 05:50,
6年前
, 83F
01/05 05:50, 83F
→
01/05 05:52,
6年前
, 84F
01/05 05:52, 84F
→
01/05 05:54,
6年前
, 85F
01/05 05:54, 85F
→
01/05 05:56,
6年前
, 86F
01/05 05:56, 86F
→
01/05 05:58,
6年前
, 87F
01/05 05:58, 87F
→
01/06 01:50,
6年前
, 88F
01/06 01:50, 88F
推
01/14 19:19,
6年前
, 89F
01/14 19:19, 89F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 15 之 38 篇):