Intel CPU漏洞導致64位元作業系統、虛擬化軟體易受駭客 - 3C

By Elma
at 2012-06-19T18:33
at 2012-06-19T18:33
Table of Contents
在過去AMD開發X86-64的指令集時,AMD並沒有真的把記憶體的位元數擴充到64bit
實際上只有到48bit(因為48bit已足夠定址256TB的記憶體,真實64bit需要6層的
pagetable、而48bit只需要4層pagetable)。
所以當記憶體儲存時,第48~63bit的值必須與第47bit的值相等(canonical form)
假使值不相等那就會回傳一個錯誤訊息(GP)。
現在的作業系統設計主要都是階層化設計,分為User mode、Priveleged mode
中間是透過SYSRET這個System Call做切換,一些比較重要的事情都必須在
Priveleged mode底下運行,而進行轉換這個動作主要是透過SYSRET執行,也是
這次問題發生之所在。
SYSRET 主會做以下2個動作
將RCX值賦予RIP(instruction pointer)
轉換為User mode
而RCX 是一個通用的register所以可以存取64bit之值
但是RIP是用作存取記憶體位置所以必須符合前述所說canonical form
針對這點,Intel與AMD都會針對這個值檢查的時機不同。
Intel是在轉換前做檢查,AMD是在轉換後。
假使不符合canonical form
Intel會是在Priveleged mode傳回GP
AMD會在User mode傳回GP
假使GP是在Userv mode時傳出,那Stack pointer會是一個由hypervisor給定
得值
但是假使GP是在Priveleged mode傳出那SP值會是當下的SP值也就是Priveleged mode
底下的SP值
但是SYSRET並不會做回復SP值這個動作,這個動作是由hypervisor執行,所以當GP
出現之前SP值已經被複製到當下的地方,所以有心要搞破壞的人,只需要促使
hypervisor 所接收到的RIP不符合canonical form那他就能任意修改SP的值,藉此
破壞。
其實早期的AMD處理器也有相同的問題,並不只有Intel。
--
實際上只有到48bit(因為48bit已足夠定址256TB的記憶體,真實64bit需要6層的
pagetable、而48bit只需要4層pagetable)。
所以當記憶體儲存時,第48~63bit的值必須與第47bit的值相等(canonical form)
假使值不相等那就會回傳一個錯誤訊息(GP)。
現在的作業系統設計主要都是階層化設計,分為User mode、Priveleged mode
中間是透過SYSRET這個System Call做切換,一些比較重要的事情都必須在
Priveleged mode底下運行,而進行轉換這個動作主要是透過SYSRET執行,也是
這次問題發生之所在。
SYSRET 主會做以下2個動作
將RCX值賦予RIP(instruction pointer)
轉換為User mode
而RCX 是一個通用的register所以可以存取64bit之值
但是RIP是用作存取記憶體位置所以必須符合前述所說canonical form
針對這點,Intel與AMD都會針對這個值檢查的時機不同。
Intel是在轉換前做檢查,AMD是在轉換後。
假使不符合canonical form
Intel會是在Priveleged mode傳回GP
AMD會在User mode傳回GP
假使GP是在Userv mode時傳出,那Stack pointer會是一個由hypervisor給定
得值
但是假使GP是在Priveleged mode傳出那SP值會是當下的SP值也就是Priveleged mode
底下的SP值
但是SYSRET並不會做回復SP值這個動作,這個動作是由hypervisor執行,所以當GP
出現之前SP值已經被複製到當下的地方,所以有心要搞破壞的人,只需要促使
hypervisor 所接收到的RIP不符合canonical form那他就能任意修改SP的值,藉此
破壞。
其實早期的AMD處理器也有相同的問題,並不只有Intel。
--
Tags:
3C
All Comments

By Mia
at 2012-06-24T09:10
at 2012-06-24T09:10

By Belly
at 2012-06-28T07:27
at 2012-06-28T07:27

By Yedda
at 2012-06-30T12:46
at 2012-06-30T12:46

By Mia
at 2012-07-05T12:27
at 2012-07-05T12:27

By Ingrid
at 2012-07-06T12:33
at 2012-07-06T12:33

By Doris
at 2012-07-08T20:43
at 2012-07-08T20:43

By Ursula
at 2012-07-12T03:15
at 2012-07-12T03:15

By Ophelia
at 2012-07-13T03:19
at 2012-07-13T03:19

By Sarah
at 2012-07-14T16:50
at 2012-07-14T16:50

By Rosalind
at 2012-07-14T20:48
at 2012-07-14T20:48

By Rachel
at 2012-07-16T04:39
at 2012-07-16T04:39

By Victoria
at 2012-07-18T12:32
at 2012-07-18T12:32

By Damian
at 2012-07-22T02:58
at 2012-07-22T02:58

By Emma
at 2012-07-22T12:13
at 2012-07-22T12:13

By Irma
at 2012-07-26T04:01
at 2012-07-26T04:01

By Enid
at 2012-07-29T22:28
at 2012-07-29T22:28

By Damian
at 2012-08-01T10:45
at 2012-08-01T10:45

By Caitlin
at 2012-08-05T10:44
at 2012-08-05T10:44

By Rebecca
at 2012-08-10T06:06
at 2012-08-10T06:06

By Blanche
at 2012-08-11T08:18
at 2012-08-11T08:18

By Jack
at 2012-08-12T22:21
at 2012-08-12T22:21

By Bennie
at 2012-08-16T12:24
at 2012-08-16T12:24

By Tracy
at 2012-08-18T08:32
at 2012-08-18T08:32

By Freda
at 2012-08-18T19:50
at 2012-08-18T19:50

By Erin
at 2012-08-19T18:59
at 2012-08-19T18:59

By Frederic
at 2012-08-21T15:45
at 2012-08-21T15:45

By Elma
at 2012-08-22T18:29
at 2012-08-22T18:29

By Puput
at 2012-08-23T22:21
at 2012-08-23T22:21

By Iris
at 2012-08-25T05:49
at 2012-08-25T05:49

By Valerie
at 2012-08-26T19:36
at 2012-08-26T19:36

By Noah
at 2012-08-26T21:37
at 2012-08-26T21:37

By George
at 2012-08-29T17:29
at 2012-08-29T17:29
Related Posts
pps類似

By Kelly
at 2012-06-19T17:30
at 2012-06-19T17:30
純白潔淨,PC P&C Silencer Mk III 400w

By Irma
at 2012-06-19T15:49
at 2012-06-19T15:49
撼訊 極速+ HD7870 旋風II代,飆風再起

By Leila
at 2012-06-19T15:47
at 2012-06-19T15:47
內顯一些問題請教

By Leila
at 2012-06-19T00:27
at 2012-06-19T00:27
我的台灣按啊......

By Edith
at 2012-06-18T22:12
at 2012-06-18T22:12