Windows 7中的SEHOP进程级可选支持:增强漏洞防护

本文详细介绍了Windows 7中新增的SEHOP(结构化异常处理覆盖保护)进程级启用功能,通过注册表配置和FixIt工具实现系统或特定进程的防护启用,有效防御SEH覆盖攻击技术。

在之前的博客文章中,我们讨论了结构化异常处理覆盖保护(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:

1
2
3
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\iexplore.exe]
“DisableExceptionChainValidation”=dword:00000000

运行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\…)

发布内容“按原样”提供,不提供任何担保,也不授予任何权利。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计