http://redhat.com/~mingo/exec-shield/
---------------------------------
五、增強的緩沖區溢出保護及內核MAC
---------------------------------
◆OpenBSD security feature
OpenBSD和Hardened Gentoo、Adamantix、SELinux都是屬于默認安全等級非常高的操作系統。OpenBSD經過代碼審計,漏洞非常少。同樣他具有很多安全特性:
*使用strlcpy()和strlcat()函數替換原有的危險函數
*內存保護:W^X、只讀數據段、頁保護、mmap()隨機映射、malloc()隨機映射、atexit()及stdio保護、
*特權分離
*特權回收
*BSD chroot jail
*其他的很多特性
其中W^X有不少內容:stack、mmap隨機映射,只讀GOT/PLT/.ctor/.dtor等。雖然理論上OpenBSD無法阻止所有類型的攻擊,但已經阻斷了不少攻擊手法。
◆PaX
PaX是個非常BT的東西,好像天生就是緩沖區溢出的死對頭,他嚴厲的審視每一種攻擊方式,予以阻斷。
*基于x86段式內存管理的數據段不可執行
*基于頁式內存管理的數據段的頁不可執行
*內核頁只讀{
-Const結構只讀
-系統調用表只讀
-局部段描述符表(IDT)只讀
-全局段描述符表(GDT)只讀
-數據頁只讀
-該特性不能與正常的LKM功能共存 }
*完全的地址空間隨機映射{
-每個系統調用的內核棧隨機映射
-用戶棧隨機映射
-ELF可執行映像隨機映射
-Brk()分配的heap隨機映射
-Mmap()管理的heap隨機映射
-動態鏈接庫隨機映射 }
*還有諸如把動態鏈接庫映射到0x00開始的低地址的其他特性
這里順便提一下Phrack58上Nergal寫過的<<The advanced return-into-lib(c) exploits >>,這篇大作里提到用偽造棧楨(Fakeframe)和dl-resolve()技術突破PaX若干保護的方法,這極有可能*nix應用層 exploit技術中最高級的技術,Nergal解決了幾個問題:Stack/Heap/BSS不可執行、mmap隨機映射,顯然這種高級的技術仍然無法無條件的突破PaX,所以在一個運行完全版PaX的Linux上,你想發動緩沖區溢出可能是沒有機會的。!
PaX Team
http://pax.grsecurity.net
◆Grsecurity
Grsec內含PaX(這個更BT??汗~),和Lids一樣grsec支持內核MAC(Madatory Access Control,強制訪問控制),擁有非常多的特性,詳見http://grsecurity.net/features.php
www.grsecurity.net
------------------
六、硬件級別的保護
------------------
X86 CPU上采用4GB平坦模式,數據段和代碼段的線性地址是重疊的,頁面只要可讀就可以執行,所以上面提到的諸多內核補丁才會費盡心機設計了各種方法來使數據段不可執行,F在Alpha、PPC、PA-RISC、SPARC、SPARC64、AMD64、IA64都提供了頁執行bit位。Intel及AMD 新增加的頁執行比特位稱為NX安全技術,Windows XP SP2及Linux Kernel 2.6都支持NX,雖然這種硬件級的頁保護不如PaX那樣強,但硬件級別的支持無疑大大增加了軟件和操作系統的兼容性,能夠使緩沖區溢出的防護得到普及。
----------
Conclusion
----------
安全和易用性總是站在對立面上,以上提及的保護技術都會引起少量的性能損耗,設計者們已經從性能的角度優化了他們的作品。然而人們更關心的問題是兼容性,也許你會發現在那些運營級的BOX上根本看不到這些東西,是的,人們希望的另一種安全是不發生錯誤,即穩定的運行,使用這些額外的保護會給人造成心理不安,我相信隨著NX的流行以及保護技術本身的發展這些問題都會得到解決。也許你經常會看到這樣或那樣的文章講述如何突破緩沖區溢出保護的高級 exploit技術,其實很多內容只適合作為教學、或者技術本身還處在研究階段,在實際的攻擊中,使用高級的bypass技術通常需要滿足一些條件,并不是單純多花點力氣增長了exploit代碼的長度就能達到目的,在使用緩沖區溢出保護的系統上,攻擊將變得非常困難,有些時候其實就是不可能,尤其是在遠程無法精確得到必須的ELF符號地址的時候,很多技術都將變成紙上談兵。
使用類似PaX的補丁,+iptables規則,再結合內核MAC,想入侵得到shell幾乎是不可能的,可惜偶沒錢,不然拿個Linux box放到Internet上公測,讓牛人們盡興的玩玩,哈~
在緩沖區溢出尚未成為歷史的今天,暫且緬懷一下吧,這當然也不是什么悲觀的論調,舊技術的消亡必然伴隨著新技術的誕生,如果沒有了Evil Hacking我們還坐在電腦前干什么呢?如果那樣的話,我就和傻Billy去開個小超市,順便告訴Adam,Why他們也別干了。。讓那些做安全啥也不懂就會吹牛的人去干吧~~
PST,
Ph4nt0m Security Team
http://www.ph4nt0m.org
一群無拘無束的年輕人,雖然大多從事網絡安全工作,卻因為崇尚Black Hat而聚到一起。
文章來源于領測軟件測試網 http://www.kjueaiud.com/