已被修补的漏洞技术

对于已有的栈溢出堆溢出攻击方法,大部分已经很难利用了

目的 保护技术
覆盖返回地址 通过GS保护
覆盖SEH链 通过SafeSEH、SEHOP保护
覆盖本地变量 可能被VC编译器经过重新整理和优化
覆盖空闲堆双向链表 通过safeunlinking保护
覆盖堆块头 XP下使用8位的HeaderCookie进行保护,VISTA之后使用XORHeaderData
覆盖lookasidelinkedlist Vista之后被移除

(1)使用 GS 编译技术,在函数返回地址之前加入了 Security Cookie,在函数返回前首先检测 Security Cookie 是否被覆盖,从而把针对操作系统的栈溢出变得非常困难。

(2)增加了对 S.E.H 的安全校验机制,能够有效地挫败绝大多数通过改写 S.E.H 而劫持进程的攻击。

(3)堆中加入了 Heap Cookie、Safe Unlinking 等一系列的安全机制,为原本就困难重重的堆溢出增加了更多的限制。

(4)DEP(Data Ex ecution Protection,数据执行保护)将数据部分标示为不可执行,阻止了栈、堆和数据节中攻击代码的执行。

(5)ASLR(Address space layout randomization,加载地址随机)技术通过对系统关键地址的随机化,使得经典堆栈溢出手段失效。

(6)SEHOP(Structured Ex ception Han dler Overwrite Protection,S.E.H 覆盖保护)作为对安全 S.E.H 机制的补充,SEHOP 将 S.E.H 的保护提升到系统级别,使得 S.E.H 的保护机制更为有效。