Подробное описание функции предотвращения выполнения данных, входящей в состав Windows XP с пакетом обновлений 2 (SP2), Windows XP Tablet PC Edition 2005 и Windows Server 2003

Переводы статьи Переводы статьи
Код статьи: 875352 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Предотвращение выполнения данных (Data Execution Prevention, DEP) – это набор программных и аппаратных технологий, позволяющих выполнять дополнительные проверки содержимого памяти и предотвращать запуск вредоносного кода. В операционных системах Windows XP с пакетом обновлений 2 (SP2) и Microsoft Windows XP Tablet PC Edition 2005 функция DEP реализована как на программном, так и на аппаратном уровне.

Основным преимуществом функции DEP является возможность предотвращения запуска вредоносного кода из области данных. Как правило, содержимое стека и кучи по умолчанию не является исполняемым кодом. При аппаратной реализации функция DEP вызывает исключение при запуске кода из указанных местоположений. Функция DEP, реализованная на программном уровне, предотвращает использование вредоносными программами механизма обработки исключений, существующего в Windows.

Введение

В данной статье описывается функция DEP, входящая в состав Windows XP с пакетом обновлений 2 (SP2) и Microsoft Windows Server 2003 с пакетом обновлений 1 (SP1). При этом рассматриваются следующие вопросы:

Дополнительная информация

Аппаратная реализация DEP

При использовании аппаратной реализации DEP все области памяти процесса помечаются как области, не содержащие исполняемого кода, если иное не указано явным образом. Существуют атаки, основанные на помещении исполняемого кода в области памяти, не содержащие исполняемого кода, и последующем запуске этого кода. Функция DEP предотвращает подобные атаки, перехватывая их и вызывая исключение.

При аппаратной реализации функция DEP использует возможности процессора, чтобы отметить определенные области памяти специальным атрибутом, показывающим, что из этих областей не может запускаться код. DEP работает на уровне страниц виртуальной памяти и, как правило, отмечает какую-либо страницу памяти, изменяя один бит элемента таблицы страниц (PTE).

Особенности аппаратной реализации DEP и метод пометки страниц виртуальной памяти, используемый этой функцией, зависят от архитектуры процессора. Процессоры, поддерживающие DEP, могут вызывать исключение при запуске кода со страницы памяти, помеченной соответствующим атрибутом.

Компании Advanced Micro Devices (AMD) и Intel поставляют совместимые с Windows процессоры, поддерживающие функцию DEP.

Начиная с пакета обновления 2 (SP2) для Windows XP 32-разрядная версия Windows использует один из следующих методов.
  • Функцию no-execute page-protection (NX), разработанную компанией AMD.
  • Функцию Execute Disable Bit (XD), разработанную компанией Intel.
Чтобы использовать указанные функции, необходимо, чтобы процессор работал в режиме расширения физических адресов (Physical Address Extension, PAE). Windows автоматически включает режим PAE для поддержки функции DEP, поэтому пользователям не нужно отдельно включать PAE путем указания параметра /PAE в файле boot.ini.

Примечание. Поскольку 64-разрядные ядра поддерживают технологию расширения окна адресации (Address Windowing Extension, AWE), в 64-разрядных версиях Windows отсутствует отдельное ядро PAE.
Для получения дополнительных сведений о PAE и AWE в Windows Server 2003 щелкните следующий номер статьи базы знаний Майкрософт:
283037 Поддержка памяти большого размера в Windows Server 2003 и Windows 2000

Программная реализация DEP

В пакете обновления 2 (SP2) для Windows XP реализованы дополнительные механизмы проверки, позволяющие предотвращать выполнение данных. Эти проверки, известные как «программная реализация DEP», разработаны для предотвращения работы вредоносных программ, использующих особенности механизма обработки исключений в Windows. При программной реализации функция DEP может работать на компьютере с любым процессором, поддерживающим Windows XP с пакетом обновления 2 (SP2). Программно реализованная DEP по умолчанию защищает только отдельные системные файлы и не зависит от поддержки процессором аппаратной реализации DEP.

Преимущества

Основным преимуществом, которое предоставляет функция DEP, является возможность предотвратить запуск кода из областей данных (таких как куча, стек или пул памяти). Как правило, содержимое стека и кучи по умолчанию не является исполняемым кодом. При аппаратной реализации функция DEP вызывает исключение при запуске кода из указанных местоположений. Если исключение остается необработанным, то процесс останавливается. В режиме ядра исполнение кода, находящегося в защищенной памяти, вызывает появление стоп-ошибки.

Функция DEP позволяет отразить целый класс атак. В частности, DEP позволяет блокировать вредоносные программы, в результате работы которых вирус помещает в процесс дополнительный код, а затем пытается выполнить этот код. В системах, поддерживающих функцию DEP, выполнение такого кода вызывает исключение. Функция DEP, реализованная на программном уровне, блокирует программы, которые пытаются воспользоваться механизмом обработки исключений, существующим в Windows.

Настройка DEP на уровне системы

Настройка DEP на уровне системы определяется параметрами в файле Boot.ini. Пользователи, обладающие правами администратора, могут изменять параметры DEP с помощью диалогового окна Система панели управления.

Windows поддерживает четыре варианта настройки DEP на уровне системы. Во всех этих вариантах может использоваться как программная, так и аппаратная реализация DEP.
Свернуть эту таблицуРазвернуть эту таблицу
НастройкаОписание
OptInДанное значение используется по умолчанию. На компьютерах, оснащенных процессорами с поддержкой DEP, функция DEP включена по умолчанию для ограниченного числа системных файлов и программ. При этом по умолчанию защищаются только системные файлы Windows.
OptOutПо умолчанию функция DEP включена для всех процессов. В диалоговом окне Система панели управления можно вручную создать список приложений, для которых следует отключить DEP. Специалисты по информационным технологиям могут воспользоваться пакетом средств обеспечения совместимости приложений (Application Compatibility Toolkit), чтобы отключить функцию DEP для одной или нескольких программ. При этом вступают в силу исправления, обеспечивающие совместимость программ, для функции DEP.
AlwaysOnФункция DEP включается для всей системы. Все процессы работают с выполнением проверок DEP. В этом режиме нельзя отключить функцию DEP для отдельных приложений. Исправления, обеспечивающие совместимость программ, для функции DEP в силу не вступают. Программы, для которых с помощью пакета средств обеспечения совместимости приложений было отключено использование функции DEP, также работают с выполнением проверок DEP.
AlwaysOffФункция DEP отключена для всей системы, независимо от наличия аппаратной поддержки DEP. Процессор не работает в режиме PAE, если в файле Boot.ini не указан параметр /PAE.
Настройка функции DEP осуществляется схожим образом как при программной, так и при аппаратной реализации. Если на уровне системы для функции DEP выбран режим OptIn, то основные программы и файлы Windows будут защищены как программной, так и аппаратной реализацией DEP. Если система не может использовать аппаратную реализацию DEP, то указанные программы и файлы Windows будут защищены только программной реализацией DEP.

Аналогично, если на уровне системы для функции DEP выбран режим OptOut, программы, для которых отключена функция DEP, не будут защищены ни программной, ни аппаратной реализацией данной функции.

Параметры, указываемые в файле Boot.ini, выглядят следующим образом:
/noexecute=уровень_политики
Примечание. Уровень_политики может принимать значения AlwaysOn, AlwaysOff, OptIn и OptOut.

При установке пакета обновления 2 (SP2) для Windows XP текущие значения параметра /noexecute, указанные в файле Boot.ini, не изменяются. Эти значения также не изменяются при переносе образа операционной системы Windows на другой компьютер независимо от наличия на нем аппаратной поддержки DEP.

Во время установки Windows XP с пакетом обновлений 2 (SP2) и Windows Server 2003 с пакетом обновлений 1 (SP1) или более поздней версии по умолчанию включается режим OptIn, если иное не предусмотрено параметрами автоматической установки. Если параметр /noexecute=уровень_политики отсутствует в файле Boot.ini для версии Windows, поддерживающей DEP, то система ведет себя так, как если бы был включен режим /noexecute=OptIn.

Пользователи, обладающие правами администратора, могут вручную выбирать для функции DEP режим OptIn или OptOut с помощью вкладки Предотвращение выполнения данных в окне Свойства системы. Чтобы вручную установить на компьютере нужный режим работы DEP, выполните следующие действия:
  1. Нажмите кнопку Пуск, выберите Выполнить, введите команду sysdm.cpl и нажмите кнопку ОК.
  2. На вкладке Дополнительно в группе Быстродействие нажмите кнопку Параметры.
  3. Перейдите на вкладку Предотвращение выполнения данных и воспользуйтесь одним из следующих способов.
    • Выберите параметр Включить DEP только для основных программ и служб Windows, чтобы включить режим OptIn.
    • Выберите параметр Включить DEP для всех программ и служб, кроме выбранных ниже, чтобы включить режим OptOut, и нажмите кнопку Добавить, чтобы сформировать список программ, для которых функция DEP действовать не должна.
  4. Дважды нажмите кнопку ОК.
Специалисты по информационным технологиям могут изменять настройку DEP на уровне системы с помощью различных способов. Изменения в файл Boot.ini можно вносить напрямую с помощью сценариев, а также с помощью программы Bootcfg.exe, входящей в состав пакета обновления 2 (SP2) для Windows XP.

Чтобы установить для функции DEP политику AlwaysOn с помощью файла Boot.ini, выполните следующие действия:
  1. В меню Пуск щелкните правой кнопкой мыши значок Мой компьютер и выберите пункт Свойства.
  2. Откройте вкладку Дополнительно и нажмите кнопку Параметры в области Загрузка и восстановление.
  3. В области Загрузка операционной системы нажмите кнопку Правка. В окне программы «Блокнот» будет открыт файл Boot.ini.
  4. В «Блокноте» выберите в меню Правка команду Найти.
  5. В поле Найти введите /noexecute и нажмите кнопку Найти далее.
  6. В окне Найти нажмите кнопку Отмена.
  7. Замените policy_level на AlwaysOn.

    Внимание! При вводе текста будьте внимательны. Теперь параметр файла Boot.ini должен выглядеть так:
    /noexecute=AlwaysOn
  8. В программе «Блокнот» в меню Файл выберите команду Сохранить.
  9. Дважды нажмите кнопку ОК.
  10. Перезагрузите компьютер.
При автоматической установке Windows XP с пакетом обновления 2 (SP2) или более поздней версии конфигурацию DEP можно предварительно указать в файле Unattend.txt. Требуемый режим DEP указывается в качестве значения параметра OSLoadOptionsVar, находящегося в разделе [Data] файла Unattend.txt.

Настройка DEP для отдельных приложений

Режим OptOut позволяет в целях обеспечения совместимости программ отключить функцию DEP для отдельных 32-разрядных приложений. Чтобы это сделать, воспользуйтесь вкладкой Предотвращение выполнения данных окна Свойства системы. Для специалистов по информационным технологиям в состав пакета обновления 2 (SP2) для Windows XP включено исправление DisableNX, обеспечивающее совместимость приложений. Применение данного исправления к какому-либо приложению отключает использование функции DEP для этого приложения.

Чтобы применить к программе исправление DisableNX, необходимо воспользоваться пакетом средств обеспечения совместимости приложений. Дополнительные сведения о совместимости приложений с Windows см. в разделе Совместимость приложений с Windows на следующем веб-сайте Майкрософт:
http://technet.microsoft.com/ru-ru/windows//aa905066.aspx
Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
912923 Как убедиться, что аппаратная функция DEP доступна и настроена на компьютере

Ссылки

Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
899298 В разделе справки «Общие сведения о предотвращении выполнения данных» неверно устанавливается параметр по умолчанию для DEP в Windows Server 2003 с пакетом обновления 1 (SP1)
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 875352 - Последний отзыв: 10 июня 2013 г. - Revision: 1.1
Информация в данной статье относится к следующим продуктам.
  • Microsoft Windows Server 2003 Service Pack 1 на следующих платформах
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
Ключевые слова: 
kbtshoot kbinfo KB875352

Отправить отзыв

 

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