前沿拓展:
在這篇帖子中,我討論了COOP,一種學(xué)術(shù)界提出的最新的代碼重用攻擊,并演示怎樣使用它攻擊現(xiàn)代執(zhí)行流完整性的實(shí)現(xiàn),例如微軟CFG??偠灾珻OOP相當(dāng)容易使用,尤其是當(dāng)把payload分割成更小的chains時(shí)。把各個(gè)vfgadgets拼接在一起和匯編ROP gadgets并沒有什么不同。也許最耗時(shí)的部分就是在目的進(jìn)程空間中找到并標(biāo)記各種候選vfgadgets。
微軟的Control Flow Guard被認(rèn)為是一個(gè)粗粒度的CFI實(shí)現(xiàn),因此更容易受到這里所述的函數(shù)重用攻擊的影響。相比之下,細(xì)粒度的CFI解決方案能夠考慮到給定的間接調(diào)用的元素,例如預(yù)期的VTable類型,驗(yàn)證參數(shù)數(shù)量,甚至參數(shù)類型。權(quán)衡兩種方法的關(guān)鍵是性能,因?yàn)樵贑FI中引入復(fù)雜的策略可能會(huì)顯著地增加開銷。盡管因?yàn)閼?yīng)用程序會(huì)因?yàn)槭褂胒orward-edge和backward-edge CFI而變得難以攻破,防御最新的代碼重用攻擊仍然是很重要的。
為了抵消CFG的一些局限性,微軟似乎專注于多樣化的預(yù)防措施,例如在CFG和Arbitrary Code Guard中通過導(dǎo)出表supression保護(hù)關(guān)鍵call gates,比如VirtualProtect。然而,這篇帖子的一個(gè)關(guān)鍵點(diǎn)挑戰(zhàn)是用戶空間設(shè)計(jì)和執(zhí)行防御。正如我們幾前前在EMET中看到的那樣,研究人員通過重用EMET本身的代碼解除了EMET的防御。此外,正如2015黑帽大會(huì)里演示的那樣,我們同樣利用駐留在用戶空間的關(guān)鍵CFG函數(shù)指針來改變CFG的行為。
相比之下,Endgame的HA-CFI解決方案完全由內(nèi)核和硬件實(shí)現(xiàn),即使容易受到函數(shù)重用攻擊,但由于特權(quán)分離,使其更難篡改。在本系列的每二部分,我將使用我們自己的HA-CFI和正在進(jìn)行的研究來對(duì)COOP進(jìn)行討論,以演示我們的檢測(cè)邏輯如何應(yīng)對(duì)最新的代碼重用攻擊。
本文由 看雪翻譯小組 夢(mèng)野間 翻譯
拓展知識(shí):
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http://xiesong.cn/77214.html