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

2.6.9 不可執行棧

不可執行棧是一種針對緩沖區溢出的運行時解決方案,設計它的目的在于防止在棧段(stack segment)內運行可執行代碼。很多操作系統都可以被配置為使用不可執行棧。

不可執行棧常常被描繪成防范緩沖區溢出漏洞的“萬能藥”,然而,不可執行棧只能防止在棧內存中的惡意代碼執行。它們并不能阻止堆或數據段的緩沖區溢出。它們阻止不了攻擊者利用緩沖區溢出來修改返回地址、變量、對象指針或函數指針。它們對在堆或數據段內的弧注入或可執行代碼注入也無能為力。禁止攻擊者在棧中執行代碼能夠阻止對某些漏洞的利用,但對攻擊者而言這種方式往往形同虛設。

不可執行棧在不同的實現機制下對性能有著不同的影響。它還有可能使得一些依賴于在棧段內執行代碼的程序(包括Linux signal delivery和GCC trampolines等)無法工作。

主站蜘蛛池模板: 从江县| 积石山| 偏关县| 同江市| 通城县| 达拉特旗| 盈江县| 扶风县| 建始县| 陈巴尔虎旗| 榆树市| 阳曲县| 德钦县| 阜城县| 金塔县| 宁化县| 沽源县| 余江县| 阜新| 永胜县| 上思县| 会同县| 克什克腾旗| 尖扎县| 宝山区| 宣威市| 昌黎县| 萝北县| 方城县| 漳平市| 旬邑县| 犍为县| 思南县| 昂仁县| 谢通门县| 灵丘县| 密云县| 宜兴市| 东兴市| 桂平市| 新田县|