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

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。

--

All Comments

Mia avatarMia2012-06-24
專業推
Belly avatarBelly2012-06-28
推~但還是看不太懂XD...是會讓CPU當機嗎?
Yedda avatarYedda2012-06-30
是改變sp然後pop到駭客的程式取得最高權限?
Mia avatarMia2012-07-05
有列出受影響的AMD與Intel處理器嗎?
Ingrid avatarIngrid2012-07-06
問一下...這跟ring0有關係嗎?
Doris avatarDoris2012-07-08
還是看不懂0.0
Ursula avatarUrsula2012-07-12
所以這問題AMD很早就解決了? Intel則是現在才解決嗎?
Ophelia avatarOphelia2012-07-13
專業推 勉強看得懂,請問一下這類知識要看哪些書?
Sarah avatarSarah2012-07-14
恐龍?
Rosalind avatarRosalind2012-07-14
operating system concepts
Rachel avatarRachel2012-07-16
恐龍中文版翻得有好一點了嗎? XDDD
Victoria avatarVictoria2012-07-18
Linux Kernel是推薦哪本書呢? 中文或原文都可以
Damian avatarDamian2012-07-22
先謝謝大大
Emma avatarEmma2012-07-22
幸好看得懂,感謝大大分析XD
Irma avatarIrma2012-07-26
有名的 ring 0 security bug
Enid avatarEnid2012-07-29
推一下 專業
Damian avatarDamian2012-08-01
要看還是看英文吧...中文超爛(懊悔)
Caitlin avatarCaitlin2012-08-05
推一個~ 專業~~
Rebecca avatarRebecca2012-08-10
推一個
Blanche avatarBlanche2012-08-11
...令人懷念的恐龍本= ="..
Jack avatarJack2012-08-12
念中文本要用英文文法 這樣可以省去單字翻譯時間
Bennie avatarBennie2012-08-16
完全沒碰過OS QQ
Tracy avatarTracy2012-08-18
您只是大三的學生的話 那您應該是可以用外星語跟教授
對話的哪幾位學生了XDDD
Freda avatarFreda2012-08-18
原po年紀輕輕,程度就相當不錯,厲害
Erin avatarErin2012-08-19
你是許老師學生嗎?
Frederic avatarFrederic2012-08-21
這以後會是個人才
Elma avatarElma2012-08-22
有前途:P
Puput avatarPuput2012-08-23
懷念
Iris avatarIris2012-08-25
大大受我一拜!
Valerie avatarValerie2012-08-26
可以來我們實驗室教學嗎 :p 我是許老師學生 XD
歡迎來我們實驗室呀 XD
Noah avatarNoah2012-08-26
大大超強<(_ _)>
George avatarGeorge2012-08-29
大屁超無敵強!!!