
【工具說明】
近期披露的名為“幽靈”的 CPU 漏洞(Spectre,CVE-2017-5753、CVE-2017-5715)對個人用戶最大的風(fēng)險是通過瀏覽器發(fā)起攻擊,進(jìn)而竊取郵箱、網(wǎng)盤等賬戶信息。此工具可檢測您的瀏覽器是否易于遭受“幽靈”漏洞的攻擊。
如果檢測結(jié)果表明您的瀏覽器易于遭受攻擊,則說明風(fēng)險真實存在。但由于可能存在未知攻擊方法,所以如果檢測結(jié)果表示您的瀏覽器不易遭受攻擊,并不一定表明您的系統(tǒng)不存在漏洞。
此工具還在完善中,請保持關(guān)注。
【幽靈CPU漏洞是什么】
1月4日,國外安全研究機構(gòu)公布了兩組CPU漏洞:Meltdown(熔斷),對應(yīng)漏洞CVE-2017-5754;
Spectre(幽靈),對應(yīng)漏洞CVE-2017-5753/CVE-2017-5715。
由于漏洞嚴(yán)重而且影響范圍廣泛,引起了全球的關(guān)注。利用Meltdown漏洞,低權(quán)限用戶可以訪問內(nèi)核的內(nèi)容,獲取本地操作系統(tǒng)底層的信息;當(dāng)用戶通過瀏覽器訪問了包含Spectre惡意利用程序的網(wǎng)站時,用戶的如帳號,密碼,郵箱等個人隱私信息可能會被泄漏;在云服務(wù)場景中,利用Spectre可以突破用戶間的隔離,竊取其他用戶的數(shù)據(jù)。Meltdown漏洞影響幾乎所有的IntelCPU和部分ARMCPU,而Spectre則影響所有的IntelCPU和AMDCPU,以及主流的ARMCPU。從個人電腦、服務(wù)器、云計算機服務(wù)器到移動端的智能手機,都受到這兩組硬件漏洞的影響。
這兩組漏洞來源于芯片廠商為了提高CPU性能而引入的新特性?,F(xiàn)代CPU為了提高處理性能,會采用亂序執(zhí)行(Out-of-OrderExecution)和預(yù)測執(zhí)行(SpeculativePrediction)。亂序執(zhí)行是指CPU并不是嚴(yán)格按照指令的順序串行執(zhí)行,而是根據(jù)相關(guān)性對指令進(jìn)行分組并行執(zhí)行,最后匯總處理各組指令執(zhí)行的結(jié)果。預(yù)測執(zhí)行是CPU根據(jù)當(dāng)前掌握的信息預(yù)測某個條件判斷的結(jié)果,然后選擇對應(yīng)的分支提前執(zhí)行。亂序執(zhí)行和預(yù)測執(zhí)行在遇到異?;虬l(fā)現(xiàn)分支預(yù)測錯誤時,CPU會丟棄之前執(zhí)行的結(jié)果,將CPU的狀態(tài)恢復(fù)到亂序執(zhí)行或預(yù)測執(zhí)行前的正確狀態(tài),然后選擇對應(yīng)正確的指令繼續(xù)執(zhí)行。這種異常處理機制保證了程序能夠正確的執(zhí)行,但是問題在于,CPU恢復(fù)狀態(tài)時并不會恢復(fù)CPU緩存的內(nèi)容,而這兩組漏洞正是利用了這一設(shè)計上的缺陷進(jìn)行測信道攻擊。

【效果與防護(hù)】
熔毀和幽靈利用亂序執(zhí)行和推測執(zhí)行,繞過了權(quán)限檢查等安全措施,可以訪問操作系統(tǒng)內(nèi)核乃至其他程序的內(nèi)容。其中熔毀更容易觸發(fā)利用,因此才有大家已經(jīng)看到的盜取瀏覽器密碼的實例,而幽靈漏洞需要受攻擊目標(biāo)程序的分支入口點結(jié)構(gòu)滿足一定條件才能觸發(fā),難度相對較大,因此網(wǎng)上還沒有發(fā)現(xiàn)基于幽靈漏洞的信息泄露實例出來。需要指出的是,幽靈和熔毀漏洞都只能讀取敏感信息,不能修改(因為亂序執(zhí)行/推測執(zhí)行狀態(tài)下的修改在未通過檢查時一定會被拋棄),算是不幸中的萬幸。由于攻擊的是硬件漏洞,因此目前市面所有主流操作系統(tǒng),包括windows,linux,Mac OS都處在攻擊范圍內(nèi),隔離程度不夠高的眾多半虛擬化方案,Docker,LXC等,也在受影響范圍,因此這個漏洞將極大地影響云計算服務(wù)提供商。目前Google,Amazon,國內(nèi)的阿里,騰訊等大型云服務(wù)提供商都已宣布了補丁計劃。
從業(yè)界廠商的角度看,盡管Intel,AMD,ARM各有說辭[7][8][9],但從專業(yè)從業(yè)人士的角度看,Intel妥妥地同時受到熔毀和幽靈兩個漏洞影響,而AMD和ARM在熔毀漏洞面前也只是暫時安全,熔毀的攻擊原理也適用于AMD和ARM,只是因為分支預(yù)測器結(jié)構(gòu)不同、流水線長度較短導(dǎo)致可利用的時間窗口不大等等因素,才沒有像Intel一樣被熔毀攻破。而幽靈則針對分支預(yù)測器進(jìn)行注入攻擊,目前所有廠商的分支預(yù)測器部分都沒有做比較好的安全防護(hù),因此Intel和ARM,AMD都會受到影響,而且分支預(yù)測器為了提高性能,天生就設(shè)計成部分地址哈希進(jìn)行模糊匹配的模式,使得相關(guān)防御措施很難在不傷害性能的情況下修補漏洞。
針對熔毀漏洞,目前已有的技術(shù)手段主要是通過軟件層次將內(nèi)核頁表與用戶頁表盡可能地隔離,這種技術(shù)的一個實現(xiàn)方案叫KAISER,其變種已經(jīng)被各大操作系統(tǒng)采用作為熔毀漏洞的臨時補救措施。這種技術(shù)方案會提高用戶態(tài)與內(nèi)核態(tài)的切換開銷,快速系統(tǒng)調(diào)用的初步測試證明,內(nèi)核系統(tǒng)調(diào)用的速度降低到了原先的42%,而利用現(xiàn)代處理器的PCID特性進(jìn)行優(yōu)化后,能夠恢復(fù)到57%的水平[9]。具體的應(yīng)用程序下降幅度取決于用戶程序與內(nèi)核交互的頻繁程度,linxu kernel開發(fā)人員的測試結(jié)果從10%~20%+不等,PCID能夠彌補大約5%-7%的性能。
針對幽靈漏洞,目前沒有很好的防御方式,linux的發(fā)行版之一suse最近公開的一個安全更新顯示[10],AMD和Intel已經(jīng)向相關(guān)OS廠商推送了一個微碼更新,這個微碼更新會關(guān)閉分支預(yù)測來暫時封堵幽靈漏洞。由于分支預(yù)測對性能影響巨大,即便分支預(yù)測只被關(guān)閉一部分也很容易造成性能衰退二代左右的幅度,如果整個分支預(yù)測器都被關(guān)閉,CPU性能將退回2000年以前的水平。對于這個更新是否將被應(yīng)用,相關(guān)從業(yè)人士正在持續(xù)跟進(jìn)關(guān)注。



































