初識 ASLR

 

最近在學習 OLE 相關漏洞的時候看到了這個名詞,OLE漏洞所能導致的其中一種後果就是可以加載任何未開啓 ASLR 的 DLL ,因此有必要學習一下 ASLR 究竟是個什麼鬼。

 

一、ASLR(Address space layout randomization)

ASLR 其實是一種針對緩衝區溢出的安全保護技術,通過對 堆、棧、共享庫映射 等線性內存區域的隨機化佈局,增加攻擊者預測目的內存地址的難度,防止攻擊者直接定位攻擊代碼的位置,達到阻止內存溢出攻擊的目的。大部分主流的操作系統已經實現了ASLR。但是,地址隨機化不是對所有模塊和內存區都進行隨機化!雖然 libc、棧、堆 的加載位置被隨機化,但主鏡像不會。

 

二、已開啓 ASLR 的系統

-Linux
Linux已在內核版本2.6.12中添加ASLR。
-Windows
Windows Server 2008,Windows 7,Windows Vista,Windows Server 2008 R2,默認情況下啓用ASLR,但它僅適用於動態鏈接庫和可執行文件。
-Mac OS X
Apple在Mac OS X Leopard10.5(2007年十月發行)中某些庫導入了隨機地址偏移,但其實現並沒有提供ASLR所定義的完整保護能力。而Mac OS X Lion10.7則對所有的應用程序均提供了ASLR支持。Apple宣稱爲應用程序改善了這項技術的支持,能讓32及64位的應用程序避開更多此類攻擊。從OS X Mountain Lion10.8開始,核心及核心擴充(kext)與zones在系統啓動時也會隨機配置。
-iOS(iPhone, iPod touch, iPad)
Apple在iOS4.3內導入了ASLR。
-Android
Android 4.0提供地址空間配置隨機加載(ASLR),以幫助保護系統和第三方應用程序免受由於內存管理問題的攻擊,在Android 4.1中加入地址無關代碼(position-independent code)的支持。

 

 

 

 

 

 

參考:

https://www.jianshu.com/p/c14425265c69

https://www.jianshu.com/p/fa72a327a2ba

 

 

 

 

發佈了66 篇原創文章 · 獲贊 30 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章