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

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



































