Offset2lib攻擊繞過64位Linux內核防護

http://www.solidot.org/story?sid=42174
2014年12月06日
Shawn the R0ck 寫道 "安全研究人員Hector Marco發佈公佈了針對64位Linux內核的ASLR防護的繞過,slide和論文提供下載,這種攻擊被稱爲offset2lib,ASLR的實現是在Linux內核裏,而在GNU/Linux發行版上加載一個應用程序到內存中會先找一個隨機的地址加載第一個共享庫,之後加載的共享庫緊跟之前加載對象的地址,一個內存地址的泄漏就足夠讓地址隨機化變得無用,甚至GOT(Global Offset Table)的地址泄漏都不是必須的,由於大部分的GNU/Linux發行版(除了像Gentoo這種每個源碼包都需要自己編譯)的包都是預編譯的二進制文件,所以這些發行版的offset都是一樣的。作者的POC中是輕鬆的繞過了NX(stack上不允許執行),ASLR(地址隨機化)+PIE(針對代碼段的隨機化),SSP(壓棧出棧檢測是否被修改的canary)的組合防禦,offset2lib攻擊爲繞過普通的GNU/Linux針對漏洞的整體防禦給以了致命的一擊。
這次offset2lib的曝光引起了0ld sch00l黑客社區的廣泛討論,多年來Linux內核開發者社區的自大是導致這種程度攻擊的主要原因,多年來的“修修補補”式的防禦設計在一夜之間居然崩潰掉了,甚至有人懷疑這些來自“上古”時代的防禦代碼今天是否還有人記得...雖然offset2lib攻擊在目前的內核代碼裏比較容易修復,但你根本不知道像NSA之類的情報部門是否已經漏洞利用過? 有趣的是這種攻擊方式對於Grsecurity/PaX無效,Grsecurity/PaX早在13年前的實現就已經杜絕了這種攻擊的可能性,不幸的是只有Gentoo和Debian Mempo提供了直接使用Grsecurity/PaX的途徑。當然,爲什麼Linux內核社區一直抄襲Grsecurity/PaX而不讓它進入主幹或許是個社區政治問題,但抄的爛也是導致這次攻擊的主要原因。
btw:說普通的GNU/Linux安全是相對於Windows而言。 " 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章