今天在BlackHat上,Bitdefender披露了Spectre 1推測(cè)執(zhí)行端通道漏洞的新變種,該漏洞可能允許惡意程序訪問(wèn)和讀取操作系統(tǒng)中特權(quán)內(nèi)存的內(nèi)容。
此SWAPGS漏洞允許本地程序(如惡意軟件)從通常無(wú)法訪問(wèn)的內(nèi)存中讀取數(shù)據(jù),例如Windows或Linux內(nèi)核內(nèi)存。
Bitdefender的Andrei Vlad Lutas在對(duì)CPU內(nèi)部進(jìn)行研究時(shí)發(fā)現(xiàn)了這個(gè)漏洞,并于2018年8月向英特爾報(bào)告。
在英特爾的一份聲明中,BleepingComputer被告知在向他們披露漏洞后,他們決定在軟件層面上解決這個(gè)問(wèn)題,并且微軟接管了漏洞的協(xié)調(diào)。
“英特爾與行業(yè)合作伙伴一起確定該問(wèn)題在軟件層面得到了更好的解決,并將研究人員與微軟聯(lián)系起來(lái)。這需要生態(tài)系統(tǒng)協(xié)同工作,共同保護(hù)產(chǎn)品和數(shù)據(jù)更加安全,而這個(gè)問(wèn)題正在由微軟協(xié)調(diào)!
從那時(shí)起,微軟接管了通知其他供應(yīng)商,確保發(fā)布補(bǔ)丁,并計(jì)劃今天在BlackHat進(jìn)行協(xié)調(diào)披露。
SWAPGS漏洞
SWAPGS漏洞是一種推測(cè)性執(zhí)行的旁道漏洞,允許不良角色從特權(quán)內(nèi)存中讀取數(shù)據(jù)。
為了提高CPU的性能,一個(gè)稱(chēng)為推測(cè)執(zhí)行的功能將在它知道是否需要它們之前執(zhí)行指令。針對(duì)此功能的漏洞稱(chēng)為旁道攻擊。
在Bitdefender發(fā)現(xiàn)的新的旁道攻擊中,攻擊者“打破了CPU提供的內(nèi)存隔離,允許無(wú)特權(quán)的攻擊者訪問(wèn)特權(quán)內(nèi)核內(nèi)存。”
這是通過(guò)64位CPU中的SWAPGS指令完成的,當(dāng)成功操作時(shí),即使惡意進(jìn)程以低用戶(hù)權(quán)限運(yùn)行,也可以用來(lái)從內(nèi)核內(nèi)存泄漏敏感信息。
這可能允許攻擊者竊取存儲(chǔ)在內(nèi)存中的任何類(lèi)型的信息,包括聊天消息,電子郵件,登錄憑據(jù),支付信息,密碼,加密密鑰,令牌或訪問(wèn)憑據(jù)。
歸結(jié)為,沒(méi)有任何信息可以保密。
雖然微軟,英特爾和紅帽都聲稱(chēng)這個(gè)漏洞存在于所有現(xiàn)代CPU中,但Bitdefender表示他們只能成功利用英特爾CPU上的漏洞。
“我們測(cè)試了兩個(gè)AMD CPU:AMD64系列16型號(hào)2步進(jìn)3 AuthenticAMD~3211 Mhz和AMD64系列15型號(hào)6步進(jìn)1 AuthenticAMD~2100 Mhz,并且都沒(méi)有表現(xiàn)出SWAPGS指令的推測(cè)行為。
由于SWAPGS指令僅出現(xiàn)在x86-64上,因此我們不希望其他CPU架構(gòu)(如ARM,MIPS,POWER,SPARC或RISC-V)容易受到攻擊。但是,我們不排除存在可能以推測(cè)方式執(zhí)行的其他類(lèi)似敏感指令!
此外,由于所需的WRGSBASE指令僅存在于以Ivy Bridge開(kāi)頭的CPU中,因此Bitdefender期望較舊的CPUS“即使不是無(wú)法開(kāi)發(fā)也會(huì)更加困難”。
有關(guān)SWAPGS漏洞的更多詳細(xì)信息,您可以訪問(wèn)Bitdefender的專(zhuān)用SWAPGS頁(yè)面。您還可以觀看Bitdefender分享的關(guān)于如何保護(hù)自己免受SWAPGS攻擊的視頻。
供應(yīng)商響應(yīng)SWAPGS漏洞
在協(xié)調(diào)的披露中,包括微軟,紅帽,英特爾和谷歌在內(nèi)的眾多供應(yīng)商已經(jīng)發(fā)布了有關(guān)此漏洞的建議。
下面我們提供了有關(guān)供應(yīng)商發(fā)布的減少此問(wèn)題的建議和更新的更多信息。
微軟秘密修復(fù)了7月更新中的漏洞
在2019年7月的補(bǔ)丁周二安全更新期間,微軟使用軟件緩解措施秘密修補(bǔ)了新的SWAPGS推測(cè)漏洞。如果您安裝Windows安全更新,那么您已經(jīng)在Windows中受到此漏洞的保護(hù)。
今天發(fā)布的微軟咨詢(xún)報(bào)告標(biāo)題為“Windows內(nèi)核信息泄露漏洞”,并且作為協(xié)調(diào)行業(yè)披露的一部分,一直持續(xù)到今天發(fā)布。
根據(jù)微軟的說(shuō)法,Bitdefender的Andrei Vlad Lutas在一些現(xiàn)代CPU中發(fā)現(xiàn)了這個(gè)新的漏洞,它允許惡意用戶(hù)模式程序訪問(wèn)和讀取Windows內(nèi)核內(nèi)存的內(nèi)容。
“為了利用此漏洞,攻擊者必須登錄受影響的系統(tǒng)并運(yùn)行經(jīng)特殊設(shè)計(jì)的應(yīng)用程序,”微軟在他們的公告中解釋道。“該漏洞不允許攻擊者直接提升用戶(hù)權(quán)限,但可以用來(lái)獲取可能用于進(jìn)一步危害受影響系統(tǒng)的信息!
為解決此漏洞,于2019年7月9日發(fā)布了Windows安全更新,該更新通過(guò)軟件更改修復(fù)了漏洞,從而減輕了CPU推測(cè)性訪問(wèn)內(nèi)存的方式。Microsoft進(jìn)一步聲明,不需要安裝微代碼更新來(lái)解決此漏洞。
“已啟用Windows Update且已應(yīng)用2019年7月9日發(fā)布的安全更新的客戶(hù)將自動(dòng)受到保護(hù)。無(wú)需進(jìn)一步配置。”
目前尚不清楚這些軟件更改是否會(huì)像之前的緩解一樣對(duì)Windows性能產(chǎn)生任何影響。
Microsoft已與BleepingComputer就此漏洞共享以下聲明:
“我們已經(jīng)意識(shí)到這個(gè)行業(yè)范圍內(nèi)的問(wèn)題,并且一直與受影響的芯片制造商和行業(yè)合作伙伴密切合作,開(kāi)發(fā)和測(cè)試緩解措施以保護(hù)我們的客戶(hù)。我們?cè)?月發(fā)布了安全更新,并且啟用了Windows Update并且應(yīng)用了安全性的客戶(hù)更新會(huì)自動(dòng)受到保護(hù)。“
Red Hat發(fā)布了更新的內(nèi)核
Red Hat還發(fā)布了一份關(guān)于這款名為“CVE-2019-1125:幽靈SWAPGS小工具漏洞”的最新Spectre變種的咨詢(xún)。
紅帽用戶(hù)可以通過(guò)更新內(nèi)核并安裝最新的微代碼更新來(lái)修復(fù)此漏洞。
“Red Hat已經(jīng)意識(shí)到了一個(gè)額外的幽靈-V1攻擊向量,需要更新Linux內(nèi)核以及微代碼更新。這個(gè)額外的攻擊向量建立在先前內(nèi)核和微代碼更新中提供的現(xiàn)有軟件修復(fù)程序的基礎(chǔ)上。此漏洞僅適用于此使用Intel或AMD處理器的x86-64系統(tǒng)。“
英特爾發(fā)布咨詢(xún)
英特爾發(fā)布了有關(guān)SWAPGS漏洞的咨詢(xún)。這基本上與其他供應(yīng)商所說(shuō)的相同。
在與行業(yè)合作伙伴評(píng)估此問(wèn)題后,我們確定最佳緩解措施將在軟件層進(jìn)行。微軟同意與研究人員和其他行業(yè)合作伙伴一起協(xié)調(diào)補(bǔ)救工作。微軟于2019年7月發(fā)布了他們的軟件更新以解決這個(gè)問(wèn)題,今天 發(fā)布了他們的安全建議, 作為CVD過(guò)程的一部分。
某些Linux * OS供應(yīng)商可能會(huì)選擇發(fā)布其產(chǎn)品的更新。有關(guān)詳細(xì)信息,請(qǐng)咨詢(xún)您的Linux OS供應(yīng)商。
Google為ChromeOS 4.19和Android 4.19添加了SWAPGS修復(fù)程序
谷歌已將此漏洞的修復(fù)程序添加到ChromeOS 4.19,預(yù)計(jì)很快就會(huì)發(fā)布。
Gustavo A. R. Silva (1): IB/hfi1: Fix Spectre v1 vulnerabilityJosh Poimboeuf (7): x86/speculation: Prepare entry code for Spectre v1 swapgs mitigations x86/speculation: Enable Spectre v1 swapgs mitigations x86/entry/64: Use JMP instead of JMPQ Documentation: Add swapgs description to the Spectre v1 documentation
在BleepingComputer發(fā)現(xiàn)的錯(cuò)誤報(bào)告中,Google 已將SWAPGS補(bǔ)丁合并到ChromeOS 4.19中,并更新了他們的幽靈管理指南,以包含有關(guān)此漏洞的信息。
“攻擊者可以訓(xùn)練分支預(yù)測(cè)器以推測(cè)性地跳過(guò)交換路徑以獲得中斷或異常。如果他們將GS寄存器初始化為用戶(hù)空間值,如果推測(cè)性地跳過(guò)交換標(biāo)記,則在推測(cè)窗口中隨后與GS相關(guān)的percpu訪問(wèn)將使用攻擊者控制的GS值來(lái)完成。這可能會(huì)導(dǎo)致特權(quán)內(nèi)存被訪問(wèn)和泄露!
根據(jù)BleepingComputer在Android Gerrit上找到的提交,Android 4.19也添加了同樣的修復(fù)程序。
x86/speculation: Prepare entry code for Spectre v1 swapgs mitigationsx86/speculation: Enable Spectre v1 swapgs mitigationsx86/entry/64: Use JMP instead of JMPQx86/speculation/swapgs: Exclude ATOMs from speculation through SWAPGSDocumentation: Add swapgs description to the Spectre v1 documentation
AMD認(rèn)為他們不會(huì)受到影響
在AMD產(chǎn)品安全頁(yè)面的更新中,AMD表示他們不相信他們受到影響。
“AMD意識(shí)到新的研究聲稱(chēng)可能允許訪問(wèn)特權(quán)內(nèi)核數(shù)據(jù)的新推測(cè)性執(zhí)行攻擊。基于外部和內(nèi)部分析,AMD認(rèn)為它不容易受到SWAPGS變體攻擊,因?yàn)锳MD產(chǎn)品的設(shè)計(jì)不是為了推測(cè)新的推測(cè)SWAPGS之后的GS值。對(duì)于不是SWAPGS變體的攻擊,緩解是為了實(shí)現(xiàn)我們對(duì)Spectre變體1的現(xiàn)有建議。“
Linux內(nèi)核打了補(bǔ)丁
一個(gè)Linux內(nèi)核補(bǔ)丁--https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=18ec54fdd6d18d92025af097cd042a75cf0ea24c的漏洞SWAPGS也已經(jīng)由Red Hat工程師喬希Poimboeuf共享。
“幽靈v1不僅僅是關(guān)于數(shù)組邊界檢查。它可以影響任何條件檢查。內(nèi)核條目代碼中斷,異常和NMI處理程序都有條件交換檢查。這些可能在Specter v1的上下文中有問(wèn)題,因?yàn)閮?nèi)核代碼可以推測(cè)性地與用戶(hù)GS一起運(yùn)行。“
隨著越來(lái)越多的供應(yīng)商發(fā)布建議,我們將更新這個(gè)故事。