[Windows]安全机制学习笔记

【GS】安全编译选项

在EBP(高地址)之前插入随机DWORD,即Security Cookie(低地址),主要目的用于保护栈。

【Safe SEH】异常处理保护

主要目的是防止异常处理函数指针(地址)被劫持。
原理:多条判断方式,核心即为对异常处理函数地址进行备份等验证。
绕过思路:1.在加载模块内存外找一个跳板指令;2.在加载模块中找一个未启用SafeSEH模块或清空SafeSEH表;3.将新指令注册到安全SEH表(可能性不大);
更简便绕过:1.不攻击SEH,考虑覆盖返回地址或虚函数表等;2.利用SEH终极特权,若SEH中指针指向堆区,则即使验证不可信,仍可跳转执行。

【DEP】数据执行保护

溢出类攻击基于冯诺依曼架构核心的弥补,标志内存页属性(NX/XD)。

【ASLR】地址空间布局随机化

对PEB,TEB模块加载基地址进行随机化,而对喷射(Heap spray)理论基础是,堆基地址随机化始终在低地址。

【Other】
SEH终极防护:SEHOP
PEB Random
Safe Unlink
Heap Cookie
元数据加密

【参考】
《0day安全:软件漏洞分析技术》

你可能感兴趣的:(信息安全)