Re: [情報] Intel嚴重漏洞 OS更新將會降低效能
看板PC_Shopping (個人電腦購買)作者s25g5d4 (function(){})()時間8年前 (2018/01/05 11:42)推噓120(122推 2噓 108→)留言232則, 121人參與討論串25/38 (看更多)
看了三天的 paper 終於看懂 Meltdown 怎麼做到的
Spectre 太複雜看不懂沒時間懶得看所以不談
首先我預設大家都知道
instruction-level paralleism 指令層級平行,
superscalar 超純量,
out-of-order execution 亂序執行,
speculative execution 推測執行
他們之間的關聯為,為了達成 ILP 所以引入 superscalar。
但是資料相依性問題造成 superscalar 不能很好發揮,因此
引入 out-of-order execution 讓 CPU 挑鄰近的可以同時執
行的指令執行。再來 speculative execution 遇到條件分支
conditional branch 時先預測會進某個分支並執行。
除此之外還有 micro op,以下寫作 uop,則是把一個 instr-
cution 拆成好幾個 uop 並把他丟下去跑。CPU 裡有好幾個不
同運算單元,包含算術運算、讀寫單元、分支單元,而且分別
都有複數分身可以同時執行。所以指令拆成 uop 以後先堆到
buffer 裡面,再丟到各個單元去跑。
把以上所有東西合起來就是,先解決資料相依性問題,挑幾個
鄰近的指令進來,拆成 uop,丟到 buffer,開始排程去跑,
並根據分支預測把可能的指令拿過來拆一拆一起下去跑。
接著 Meltdown 攻擊的問題點在於,當 user mode process
存取他不該存取的記憶體資料時,那個指令會產生一個例外
execption, 接著會產生一個中斷 interrupt 丟給 OS 去處理
這個例外。但因為以上幾個東西合在一起,其實指令的執行先
後順序是不一定的,有可能後面的跑一跑並且產生了一些副作
用,結果因為前面的指令產生例外,清空 buffer 與管線,雖
然暫存器 register 與記憶體都沒有寫入,理論上是當作沒發
生,可是卻有副作用發生了。這個副作用就是記憶體存取,會
先載入快取 cache。Layer 幾的快取其實不重要,因為重點是
它被載入快取中,所以存取時花費的時間一定比從記憶體存取
來的快。這個時間的差異就是洩漏出來的資訊。
考慮下面的指令
1 ; rcx = kernel address
2 ; rbx = probe array
3 retry:
4 mov al, byte [rcx]
5 shl rax, 0xc
6 jz retry
7 mov rbx, qword [rbx + rax]
在第四行會產生一個例外,但因為 OOOE 與推測執行,造成第
七行的讀取記憶體行為也執行了,它存取的資料被從記憶體中
搬入快取,但因為在第四行產生例外,因此 rbx 並沒有真的
被寫入資料。因為 rbx + rax 上的資料被移到快取了,它的
存取速度一定比其他在 probe array 裡的資料來的快,因此
只要掃一次整個 probe array 看看哪個資料存取速度比別的
快,再算出它與 probe array 起始位置的偏移量,就知道在
第四行中從 rcx 讀取到的 kernel data 是甚麼。
所以 KPTI 就是完全分離 kernel address 與 user address
,也就是 kernel space 的所有資料都不在 user space 中,
在 user space 讀資料都讀不到 kernel 資料,相對應的也不
會有例外產生。
--
→
12/10 18:52,
12/10 18:52
推
12/10 18:53,
12/10 18:53
→
12/10 18:53,
12/10 18:53
推
12/10 18:55,
12/10 18:55
→
12/10 18:57,
12/10 18:57
→
12/10 19:57,
12/10 19:57
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.40.20
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1515123762.A.27C.html
推
01/05 11:53,
8年前
, 1F
01/05 11:53, 1F
推
01/05 11:53,
8年前
, 2F
01/05 11:53, 2F
推
01/05 11:55,
8年前
, 3F
01/05 11:55, 3F
推
01/05 11:58,
8年前
, 4F
01/05 11:58, 4F
總之就是一種側載攻擊
洪師傅, 不要跟他拼拳, 嘗試切他中路的概念
推
01/05 11:59,
8年前
, 5F
01/05 11:59, 5F
推
01/05 11:59,
8年前
, 6F
01/05 11:59, 6F
推
01/05 12:01,
8年前
, 7F
01/05 12:01, 7F
推
01/05 12:02,
8年前
, 8F
01/05 12:02, 8F
→
01/05 12:02,
8年前
, 9F
01/05 12:02, 9F
推
01/05 12:04,
8年前
, 10F
01/05 12:04, 10F
推
01/05 12:06,
8年前
, 11F
01/05 12:06, 11F
推
01/05 12:08,
8年前
, 12F
01/05 12:08, 12F
→
01/05 12:09,
8年前
, 13F
01/05 12:09, 13F
推
01/05 12:09,
8年前
, 14F
01/05 12:09, 14F
→
01/05 12:12,
8年前
, 15F
01/05 12:12, 15F
→
01/05 12:13,
8年前
, 16F
01/05 12:13, 16F
→
01/05 12:13,
8年前
, 17F
01/05 12:13, 17F
推
01/05 12:14,
8年前
, 18F
01/05 12:14, 18F
推
01/05 12:15,
8年前
, 19F
01/05 12:15, 19F
→
01/05 12:16,
8年前
, 20F
01/05 12:16, 20F
→
01/05 12:16,
8年前
, 21F
01/05 12:16, 21F
推
01/05 12:16,
8年前
, 22F
01/05 12:16, 22F
→
01/05 12:17,
8年前
, 23F
01/05 12:17, 23F
推
01/05 12:17,
8年前
, 24F
01/05 12:17, 24F
→
01/05 12:19,
8年前
, 25F
01/05 12:19, 25F
→
01/05 12:20,
8年前
, 26F
01/05 12:20, 26F
推
01/05 12:21,
8年前
, 27F
01/05 12:21, 27F
→
01/05 12:23,
8年前
, 28F
01/05 12:23, 28F
→
01/05 12:23,
8年前
, 29F
01/05 12:23, 29F
→
01/05 12:24,
8年前
, 30F
01/05 12:24, 30F
→
01/05 12:25,
8年前
, 31F
01/05 12:25, 31F
還有 161 則推文
還有 7 段內文
推
01/05 20:27,
8年前
, 193F
01/05 20:27, 193F
推
01/05 21:19,
8年前
, 194F
01/05 21:19, 194F
→
01/05 21:52,
8年前
, 195F
01/05 21:52, 195F
推
01/05 22:12,
8年前
, 196F
01/05 22:12, 196F
推
01/06 00:48,
8年前
, 197F
01/06 00:48, 197F
推
01/06 00:53,
8年前
, 198F
01/06 00:53, 198F
推
01/06 01:08,
8年前
, 199F
01/06 01:08, 199F
推
01/06 01:49,
8年前
, 200F
01/06 01:49, 200F
推
01/06 09:18,
8年前
, 201F
01/06 09:18, 201F
推
01/06 12:47,
8年前
, 202F
01/06 12:47, 202F
推
01/06 13:56,
8年前
, 203F
01/06 13:56, 203F
推
01/07 03:52,
8年前
, 204F
01/07 03:52, 204F
推
01/11 03:13,
8年前
, 205F
01/11 03:13, 205F
推
01/12 01:11,
8年前
, 206F
01/12 01:11, 206F
→
01/12 01:18,
8年前
, 207F
01/12 01:18, 207F
→
01/12 01:19,
8年前
, 208F
01/12 01:19, 208F
→
01/12 01:22,
8年前
, 209F
01/12 01:22, 209F
→
01/12 01:22,
8年前
, 210F
01/12 01:22, 210F
→
01/12 01:25,
8年前
, 211F
01/12 01:25, 211F
→
01/12 01:26,
8年前
, 212F
01/12 01:26, 212F
→
01/12 01:27,
8年前
, 213F
01/12 01:27, 213F
→
01/12 01:27,
8年前
, 214F
01/12 01:27, 214F
→
01/12 01:28,
8年前
, 215F
01/12 01:28, 215F
→
01/12 01:29,
8年前
, 216F
01/12 01:29, 216F
→
01/12 01:29,
8年前
, 217F
01/12 01:29, 217F
→
01/12 01:30,
8年前
, 218F
01/12 01:30, 218F
推
01/12 01:40,
8年前
, 219F
01/12 01:40, 219F
→
01/12 01:40,
8年前
, 220F
01/12 01:40, 220F
→
01/12 01:41,
8年前
, 221F
01/12 01:41, 221F
推
01/17 11:58,
8年前
, 222F
01/17 11:58, 222F
推
02/06 12:19,
8年前
, 223F
02/06 12:19, 223F
推
02/06 12:29,
8年前
, 224F
02/06 12:29, 224F
推
02/06 12:47,
8年前
, 225F
02/06 12:47, 225F
推
02/06 13:19,
8年前
, 226F
02/06 13:19, 226F
推
02/06 14:40,
8年前
, 227F
02/06 14:40, 227F
推
02/06 16:54,
8年前
, 228F
02/06 16:54, 228F
→
02/14 00:57,
8年前
, 229F
02/14 00:57, 229F
推
03/13 12:44,
8年前
, 230F
03/13 12:44, 230F
推
08/24 14:09,
7年前
, 231F
08/24 14:09, 231F
推
07/27 12:45, , 232F
07/27 12:45, 232F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 25 之 38 篇):
PC_Shopping 近期熱門文章
PTT數位生活區 即時熱門文章