官术网_书友最值得收藏!

2.6.11 PaX

在Linux中,不可執行棧的概念最先由PaX內核補丁提出。PaX特別把程序內存標記為不可寫的,并把數據內存標記為不可執行的。PaX還提供了地址空間布局隨機化(ASLR,在2.6.1節處討論)。它終止任何試圖將控制轉移到不可執行的內存的程序。如果NX技術可用,PaX可以使用它,否則,PaX可以效仿它(代價是較慢的性能)。把那些將控制轉移到不可執行的內存的嘗試中斷可以減少任何遠程代碼執行或信息泄露漏洞攻擊,導致一個單純的拒絕服務攻擊,這使得PaX對于 DoS是保護信息或防止弧注入的一個可以接受的后果的系統的理想選擇。無法容忍DoS的系統不應該使用PaX。PaX是現在的grsecurity項目的一部分,該項目為Linux內核提供了一些額外的安全增強。

StackGap。很多基于棧的緩沖區溢出的利用都依賴于內存中一個已知位置的緩沖區。如果攻擊者能夠覆蓋位于溢出緩沖區內一個固定位置的函數返回地址,就能執行攻擊者提供的代碼。如果在棧中分配棧內存時加入隨機大小的空隙,則可以使得攻擊者更難定位棧上的返回地址并僅消耗一頁實存(real memory)。這對棧的起始地址加入了隨機偏移量,因此攻擊者不會從程序的一次運行而知道下一次運行的棧上的任何項目的絕對地址。這種緩解措施,通過把與先前顯示的、允許讓JIT編譯的相同的代碼添加到Linux內核,可以相對容易地添加到一種操作系統。

雖然Stackgap使得攻擊者對漏洞的利用變得更加困難,但它并不能阻止攻擊者利用相對地址而非絕對地址發起攻擊。

其他平臺。ASLR自2007年以來,在自2007年以來Mac OS X(10.5)中是部分可用的,并自2011年(10.7)以來是全部功能都可用的。自4.3版本以來,它也一直在iOS中可用(用于iPhone和iPad)。

主站蜘蛛池模板: 长沙县| 微山县| 盐边县| 绥滨县| 上蔡县| 兴业县| 青川县| 余庆县| 喀什市| 关岭| 屯门区| 简阳市| 石门县| 济宁市| 定陶县| 桐庐县| 洪洞县| 太保市| 仲巴县| 古蔺县| 沧州市| 甘孜| 韶山市| 伊通| 武夷山市| 山阴县| 灵石县| 新余市| 柯坪县| 固阳县| 巴彦淖尔市| 泾川县| 二连浩特市| 五莲县| 营山县| 融水| 香港 | 洞口县| 临武县| 云安县| 嘉黎县|