文章编号: 875352 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

数据执行保护 (DEP) 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。在 Microsoft Windows XP Service Pack 2 (SP2) 和 Microsoft Windows XP Tablet PC Edition 2005 中,由硬件和软件一起强制实施 DEP。

DEP 的主要优点是可以帮助防止数据页执行代码。通常情况下,不从默认堆和堆栈执行代码。硬件实施 DEP 检测从这些位置运行的代码,并在发现执行情况时引发异常。软件实施 DEP 可帮助阻止恶意代码利用 Windows 中的异常处理机制进行破坏。

简介

本文介绍 Windows XP SP2 以及 Microsoft Windows Server 2003 Service Pack 1 (SP1) 中的 DEP 功能,并讨论以下主题:

更多信息

硬件实施 DEP

除了显式包含可执行代码的内存位置外,硬件实施 DEP 将进程中的所有内存位置均标记为不可执行。有一类攻击是尝试在不可执行的内存位置插入代码并运行它。DEP 可通过截获这些攻击并引发一个异常来帮助阻止这些攻击。

硬件实施 DEP 依靠处理器硬件来使用属性标记内存,此属性指明不能从该内存执行代码。DEP 以虚拟内存页面为单位运行,通常情况下更改 Page Table Entry (PTE) 中的位来标记内存页面。

处理器体系结构确定 DEP 在硬件中的实现方式以及 DEP 标记虚拟内存页面的方式。但是,在从使用合适属性集标记的页面执行代码时,支持硬件实施 DEP 的处理器可能引发异常。

Advanced Micro Devices (AMD) 和 Intel 已经定义并发布了与 Windows 兼容的体系结构,该体系结构与 DEP 兼容。

从 Windows XP SP2 开始,Windows 的 32 位版本使用下列功能之一:
  • 由 AMD 定义的 No-Execute Page-Protection (NX) 处理器功能。
  • 由 Intel 定义的 Execute Disable Bit (XD) 功能。
要使用这些处理器功能,处理器必须以物理地址扩展 (PAE) 模式运行。但是,Windows 将自动启用 PAE 模式来支持 DEP。用户不必使用 /PAE 启动开关来单独启用 PAE。

注意:由于 64 位内核识别地址窗口化扩展插件 (AWE),因此在 Windows 的 64 位版本中没有单独的 PAE 内核。
有关 Windows Server 2003 中 PAE 和 AWE 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
283037 Windows Server 2003 和 Windows 2000 提供大内存支持

软件实施 DEP

Windows XP SP2 中已添加另一套数据执行保护安全检查。这些称为软件实施 DEP 的检查旨在阻止利用 Windows 中异常处理机制的恶意代码。软件实施 DEP 运行在可以运行 Windows XP SP2 的任意处理器上。默认情况下,不管处理器的硬件实施 DEP 功能如何,软件实施 DEP 都是只帮助保护受限的系统二进制文件。

优点

DEP 的主要优点是帮助阻止数据页(如默认的堆页、各种堆栈页以及内存池页)执行代码。通常情况下,不从默认堆和堆栈执行代码。硬件实施 DEP 检测从这些位置运行的代码,并在发现执行情况时引发异常。如果异常未得到处理,进程将停止。在内核模式下从受保护的内存执行代码会导致“停止”错误。

DEP 可帮助阻止某类安全入侵。具体而言就是,DEP 可帮助阻止某种恶意程序,在这种恶意程序中,病毒或其他类型的攻击会在进程中插入一段附加代码,并试图运行此插入代码。在带有 DEP 的系统上,执行插入代码会导致发生异常。软件实施 DEP 可帮助阻止利用 Windows 中异常处理机制的程序。

DEP 的系统范围配置

系统的 DEP 配置由 Boot.ini 文件中的开关控制。如果以管理员身份登录,则可立即使用“控制面板”中的“系统”对话框轻松配置 DEP 设置。

对于硬件实施和软件实施 DEP,Windows 支持四种系统范围配置。
收起该表格展开该表格
配置说明
选择启用此设置为默认配置。如果系统中具有能够实现硬件实施 DEP 功能的处理器,则默认情况下将对限定的系统二进制文件和“选择启用”程序启用 DEP。使用此选项时,默认情况下,DEP 仅覆盖 Windows 系统二进制文件。
选择禁用默认情况下,对所有进程启用 DEP。可以使用“控制面板”中的“系统”对话框手动创建未应用 DEP 的特定程序的列表。信息技术 (IT) 专业人员可以使用应用程序兼容性工具包“选择禁用”DEP 保护的一个或多个程序。用于 DEP 的系统兼容性修补程序和填充程序确实可以发挥作用。
总是启用此设置将整个系统置于 DEP 保护范围内。所有进程始终在应用 DEP 的情况下运行。使特定程序不受 DEP 保护的例外列表不可用。用于 DEP 的系统兼容性修补程序不起作用。使用应用程序兼容性工具包选择禁用的程序将在应用 DEP 的情况下运行。
总是禁用无论硬件 DEP 是否支持,此设置都不会为系统的任何部分提供 DEP 保护。除非在 Boot.ini 文件中包括“/PAE”选项,否则处理器不会在 PAE 模式下运行。
配置硬件实施和软件实施 DEP 的方式相同。如果系统范围的 DEP 策略设置为“选择启用”,则同一 Windows 核心二进制文件和程序既受硬件实施 DEP 的保护,也受软件实施 DEP 的保护。如果系统无法使用硬件实施 DEP,则 Windows 核心二进制文件和程序将只受软件实施 DEP 的保护。

同样,如果系统范围的 DEP 策略设置为“选择禁用”,则不受 DEP 保护的程序既不受硬件实施 DEP 的保护,也不受软件实施 DEP 的保护。

Boot.ini 文件设置如下所示:
/noexecute=policy_level
注意policy_level 可定义为“总是启用”、“总是禁用”、“选择启用”或“选择禁用”。

安装 Windows XP SP2 后,Boot.ini 文件中的现有 /noexecute 设置不会更改。在计算机上移动 Windows 操作系统映像后,无论计算机是否有硬件实施 DEP 支持,这些设置也都不会变化。

在安装 Windows XP SP2 和 Windows Server 2003 SP1 或更高版本的过程中,除非在无人参与安装中指定不同的策略级别,否则默认情况下启用“选择启用”策略级别。对于支持 DEP 的 Windows 版本,如果 Boot.ini 文件中不包括 /noexecute=policy_level 设置,其行为将与包括 /noexecute=OptIn 设置时的行为相同。

如果以管理员身份登录,则可使用“系统属性”中的“数据执行保护”选项卡,手动将 DEP 配置为在“选择启用”和“选择禁用”策略之间切换。以下过程说明如何在计算机上手动配置 DEP:
  1. 单击“开始”,单击“运行”,键入 sysdm.cpl,然后单击“确定”。
  2. 在“高级”选项卡的“性能”下,单击“设置”。
  3. 在“数据执行保护”选项卡上,执行下列过程之一:
    • 单击“只为关键 Windows 程序和服务启用数据执行保护”以选择“选择启用”策略。
    • 单击“除所选之外,为所有程序和服务启用数据执行保护”以选择“选择禁用”策略,然后单击“添加”以添加不希望使用 DEP 功能的程序。
  4. 单击“确定”两次。
IT 专业人员可以使用各种方法来控制系统范围的 DEP 配置。可以使用脚本机制或 Windows XP SP2 中包含的 Bootcfg.exe 工具直接修改 Boot.ini 文件。

要使用 Boot.ini 文件配置 DEP 以切换到“总是启用”策略,请按照下列步骤操作:
  1. 单击“开始”,右键单击“我的电脑”,然后单击“属性”。
  2. 单击“高级”选项卡,然后单击“启动和故障恢复”字段下的“设置”。
  3. 在“系统启动”字段中,单击“编辑”。在记事本中打开 Boot.ini 文件。
  4. 在记事本中单击“编辑”菜单上的“查找”。
  5. 在“查找内容”框中键入 /noexecute,然后单击“查找下一个”。
  6. 在“查找”对话框中,单击“取消”。
  7. AlwaysOn 替换 policy_level

    警告:请确保输入的文本正确无误。现在,Boot.ini 文件开关应显示为:
    /noexecute=AlwaysOn
  8. 在记事本中单击“文件”菜单上的“保存”。
  9. 单击“确定”两次。
  10. 重新启动计算机。
对于 Windows XP SP2 或更高版本的无人参与安装,可以使用 Unattend.txt 文件预先装入特定的 DEP 配置。可以使用 Unattend.txt 文件 [Data] 部分的 OSLoadOptionsVar 项指定系统范围的 DEP 配置。

按程序进行 DEP 配置

为使程序能够兼容,如果 DEP 设置为“选择禁用”策略级别,则可以有选择地为单个 32 位程序禁用 DEP。具体方法是,使用“系统属性”中的“数据执行保护”选项卡,有选择地为程序禁用 DEP。对于 IT 专业人员,可以使用 Windows XP SP2 中包含的名为 DisableNX 的新程序兼容性修补程序。DisableNX 兼容性修补程序为其应用到的程序禁用数据执行保护。

可使用应用程序兼容性工具包将 DisableNX 兼容性修补程序应用于程序中。有关 Windows 应用程序兼容性的更多信息,请参见以下 Microsoft 网站上的 Windows 应用程序兼容性
http://www.microsoft.com/technet/prodtechnol/windows/appcompatibility/default.mspx
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
912923 如何确定硬件 DEP 可用且已在计算机上配置

参考

有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
899298 Windows Server 2003 Service Pack 1 中的“了解数据执行保护”帮助主题错误地指出 DEP 的默认设置

属性

文章编号: 875352 - 最后修改: 2006年11月17日 - 修订: 14.1
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Service Pack 1?当用于
    • Microsoft Windows Server 2003 Web Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows XP Professional Service Pack 2 (SP2)
  • Microsoft Windows XP Home Edition Service Pack 2 (SP2)
  • Microsoft Windows XP Media Center Edition Service Pack 2 (SP2)
  • Microsoft Windows XP Tablet PC Edition 2005
关键字:?
kbinfo kbtshoot KB875352
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com