去年披露預(yù)測執(zhí)行漏洞的計(jì)算機(jī)安全專家再揭新型邊信道攻擊方法,可繞過現(xiàn)代計(jì)算機(jī)系統(tǒng)的安全防護(hù)。
幽靈和熔斷這樣的邊信道攻擊利用芯片設(shè)計(jì)缺陷收集特權(quán)信息,新披露的方法則與硬件無關(guān),只涉及Windows和Linux操作系統(tǒng)頁緩存,一定條件下可遠(yuǎn)程利用。
研究人員在論文中描述了通過操作系統(tǒng)頁緩存監(jiān)視特定進(jìn)程內(nèi)存訪問的方法。
我們呈現(xiàn)了一組不需要任何計(jì)時(shí)器的本地攻擊,利用操作系統(tǒng)調(diào)用(Linux上的mincore和Windows上的QueryWorkingSetEx)誘出頁緩存信息。我們還證明了頁緩存元數(shù)據(jù)可向遠(yuǎn)程攻擊者泄露信息,在惡意本地發(fā)送者進(jìn)程和外部攻擊者之間形成隱秘信道。
獲取到這些本應(yīng)保密的信息后,攻擊者便可用PHP口令生成腳本執(zhí)行沙箱保護(hù)規(guī)避、接口修改和擊鍵計(jì)時(shí)等本地攻擊。該技術(shù)還可用于執(zhí)行遠(yuǎn)程攻擊,但需要根據(jù)具體目標(biāo)和硬件做些調(diào)整,可能要加入硬件計(jì)時(shí)測量操作。研究人員認(rèn)為該頁緩存邊信道攻擊的性能可與硬件緩存攻擊相媲美。
簡言之,惡意用戶和脆弱系統(tǒng)中的惡意軟件均可利用該邊信道攻擊篡改軟件或抽取其他應(yīng)用的秘密數(shù)據(jù),或在特定條件下遠(yuǎn)程操作。
Windows內(nèi)核已針對該攻擊做了更新,用戶很快就會(huì)收到更新推送。
操作系統(tǒng)的頁緩存在RAM中存儲(chǔ)應(yīng)用程序和操作系統(tǒng)經(jīng)常用到的大量可執(zhí)行程序、庫和各種各樣的數(shù)據(jù),省去不停從硬盤存取的開銷,能夠大幅提升計(jì)算機(jī)的作業(yè)速度。
緩存頁可被同時(shí)映射到多個(gè)進(jìn)程的虛擬內(nèi)存區(qū)。比如說,一個(gè)代碼庫可只載入物理內(nèi)存一次,而被映射到多個(gè)應(yīng)用的虛擬內(nèi)存空間,省出物理RAM和加載時(shí)間。
這種內(nèi)存共享和緩存的按需載入載出機(jī)制便為攻擊打開了大門:可以窺探其他進(jìn)程的訪問模式,基于硬盤和緩存間復(fù)制或移動(dòng)的信息抽取出數(shù)據(jù)。
本地還是遠(yuǎn)程?
本地攻擊中,該邊信道攻擊技術(shù)假定黑客和受害者在同一個(gè)操作系統(tǒng)或在共享文件的不同沙箱中運(yùn)行進(jìn)程。確定內(nèi)存中哪些頁面被調(diào)入頁緩存時(shí),若是Linux操作系統(tǒng),便用mincore系統(tǒng)調(diào)用;若是Windows系統(tǒng),便用QueryWorkingSetEx。
遠(yuǎn)程攻擊需測定軟頁面錯(cuò)誤:應(yīng)用程序訪問的內(nèi)存有效但當(dāng)時(shí)并未給該內(nèi)存分配物理頁面,導(dǎo)致操作系統(tǒng)調(diào)入必要頁面時(shí)發(fā)生的錯(cuò)誤。攻擊者在遠(yuǎn)程服務(wù)器上執(zhí)行程序測量公共文件訪問中的延遲。
研究人員表示,此項(xiàng)研究主要出于學(xué)術(shù)目的,已經(jīng)做了負(fù)責(zé)任披露,目前至少Windows系統(tǒng)是打了補(bǔ)丁的。
本研究表明,在操作系統(tǒng)層面,我們遇到了硬件層面上相同的問題。
Windows 10 內(nèi)部預(yù)覽版 Build 18305 已修復(fù)了該漏洞,但補(bǔ)丁何時(shí)公開發(fā)布尚未可知。
修復(fù)要求QueryWorkingSetEx系統(tǒng)調(diào)用設(shè)置PROCESS_QUERY_INFORMATION標(biāo)志位而非PROCESS_QUERY_LIMITED_INFORMATION標(biāo)志,讓權(quán)限較小的進(jìn)程無法直接訪問頁緩存信息。另外還需隱去 Share Count (共享計(jì)數(shù))信息,讓攻擊者無法通過頁面工作區(qū)的進(jìn)程數(shù)間接觀測其他進(jìn)程的變動(dòng)。
Linux安全團(tuán)隊(duì)據(jù)稱也注意到了該問題,但研究人員的論文中并未提到相關(guān)緩解工作。曾演示過PHP口令生成攻擊的phpMyFAQ開發(fā)人員也被告知了該新邊信道攻擊問題,正在開發(fā)修復(fù)補(bǔ)丁。