时间:2015-02-12 | 来源:互联网 | 阅读:164
话题:
早些年的漏洞攻击代码可以直接在栈空间或堆空间执行指令,但近几年,微软操作系统在安全性方面逐渐加强,DEP、ASLR等防护手段的应用,使得攻击者必须借助ROP等绕过手段来实现漏洞利用。在ROP利用中,栈交换指令Stack pivot必不可少。
针对ROP攻击的防御长久以来是漏洞防御的一个难题,因为ROP指令在静态层面分析与程序的正常指令流毫无差别,且运行时也是在合法模块内执行,因此极难防御。
管家漏洞防御团队针对ROP利用的特点,从整个程序的执行流层面进行分析,研究出在动态运行时区分是合法指令流还是异常指令流的方法,其思想与CFI不谋而合。
下边就是一个由于错位汇编形成的比较常用的栈交换指令
而实际正常的执行流程是这样的
以上是没有开启XP防护的情况
开启电脑管家XP防护之后:
此时如果攻击者依靠静态分析时得到栈交换指令位置来执行ROP攻击的话,会被执行流保护逻辑发现异常,后续攻击则无法实现。
CFG防护方法需要在编译链接阶段来完成准备工作,同时需要操作系统的支持。CFI无需编译时的帮助,且不仅能够防御call调用,能够对全部执行流进行保护。但CFI需要插入大量的检测点,并且在执行过程中检测的频率极高,难免对程序执行效率带来影响。
电脑管家XP版的防御方法相比于前两者,对性能的影响更小,但这种方法是针对旧版操作系统的缓解方案,通用性会打折扣。所以建议广大windows用户尽量升级到最新操作系统,享受全面的安全保护。而由于某些原因无法升级的用户也不必担心,管家XP版会继续提供最高的安全防护能力。
湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网