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