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

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)。

主站蜘蛛池模板: 金山区| 理塘县| 定安县| 清河县| 噶尔县| 万源市| 大足县| 威信县| 九寨沟县| 固原市| 南郑县| 伊宁县| 门头沟区| 房产| 舞阳县| 灵石县| 城步| 上思县| 东城区| 沛县| 宝坻区| 盐城市| 闵行区| 天等县| 余姚市| 阿拉善左旗| 彝良县| 堆龙德庆县| 奉化市| 措美县| 龙陵县| 凤翔县| 泊头市| 张北县| 阿荣旗| 府谷县| 桂平市| 虎林市| 寿阳县| 咸丰县| 叙永县|