BlindSide攻擊使用推測執(zhí)行繞過ASLR
近日斯蒂文斯理工學(xué)院、蘇黎世理工學(xué)院和阿姆斯特丹自由大學(xué)的研究人員發(fā)現(xiàn)了一種名為 BlindSide 的攻擊技術(shù),利用該技術(shù)可以構(gòu)造繞過主流操作系統(tǒng)ASLR (Address Space Layout Randomization,地址空間配置隨機(jī)化)的漏洞利用。
BLINDSIDE攻擊
內(nèi)存地址對于攻擊者來說是非常重要的。如果攻擊者知道了APP要執(zhí)行內(nèi)存中的哪些代碼,就可以調(diào)整漏洞利用來對特定應(yīng)用發(fā)起攻擊并竊取敏感信息。ASLR 的工作原理是隨機(jī)化內(nèi)存中執(zhí)行的代碼的位置,可以有效應(yīng)對緩沖區(qū)溢出攻擊的安全保護(hù)技術(shù)。
為繞過ASLR,攻擊者需要找到泄露內(nèi)存位置的漏洞,或者找到另一個(gè)app 運(yùn)行的適當(dāng)位置,然后修改攻擊代碼來攻擊內(nèi)存地址空間。這兩種攻擊技術(shù)都是非常難的,尤其是第二種攻擊方式可能會(huì)引發(fā)系統(tǒng)奔潰或被安全防護(hù)系統(tǒng)檢測到。
研究人員發(fā)現(xiàn)的新的BlindSide 攻擊可以將探測的行為放在推測執(zhí)行過程中。推測執(zhí)行是一種提升主流處理器性能的方法。在推測執(zhí)行過程中,CPU會(huì)提前運(yùn)行一些與當(dāng)前計(jì)算線程并行的操作。當(dāng)主CPU 線程到達(dá)某個(gè)特定點(diǎn)后,推測執(zhí)行就會(huì)取出提前計(jì)算好的值并進(jìn)入下一個(gè)任務(wù),這一過程可以提升整個(gè)計(jì)算操作的性能。推測執(zhí)行過程中得到的所有的值都會(huì)被丟棄,對操作系統(tǒng)沒有任何影響。
研究人員稱提升CPU 性能的這一過程同樣會(huì)放大常見軟件中安全漏洞的嚴(yán)重性,比如推測探測引入的內(nèi)存破壞錯(cuò)誤。BlindSide利用了APP中的安全漏洞,并應(yīng)用到推測執(zhí)行中,可以重復(fù)地探測內(nèi)存直到攻擊者成功繞過ASLR 。
因?yàn)楣舭l(fā)生在推測執(zhí)行過程中,因此探測失敗和奔潰等都不會(huì)到CPU和其穩(wěn)定性帶來任何影響。攻擊者需要做的就是利用系統(tǒng)中的一個(gè)內(nèi)存破壞漏洞即可。在論文中,研究人員使用了Linux kernel中的一個(gè)緩沖區(qū)溢出漏洞:
· 利用BlindSide打破了KASLR來掛載一個(gè)可靠的ROP 漏洞利用;
· 利用BlindSide打破了任意隨機(jī)化方案來掛載架構(gòu)數(shù)據(jù)漏洞利用,泄露root口令哈希值;
· 打破隨機(jī)化和kernel 執(zhí)行內(nèi)存來復(fù)制kernel文本,并掛在一個(gè)可靠的ROP 漏洞利用。
PoC 視頻參見:https://www.youtube.com/embed/m-FUIZiRN5o
研究人員稱攻擊者利用BlindSide 可以有效地實(shí)現(xiàn)盲劫持,無需考慮ASLR 。BlindSide 攻擊可以適用于不同的架構(gòu),研究人員在Intel 和AMD CPU 上都做了測試。
此外,BlindSide 攻擊在修復(fù)了Spectre、Meltdown等推測執(zhí)行攻擊的CPU 上仍然適用。
研究人員在文章中也提到了多種緩解BlindSide 攻擊的方法。
本文翻譯自:https://www.zdnet.com/article/new-blindside-attack-uses-speculative-execution-to-bypass-aslr/如若轉(zhuǎn)載,請注明原文地址