Intel嚴重漏洞 OS更新將會降低效能 - 3C
By Mason
at 2018-01-04T13:20
at 2018-01-04T13:20
Table of Contents
※ 引述《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來確認權限囉
--
: 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來確認權限囉
--
Tags:
3C
All Comments
By Ophelia
at 2018-01-07T01:36
at 2018-01-07T01:36
By Puput
at 2018-01-10T00:05
at 2018-01-10T00:05
By Caitlin
at 2018-01-12T13:56
at 2018-01-12T13:56
By Noah
at 2018-01-15T05:34
at 2018-01-15T05:34
By Olive
at 2018-01-18T17:31
at 2018-01-18T17:31
By Zora
at 2018-01-21T22:13
at 2018-01-21T22:13
By Rosalind
at 2018-01-25T12:12
at 2018-01-25T12:12
By Agatha
at 2018-01-28T06:25
at 2018-01-28T06:25
By James
at 2018-01-30T03:24
at 2018-01-30T03:24
By Christine
at 2018-01-31T22:04
at 2018-01-31T22:04
By Christine
at 2018-02-03T04:53
at 2018-02-03T04:53
By Lauren
at 2018-02-04T07:00
at 2018-02-04T07:00
By Valerie
at 2018-02-07T11:34
at 2018-02-07T11:34
By Robert
at 2018-02-11T05:24
at 2018-02-11T05:24
By Dinah
at 2018-02-15T23:40
at 2018-02-15T23:40
By Hedda
at 2018-02-18T06:29
at 2018-02-18T06:29
By Erin
at 2018-02-22T00:40
at 2018-02-22T00:40
By Mia
at 2018-02-22T10:45
at 2018-02-22T10:45
By Aaliyah
at 2018-02-24T11:20
at 2018-02-24T11:20
By Hazel
at 2018-02-26T09:52
at 2018-02-26T09:52
By Victoria
at 2018-03-01T22:49
at 2018-03-01T22:49
By Hedda
at 2018-03-04T17:37
at 2018-03-04T17:37
By Daniel
at 2018-03-04T21:25
at 2018-03-04T21:25
By Caroline
at 2018-03-05T12:49
at 2018-03-05T12:49
By Dora
at 2018-03-08T17:05
at 2018-03-08T17:05
By Michael
at 2018-03-13T08:57
at 2018-03-13T08:57
By Hedda
at 2018-03-16T14:57
at 2018-03-16T14:57
By Faithe
at 2018-03-17T09:35
at 2018-03-17T09:35
By Ula
at 2018-03-20T14:33
at 2018-03-20T14:33
By Daniel
at 2018-03-24T19:52
at 2018-03-24T19:52
By William
at 2018-03-29T14:37
at 2018-03-29T14:37
By Heather
at 2018-04-03T12:07
at 2018-04-03T12:07
By Donna
at 2018-04-08T03:07
at 2018-04-08T03:07
By Michael
at 2018-04-08T19:40
at 2018-04-08T19:40
By Genevieve
at 2018-04-10T18:15
at 2018-04-10T18:15
By Elizabeth
at 2018-04-13T13:27
at 2018-04-13T13:27
By Kyle
at 2018-04-16T05:41
at 2018-04-16T05:41
By Kyle
at 2018-04-20T23:35
at 2018-04-20T23:35
By Kyle
at 2018-04-25T18:34
at 2018-04-25T18:34
By Skylar DavisLinda
at 2018-04-28T21:52
at 2018-04-28T21:52
By Doris
at 2018-05-03T06:46
at 2018-05-03T06:46
By Callum
at 2018-05-07T17:16
at 2018-05-07T17:16
By Lauren
at 2018-05-12T14:24
at 2018-05-12T14:24
By Dorothy
at 2018-05-13T17:14
at 2018-05-13T17:14
By Ida
at 2018-05-16T12:48
at 2018-05-16T12:48
By Todd Johnson
at 2018-05-19T10:47
at 2018-05-19T10:47
By Agnes
at 2018-05-19T20:56
at 2018-05-19T20:56
By Eden
at 2018-05-21T22:26
at 2018-05-21T22:26
By Caroline
at 2018-05-26T18:23
at 2018-05-26T18:23
By Oliver
at 2018-05-30T10:07
at 2018-05-30T10:07
By James
at 2018-05-30T17:56
at 2018-05-30T17:56
By George
at 2018-06-03T13:35
at 2018-06-03T13:35
By Selena
at 2018-06-05T22:42
at 2018-06-05T22:42
By Carolina Franco
at 2018-06-10T10:03
at 2018-06-10T10:03
By Tom
at 2018-06-11T06:11
at 2018-06-11T06:11
By Bethany
at 2018-06-12T22:35
at 2018-06-12T22:35
By Sandy
at 2018-06-17T15:41
at 2018-06-17T15:41
By Yuri
at 2018-06-22T02:15
at 2018-06-22T02:15
By Wallis
at 2018-06-23T18:00
at 2018-06-23T18:00
By Mason
at 2018-06-25T07:15
at 2018-06-25T07:15
By Quanna
at 2018-06-25T16:13
at 2018-06-25T16:13
By Steve
at 2018-06-25T17:57
at 2018-06-25T17:57
By Mia
at 2018-06-26T16:01
at 2018-06-26T16:01
By Robert
at 2018-07-01T12:08
at 2018-07-01T12:08
By Enid
at 2018-07-02T22:02
at 2018-07-02T22:02
By Freda
at 2018-07-06T20:35
at 2018-07-06T20:35
By Rachel
at 2018-07-11T19:03
at 2018-07-11T19:03
By Elizabeth
at 2018-07-12T17:03
at 2018-07-12T17:03
By Xanthe
at 2018-07-16T03:18
at 2018-07-16T03:18
By Freda
at 2018-07-17T00:30
at 2018-07-17T00:30
By Jack
at 2018-07-18T21:11
at 2018-07-18T21:11
By Daniel
at 2018-07-21T09:07
at 2018-07-21T09:07
By Elvira
at 2018-07-23T20:32
at 2018-07-23T20:32
By Damian
at 2018-07-25T15:46
at 2018-07-25T15:46
By Daniel
at 2018-07-27T01:28
at 2018-07-27T01:28
By Elizabeth
at 2018-07-27T17:58
at 2018-07-27T17:58
By Tom
at 2018-07-30T19:00
at 2018-07-30T19:00
By George
at 2018-07-31T22:17
at 2018-07-31T22:17
Related Posts
微軟三年10億用戶沒達標 Windows 10連Win
By Gary
at 2018-01-04T12:59
at 2018-01-04T12:59
Intel嚴重漏洞 OS更新將會降低效能
By Damian
at 2018-01-04T12:55
at 2018-01-04T12:55
除Intel之外AMD和ARM也中招了
By John
at 2018-01-04T12:37
at 2018-01-04T12:37
Intel嚴重漏洞 OS更新將會降低效能
By Brianna
at 2018-01-04T12:33
at 2018-01-04T12:33
Intel嚴重漏洞 OS更新將會降低效能
By Mason
at 2018-01-04T12:01
at 2018-01-04T12:01