亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

發布時間:2021-12-22 21:51:08 來源:億速云 閱讀:151 作者:柒染 欄目:安全技術

今天就跟大家聊聊有關怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

前言

出于對CPU相關漏洞的興趣,我深入研究了下CVE-2018-3639(Spectre4,幽靈4),有不正確的地方歡迎指正。

根據微軟的一篇博客,已經發現的可用于揣測執行邊信道攻擊的分支(Speculation primitives)共有4種,分別是條件分支預測失誤(conditional branchmisprediction間接分支預測失誤(indirect branch misprediction異常傳遞或延期(exception deliveryor deferral以及今天的主角揣測存儲繞過(Speculative StoreBypass

詳細分析

直接上代碼的最重要部分,此代碼經過個人添加了注釋并修改過一些BUG,可以在文章最后下載源碼對照查看每個變量的含義: 

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

最重要的代碼在115行和122,在C語言層面看不出任何問題,請查看匯編代碼:

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

匯編代碼中紅色部分為115行代碼,綠色部分為122行代碼,紫色部分即為出現問題的關鍵代碼

這兩行代碼出現問題的原因是執行當前代碼的核心認為兩條指令僅存在輸出相關,因此可以使用寄存器重命名的方式并行執行,在《計算機體系結構:量化研究方法(第五版)》中可以找到相關解釋:

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

并行執行不一定會出問題,還需要讓執行單元先執行testfun+138指令再執行test+135指令,這樣才能保證testfun+138會錯誤的影響cache。示例代碼能夠達成這個條件的原因是test+135指令與testfun+128指令相關,因此需要等待前面代碼執行完畢,而test+138則沒有這個顧慮

繼續深入到核心內部的執行單元,查看其到底是如何完成并行執行的,下圖是Intel的Sandy Bridge微架構執行單元:

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

查詢AMD的17代處理器微架構文檔,查詢到如下信息:

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

所以可以判斷上述兩條宏觀指令分別被翻譯為單條存儲相關微指令單條加載相關微指令,結合上述寄存器重命名技術,因此可以判斷在此微架構中使用port2port4來并行執行兩條指令,真相大白。

雖然test+135存儲指令執行完畢后,test+138指令由于錯誤會回退,但是已經受到影響的cache不會回退,所以可以結合rdtscp指令對cache lin 進行時間測試觀察是否cache hit即可判斷出到數據是多少。

不知讀者還記得幽靈1不,它主要是由于錯誤的分支預測導致的 cache line 緩存了錯誤的數據。而幽靈4,主要是由于錯誤的揣測執行(暗自揣測圣意認為兩條指令無關)造成的Meltdown,來源想不起來了。雖然AMD也有異常抑制技術,但是不受到該漏洞影響的原因是核心的執行單元有限,個人覺得應該是AMD的Store和load執行單元為同一個所以免疫,有待后續查證,附帶上幾個Intel和AMD的架構以供參考:

Intel Haswell微架構:

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

Intel Sandy Bridge微架構:

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

AMD 17th 架構:

怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析

DEMO程序編譯命令:        
   

gcc -o Spec4 Speculative4.c -Wall-DHIT_THRESHOLD=50 -DNO_INTERRUPTS -ggdb

看完上述內容,你們對怎樣進行CVE-2018-3639最新邊信道攻擊的詳細分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天水市| 茶陵县| 呼和浩特市| 宝坻区| 河南省| 虞城县| 高雄县| 西华县| 石景山区| 徐水县| 安陆市| 宁城县| 齐河县| 轮台县| 辰溪县| 沁源县| 遂平县| 紫金县| 丘北县| 嵊州市| 綦江县| 蒙山县| 邵东县| 巴楚县| 乳山市| 绍兴县| 葵青区| 定边县| 六枝特区| 九龙县| 应城市| 金寨县| 汉沽区| 钦州市| 安吉县| 夏河县| 余江县| 松潘县| 舒城县| 汕尾市| 陵川县|