Intel嚴重漏洞 OS更新將會降低效能 - 3C
By Tracy
at 2018-01-05T15:42
at 2018-01-05T15:42
Table of Contents
※ 引述《jclin (狀態:idle)》之銘言:
: ※ 引述《s25Ag5d4 (function(){})()》之銘言:
: : (刪)
: : 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 上的資料被移到快取了,它的
: 補充一下細節.
: 第四行一定會引發 exception,因為 user space application 不可以這樣
: 直讀取 kernel data。但是因為 OOOE 跟 superscalar,
: line 4 之後的指令也一並被拆解為 micro-ops 充份利用 CPU 上的運算單元
: 最後等 line 4 和後面的 uOPs 做完 in-order 回到 architecture state,發現
: line 4 會有問題才 raise exception,並且把已經 OOOE 多做的資料清掉跟準備
: 發出 exception。但是這時會有 race condition 產生.
: 雖然 line 4 不允許被執行,但是後面的因為 uOPs 已經做了,
: rbx + rax 指向的資料已被搬進 cache。rbx 是自己程式記憶起頭,而 rax * 4096
: 就是 shift left 12, 避免預先讀進相鄰的 data 到 cache line
: 這時再利用以前的 paper 的 flush+reload 技巧把 cache 狀態讀出來
: 就可以知道 rcx 這個 byte 的值為何
以我的理解說個前顯易懂的說法看看對不對
以帳號密碼來說
當我輸入帳號密碼後
CPU要確認你的帳號密碼對不對
要拿全部的帳號密碼來比對才知道你輸入的是對還錯
所以當駭客輸入錯誤的帳密時
所有的帳密都會被丟到cache裡面去做比對(cache速度比ram快非常多)
可是比完你輸入的帳密是錯誤的
這時候駭客就可以把cache的資料通通抓走
因為裡面的資料一定是帳號密碼
總不可能你輸入帳密去拿元素週期表來比對吧
--
: ※ 引述《s25Ag5d4 (function(){})()》之銘言:
: : (刪)
: : 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 上的資料被移到快取了,它的
: 補充一下細節.
: 第四行一定會引發 exception,因為 user space application 不可以這樣
: 直讀取 kernel data。但是因為 OOOE 跟 superscalar,
: line 4 之後的指令也一並被拆解為 micro-ops 充份利用 CPU 上的運算單元
: 最後等 line 4 和後面的 uOPs 做完 in-order 回到 architecture state,發現
: line 4 會有問題才 raise exception,並且把已經 OOOE 多做的資料清掉跟準備
: 發出 exception。但是這時會有 race condition 產生.
: 雖然 line 4 不允許被執行,但是後面的因為 uOPs 已經做了,
: rbx + rax 指向的資料已被搬進 cache。rbx 是自己程式記憶起頭,而 rax * 4096
: 就是 shift left 12, 避免預先讀進相鄰的 data 到 cache line
: 這時再利用以前的 paper 的 flush+reload 技巧把 cache 狀態讀出來
: 就可以知道 rcx 這個 byte 的值為何
以我的理解說個前顯易懂的說法看看對不對
以帳號密碼來說
當我輸入帳號密碼後
CPU要確認你的帳號密碼對不對
要拿全部的帳號密碼來比對才知道你輸入的是對還錯
所以當駭客輸入錯誤的帳密時
所有的帳密都會被丟到cache裡面去做比對(cache速度比ram快非常多)
可是比完你輸入的帳密是錯誤的
這時候駭客就可以把cache的資料通通抓走
因為裡面的資料一定是帳號密碼
總不可能你輸入帳密去拿元素週期表來比對吧
--
Tags:
3C
All Comments
By Frederica
at 2018-01-05T22:36
at 2018-01-05T22:36
By Una
at 2018-01-06T05:52
at 2018-01-06T05:52
By George
at 2018-01-07T16:58
at 2018-01-07T16:58
By Blanche
at 2018-01-10T14:32
at 2018-01-10T14:32
By Jack
at 2018-01-11T00:43
at 2018-01-11T00:43
By Sierra Rose
at 2018-01-13T03:55
at 2018-01-13T03:55
By Doris
at 2018-01-14T18:25
at 2018-01-14T18:25
By Dinah
at 2018-01-16T16:55
at 2018-01-16T16:55
By Rebecca
at 2018-01-20T22:33
at 2018-01-20T22:33
By Dorothy
at 2018-01-23T07:44
at 2018-01-23T07:44
By Zanna
at 2018-01-23T09:40
at 2018-01-23T09:40
Related Posts
Intel嚴重漏洞 OS更新將會降低效能
By Frederic
at 2018-01-05T15:18
at 2018-01-05T15:18
Intel嚴重漏洞 OS更新將會降低效能
By Lily
at 2018-01-05T15:13
at 2018-01-05T15:13
散熱問題請益
By Liam
at 2018-01-05T14:19
at 2018-01-05T14:19
10K 吃雞 預算很緊
By Ula
at 2018-01-05T13:23
at 2018-01-05T13:23
Intel嚴重漏洞 OS更新將會降低效能
By Rosalind
at 2018-01-05T11:42
at 2018-01-05T11:42