Здравствуйте, меня зовут Викас Малхотра (Vikas Malhotra), я руководитель программы безопасности в группе по разработке защищенных компьютерных систем Office (TWC). В этой статье мы рассмотрим ряд важных изменений в системе безопасности, связанных с технологией предотвращения выполнения данных (DEP). Эта технология представляет собой один из множества новых уровней комплексной защиты, добавленных в Office 2010.
Для начала я расскажу о принципах работы технологии предотвращения выполнения данных и ее влиянии как на разработчиков, так и на ИТ-специалистов.
Что такое технология предотвращения выполнения данных?
Компонент предотвращения выполнения данных впервые был представлен в ОС Windows XP с пакетом обновления 2 (SP2) и Windows 2003 Server с пакетом обновления 1 (SP1). Дополнительные сведения об этой технологии см. в следующей статье базы знаний Майкрософт.
При запуске программы для нее выделяются страницы памяти. Этим страницам назначается маркер, определяющий возможность их исполнения. Если страница помечена как исполняемая, расположенный по соответствующему адресу в памяти код может выполняться. Выполнение кода со страниц, не помеченных как исполняемые, не допускается. Если технология предотвращения выполнения данных включена, при попытке выполнить код со страницы, не помеченной как исполняемая, вызывается исключение предотвращения, и соответствующий процесс завершается.
Современные вредоносные программы, заражающие компьютер, в первую очередь пытаются внедрить вредоносный код в области памяти, помеченные как доступные для записи и исполняемые. После этого предпринимается попытка запустить такой код. На этом этапе при включенной технологии предотвращения выполнения данных происходит сбой приложения Office. С точки зрения безопасности в этом случае приложение Office предотвращает выполнение потенциально вредоносного кода и автоматически закрывается, чтобы обеспечить защиту компьютера.
Как узнать, работает ли программа в режиме предотвращения выполнения данных?
Самый простой способ заключается в использовании диспетчера задач. Проверьте, отображается ли в окне диспетчера задач столбец "Предотвращение выполнения данных". Для каждого процесса, выполняемого в таком режиме, в этом столбце отображается состояние "Включено". На следующем рисунке показан процесс winword.exe, выполняемый в режиме предотвращения выполнения данных:
Как реализуется предотвращение выполнения данных в приложениях Office?
Чтобы определить политику предотвращения выполнения данных, настроенную на компьютере, загруженные приложения Office вызывают функцию GetSystemDEPPolicy. Этот API-интерфейс возвращает один из следующих результатов и реализует следующее поведение:
- AlwaysOn — приложения Office всегда выполняются в режиме предотвращения выполнения данных. Единственным способом изменить такое поведение является изменение системного файла конфигурации загрузки и перезапуск компьютера.
- AlwaysOff — приложения Office всегда выполняются с отключенным режимом предотвращения выполнения данных. Единственным способом изменить такое поведение является изменение файла конфигурации загрузки системы и перезапуск компьютера.
- OptIn — для каждого приложения Office в центре безопасности можно включить предотвращение выполнения данных (см. соответствующий раздел ниже).
- OptOut — для каждого приложения Office в центре безопасности можно отключить предотвращение выполнения данных (см. соответствующий раздел ниже).
Если определяется, что приложение Office должно выполняться с включенным предотвращением выполнения данных, это приложение вызывает функцию SetProcessDEPPolicy и проверяет, что предотвращение выполнения данных постоянно включено в течение всего срока жизни соответствующего процесса. Это позволяет обеспечить загрузку любых других двоичных файлов в процесс Office в режиме предотвращения выполнения данных.
Какие параметры конфигурации доступны для ИТ-специалистов?
В 64-разрядных системах предотвращение выполнения данных для приложений Office включено всегда. В 32-разрядных системах можно настроить эту технологию на уровне приложений в центре безопасности. Для приложений, поддерживающих режим защищенного просмотра, параметр для настройки предотвращения выполнения данных находится на вкладке "Режим защищенного просмотра". Для всех других приложений Office этот параметр располагается на вкладке "Предотвращение выполнения данных", как показано ниже:
Рисунок. Настройка параметров предотвращения выполнения данных для приложений Office, поддерживающих режим защищенного просмотра
Рисунок. Настройка параметров предотвращения выполнения данных для приложений Office, не поддерживающих режим защищенного просмотра
Если параметр для включения предотвращения выполнения данных в центре безопасности недоступен, это означает, что на компьютере задан параметр AlwaysOn или AlwaysOff.
Настроить эти параметры центра безопасности также можно в шаблонах групповой политики, как показано ниже для приложения Word:
Как предотвращение выполнения данных может повлиять на приложения разработчика?
В большинстве случаев предотвращение выполнения данных не оказывает влияния на код. Однако если в коде реализуется запись на страницы памяти, не помеченные как исполняемые, с последующим выполнением этого кода (такое поведение характерно для компиляторов JIT), возможно несколько вариантов действий. Первый способ заключается в изменении кода и исключении подобного выполнения. Если доступ к исходному коду отсутствует или невозможно получить новую версию надстройки, можно отключить предотвращение выполнения данных, следуя приведенным ранее инструкциям. Кроме того, можно использовать функцию VirtualProtect. Функция VirtualProtect позволяет записывать код на страницы памяти, помеченные для записи и исполнения. После окончания записи можно снять атрибут "Запись". Это позволяет выполнять код в дальнейшем без вызова исключения. Если атрибут "Запись" снят, вредоносные программы не смогут заразить память компьютера.
Как выглядит исключение предотвращения выполнения данных?
В большинстве случаев причиной ошибки предотвращения выполнения данных являются установленные надстройки, а не сами приложения Office. Когда в надстройке возникает исключение предотвращения выполнения данных, работа приложения Office завершается, как при обычном сбое. После перезапуска приложения Office открывается диалоговое окно, аналогичное приведенному ниже:
В этом примере причиной нестабильной работы приложения Office является надстройка "my vc test com add-in". У пользователя есть два варианта действий. Первый — отключить загрузку надстройки, а второй — попытаться повторно загрузить ее. Рекомендуется отключить надстройку, чтобы обеспечить нормальную загрузку приложения Office. После запуска приложения Office следует определить причину отключения надстройки с помощью диспетчера надстроек.
На следующем рисунке показана следующая причина отключения: "Надстройка была отключена пользователем после сбоя предотвращения выполнения данных".
В этом случае рекомендуется отключить надстройку до тех пор, пока не будет доступна новая ее версия с поддержкой предотвращения выполнения данных.
Итак, в наборе Office 2010 реализована встроенная поддержка предотвращения выполнения данных. Эта технология позволяет защитить компьютер, не допуская выполнения вредоносного кода.
|