我不知道該說什么,關(guān)于側(cè)通道緩解還是side channel mitigations
時間:2023-06-29 03:00:02 | 來源:網(wǎng)站運(yùn)營
時間:2023-06-29 03:00:02 來源:網(wǎng)站運(yùn)營
我不知道該說什么,關(guān)于側(cè)通道緩解還是side channel mitigations:
前言
在新配置的電腦中安裝vmware并裝上虛擬機(jī)之后,出現(xiàn)了“您正在運(yùn)行的此虛擬機(jī)已啟用側(cè)通道緩解。側(cè)通道緩解可增強(qiáng)安全性,但也會降低性能?!钡囊粋€提示,這勾起了我的好奇心。而在中文網(wǎng)絡(luò)上搜索了一下發(fā)現(xiàn)沒有太多可以參考的內(nèi)容,于是決定自己搜集一下資料做個小總結(jié)。
在進(jìn)入正題之前,首先額外說一個小坑,是關(guān)于開啟amd-v虛擬化的提示,不開啟的話無法使用虛擬機(jī),提示如下:
此主機(jī)支持 AMD-V,但 AMD-V 處于禁用狀態(tài)。
如果已在 BIOS/固件設(shè)置中禁用 AMD-V,或主機(jī)自更改此設(shè)置后從未重新啟動,則 AMD-V 可能被禁用。
(1) 確認(rèn) BIOS/固件設(shè)置中啟用了 AMD-V。
(2) 如果此 BIOS/固件設(shè)置已更改,請重新啟動主機(jī)。
(3) 如果您在安裝 VMware Workstation 之后從未重新啟動主機(jī),請重新啟動。
(4) 將主機(jī)的 BIOS/固件更新至最新版本。
此主機(jī)不支持“AMD RVI”硬件輔助的 MMU 虛擬化。
模塊“CPUIDEarly”啟動失敗。
未能啟動虛擬機(jī)。
這里用一下csdn的圖,我懶得自己截了。在AMD-V上我折騰了一陣子,主要是開啟SVM功能之后整個物理機(jī)變得非常不穩(wěn)定,時不時藍(lán)屏。最后在關(guān)閉了Hyper-V后解決了這些問題。
說回到主題,在vmware中每次打開虛擬機(jī)都會出現(xiàn)一個提示:
您正在運(yùn)行的此虛擬機(jī)已啟用側(cè)通道緩解。側(cè)通道緩解可增強(qiáng)安全性,但也會降低性能。
要禁用緩解,請在虛擬機(jī)設(shè)置的“高級”面板中更改側(cè)通道緩解設(shè)置。有關(guān)更多詳細(xì)信息,請參閱 VMware 知識庫文章 79832,網(wǎng)址為 https://kb.vmware.com/s/article/79832。
可以看出中英文的區(qū)別,中文更接近于機(jī)翻(習(xí)慣了,vmware的官網(wǎng)知識庫都是機(jī)翻的),其中的"側(cè)信道緩解"在英文中是"side channel mitigations",大家都反饋“每個詞都沒錯,但不是最佳選擇,湊一塊語法也不對。就是不知所云,不走心的機(jī)翻的感覺?!蔽乙灿X得翻譯為
側(cè)信道攻擊緩解措施更貼切。
接下來的內(nèi)容我會以問答形式來表達(dá)。
Q:什么是側(cè)信道攻擊?
在這里我們使用wikipedia上的定義,在密碼學(xué)中,旁道攻擊又稱側(cè)信道攻擊、邊信道攻擊(英語:Side-channel attack)是一種攻擊方式,它基于從密碼系統(tǒng)的物理實現(xiàn)中獲取的信息而非暴力破解法或是算法中的理論性弱點(diǎn)(較之密碼分析)。例如:時間信息、功率消耗、電磁泄露或甚是聲音可以提供額外的信息來源,這可被利用于對系統(tǒng)的進(jìn)一步破解。某些側(cè)信道攻擊還要求攻擊者有關(guān)于密碼系統(tǒng)內(nèi)部操作的技術(shù)性信息,不過,其他諸如差分電力分析的方法在黑盒攻擊中效果明顯。許多卓有成效的側(cè)信道攻擊基于由保羅·科切開拓的統(tǒng)計學(xué)方法。
Q:側(cè)信道攻擊有什么類型?
根據(jù)借助的介質(zhì),旁路攻擊分為多個大類,包括:
- 緩存攻擊,通過獲取對緩存的訪問權(quán)而獲取緩存內(nèi)的一些敏感信息,例如攻擊者獲取云端主機(jī)物理主機(jī)的訪問權(quán)而獲取存儲器的訪問權(quán);
- 計時攻擊,通過設(shè)備運(yùn)算的用時來推斷出所使用的運(yùn)算操作,或者通過對比運(yùn)算的時間推定資料位于哪個存儲設(shè)備,或者利用通信的時間差進(jìn)行資料竊取;
- 基于功耗監(jiān)控的旁路攻擊,同一設(shè)備不同的硬件電路單元的運(yùn)作功耗也是不一樣的,因此一個程序運(yùn)行時的功耗會隨著程序使用哪一種硬件電路單元而變動,據(jù)此推斷出資料輸出位于哪一個硬件單元,進(jìn)而竊取資料;
- 電磁攻擊,設(shè)備運(yùn)算時會泄漏電磁輻射,經(jīng)過得當(dāng)分析的話可解析出這些泄漏的電磁輻射中包含的信息(比如文本、聲音、圖像等),這種攻擊方式除了用于密碼學(xué)攻擊以外也被用于非密碼學(xué)攻擊等竊聽行為,如TEMPEST攻擊(例如范·??烁`聽、輻射監(jiān)測);
- 聲學(xué)密碼分析,通過捕捉設(shè)備在運(yùn)算時泄漏的聲學(xué)信號捉取信息(與功率分析類似);
- 差別錯誤分析,隱密資料在程序運(yùn)行發(fā)生錯誤并輸出錯誤信息時被發(fā)現(xiàn);
- 數(shù)據(jù)殘留,可使理應(yīng)被刪除的敏感資料被讀取出來(例如冷啟動攻擊);
- 軟件初始化錯誤攻擊,現(xiàn)時較為少見,行錘攻擊是該類攻擊方式的一個實例,在這種攻擊實現(xiàn)中,被禁止訪問的存儲器位置旁邊的存儲器空間如果被頻繁訪問將會有狀態(tài)保留丟失的風(fēng)險;
- 光學(xué)方式,即隱密資料被一些視覺光學(xué)儀器(如高清晰度相機(jī)、高清晰度攝影機(jī)等設(shè)備)捕捉。
所有的攻擊類型都利用了加密/解密系統(tǒng)在進(jìn)行加密/解密操作時算法邏輯沒有被發(fā)現(xiàn)缺陷,但是通過物理效應(yīng)提供了有用的額外信息(這也是稱為“旁路”的緣由),而這些物理信息往往包含了密鑰、密碼、密文等隱密資料。
Q:側(cè)信道攻擊有什么例子?
在vmware中給的那個鏈接里我們可以看到這么一句:
The root cause of the performance degradation is most likely due to mitigations for side channel attacks such as Spectre and Meltdown.
我們就以Spectre和Meltdown為例。
Spectre
幽靈(英語:Spectre)是一個存在于分支預(yù)測實現(xiàn)中的硬件缺陷及安全漏洞,含有預(yù)測執(zhí)行功能的現(xiàn)代微處理器均受其影響,漏洞利用是基于時間的旁路攻擊,允許惡意進(jìn)程獲得其他程序在映射內(nèi)存中的資料內(nèi)容。Spectre是一系列的漏洞,基于攻擊行為類型,賦予了兩個通用漏洞披露ID,分別是CVE-2017-5753(bounds check bypass,邊界檢查繞過)和CVE-2017-5715(branch target injection,分支目標(biāo)注入),于2018年1月隨同另一個也基于推測運(yùn)行機(jī)制的、屬于重量級信息安全漏洞的硬件缺陷“Meltdown”(熔毀)一同公布。由于該缺陷是推測運(yùn)行機(jī)制導(dǎo)致的,加上不同處理器架構(gòu)對推測運(yùn)行又有不同的實現(xiàn)方式,因此這個缺陷無法獲得根源上的修復(fù)而只能采取“見招拆招”式的方法防范,而且因機(jī)制所致,各種解決方案還有不可預(yù)料的性能下降。
CVE-2017-5753依賴于運(yùn)行中的即時編譯(JIT)系統(tǒng),用于Javascript的JIT引擎已被發(fā)現(xiàn)存在此漏洞。網(wǎng)站可以讀取瀏覽器中存儲的另一個網(wǎng)站的數(shù)據(jù),或者瀏覽器本身的內(nèi)存。對此Firefox 57.0.4(部分)及Chrome 64通過為每個網(wǎng)站分配專用的瀏覽器進(jìn)程來阻擋此類攻擊;操作系統(tǒng)則是通過改寫的編譯器重新編譯以阻擋利用該漏洞進(jìn)行攻擊的行為。
針對CVE-2017-5715,除了軟件層面上進(jìn)行修改以外,處理器也需要通過微碼更新來阻擋這類攻擊。
隨著幽靈缺陷派生的安全漏洞(攻擊手段變體,包括CVE-2018-3693、CVE-2018-3640、CVE-2018-3639等)被逐一發(fā)現(xiàn),英特爾等CPU開發(fā)商不得不在修復(fù)既有缺陷的同時資助第三方信息安全團(tuán)隊繼續(xù)發(fā)掘潛在的缺陷以破財消災(zāi)。
Meltdown
熔斷(英語:Meltdown),也譯崩潰,編號CVE-2017-5754,正式名稱為“Rogue Data Cache Load”,常譯作“惡意數(shù)據(jù)緩存加載”,是一個存在于英特爾大部分x86/x86-64微處理器、部分IBM POWER架構(gòu)處理器以及部分ARM架構(gòu)處理器中的關(guān)于推測運(yùn)行機(jī)制的硬件設(shè)計缺陷及安全漏洞。該缺陷使得低權(quán)限的進(jìn)程無論是否獲取特權(quán),均可以獲取受高權(quán)限保護(hù)的內(nèi)存空間中的資料,漏洞利用是基于時間的旁路攻擊。2018年1月,該缺陷隨另一個基于推測運(yùn)行機(jī)制的重量級信息安全漏洞、硬件缺陷“Spectre”(幽靈)在通用漏洞披露中公布。
由于英特爾處理器及IBM POWER處理器均在市場上占據(jù)極大的份額(出現(xiàn)缺陷的ARM處理器在缺陷被發(fā)現(xiàn)時尚未正式面市),這種涉及信息安全的硬件缺陷影響范圍甚廣,包括幾乎整個x86、POWER服務(wù)器領(lǐng)域、幾乎整個小型主機(jī)及大型主機(jī)市場、個人電腦市場等都無一幸免,另外該缺陷的危險程度之高(無需特權(quán)即可訪問敏感資料所在的存儲器空間),曾一度令信息安全人員及機(jī)構(gòu)懷疑缺陷的真實性,而提前公布這些缺陷還極有可能引發(fā)全球性的信息安全災(zāi)難,因而選擇先與處理器廠商及核心客戶聯(lián)系協(xié)商備妥修補(bǔ)方案再另行公布。目前該硬件缺陷可通過軟件實現(xiàn)規(guī)避,包括Linux系、Android、OS X/macOS、Windows等等都有相應(yīng)的修復(fù)程序(像是Linux的內(nèi)核頁表隔離技術(shù)),但是軟件規(guī)避將導(dǎo)致處理器性能的顯著下降。而從根本上修復(fù)該缺陷的方法(包括修復(fù)“幽靈”缺陷)是重新設(shè)計處理器的微架構(gòu),為此英特爾、IBM及ARM都將新處理器微架構(gòu)的推出時程大幅押后。
Q:開啟側(cè)信道攻擊緩解措施具體能夠?qū)κ裁垂羯В?/h2>這是個很有趣的問題,我查遍了整個vmware的知識庫(看英文真的好痛苦),也沒找到它對自己的這個功能的詳細(xì)解釋。但是勇敢狐貍不怕困難在我的查找下,還是能夠從側(cè)面對這個問題做出一些回答的。
根據(jù)vmware知識庫另一篇講如何緩解MDS漏洞的文章中中,我們可以看到vmware在側(cè)信道攻擊方面的防御努力。MDS是一個典型的側(cè)信道攻擊,它所涉及的CVE漏洞有CVE-2018-12126、CVE-2018-12127、CVE-2018-12130 和 CVE-2019-11091等。
而在英特爾的這個鏈接中中,我們可以看到這么一句:
對于那些未能在硬件中解決 MDS 的產(chǎn)品,英特爾將與原始設(shè)備制造商 (OEM) 在定期更新的流程中發(fā)布處理器微碼更新 (MCU)。這些將與操作系統(tǒng)和虛擬機(jī)管理程序軟件的對應(yīng)更新相結(jié)合。
我覺得可以認(rèn)為vmware和inter有**交易這個更新已經(jīng)在vmware中實現(xiàn)了。
Q:開啟側(cè)信道攻擊緩解措施是否有必要?
雖然很多安全觀點(diǎn)都是一個仁者見仁智者見智(說人話就是隨便你)的問題,但是對于側(cè)信道攻擊,我還是覺得它不是一個常規(guī)意義上的嚴(yán)重性的漏洞。
從使用難度上來說,側(cè)信道攻擊技術(shù)含量很高,這意味著它的使用門檻也很高;從易用性上來說,vmware默認(rèn)開啟這個功能,大部分人不會想著去關(guān)閉它,所以即使真有一個能夠利用這個漏洞的工具,它也很難找到目標(biāo);
更何況在英特爾的文章中對于MDS有過這么一個看法:
在研究環(huán)境的受控條件外利用 MDS 漏洞是一項復(fù)雜的工作。MDS 漏洞已被行業(yè)標(biāo)準(zhǔn)的“通用漏洞評分系統(tǒng) (CVSS)”劃分為低到中級嚴(yán)重性,而且值得注意的是,并沒有任何實際利用這些漏洞的報告。
雖然在quore上依然有一些工程師認(rèn)為側(cè)信道攻擊是一個非常被低估的漏洞,但是...你懂的(聳肩)。
Q:開啟側(cè)信道攻擊緩解措施之后虛擬機(jī)性能會下降多少?
我知道這個問題很多人關(guān)心,但是這是個很不好回答的問題...
在reddit、csdn、博客園、V2EX論壇上,你可以找到一些對于側(cè)信道攻擊的吐槽,例如說如果不關(guān)閉,自己的虛擬機(jī)會非常卡;或是吐槽這個功能會在創(chuàng)建虛擬機(jī)時默認(rèn)開啟導(dǎo)致自己每次都要手動關(guān)閉(我直接關(guān)閉了提示假裝它不存在);也有人說它無關(guān)緊要...
根據(jù)在英特爾的文章中的解釋,MDS的漏洞緩解策略只會影響不到5%的性能,我們有理由相信vmware不會給自己挖一個特別影響性能的坑,所以...開不開看你心情吧。
后記
這個文章寫于上班摸魚期間,大概花費(fèi)了我一整個下午。如果你讀完了全文卻依然很迷惑,那你首先不該埋怨我,讓我們一起把鍋丟給不完整的vmware知識庫吧而應(yīng)該重新理解其中的幾個概念:
- side channel mitigations
- 側(cè)信道攻擊(旁路攻擊)
- MDS(Microarchitectural Data Sampling)
如果依然存有迷惑,歡迎討論。