在之前的博客文章中,我们讨论了结构化异常处理覆盖保护(SEHOP)的技术细节,这是一种首次在Windows Vista SP1和Windows Server 2008 RTM中引入的漏洞利用缓解功能。SEHOP防止攻击者在尝试利用某些类型的软件漏洞时使用结构化异常处理(SEH)覆盖利用技术。SEHOP在Windows Server 2008上默认系统范围内启用,在Windows Vista上默认禁用。这些也是Windows Server 2008 R2(启用)和Windows 7(禁用)中的默认设置。
尽管一些应用程序与SEHOP存在兼容性问题,但绝大多数应用程序可以无问题运行。为了使兼容的应用程序能够利用SEHOP,我们在Windows 7中添加了支持,允许基于每个进程启用或禁用SEHOP。此设置在使用时将覆盖系统默认策略。可以通过将新的DisableExceptionChainValidation映像文件执行选项(IFEO)设置为0来为进程启用SEHOP(或通过设置为1来禁用)。例如,可以通过应用以下注册表脚本*在Windows 7上为Internet Explorer启用SEHOP:
|
|
运行Windows Vista SP1+或Windows 7的用户,如果希望为所有应用程序启用SEHOP(我们强烈推荐),可以通过安装以下FixIt来实现:
为所有应用程序启用SEHOP
如果为所有应用程序启用SEHOP导致特定应用程序出现问题,可以使用Windows 7和Windows Server 2008 R2中的新IFEO仅为受影响的进程禁用SEHOP,如上所述。或者,您可以按照KB956607中描述的步骤为所有应用程序禁用SEHOP。如果您不能为所有应用程序启用SEHOP,我们强烈建议为所有面向互联网的应用程序启用SEHOP,例如您首选的浏览器和邮件客户端。
Matt Miller, MSEC Science
- 如果您运行的是64位版本的Windows,您需要在注册表的Wow6432Node部分下设置IFEO,该部分对应于32位应用程序使用的注册表配置单元(例如HKLM\Software\Wow6432Node\…)
发布内容“按原样”提供,不提供任何担保,也不授予任何权利。