Безопасность IE8: технология защиты памяти DEP (NX)

Источник: thevista

Компания Microsoft мало-помалу начала делиться технологиями защиты информации, используемыми в новой версии веб-браузера Internet Explorer 8. Сегодня речь пойдет о технологии DEP (абб. от Data Execution Protection).

Привет, я Эрик Лоуренс (Eric Lawrence) из команды Internet Explorer Security. С началом конференции по безопасности RSA, начавшейся на прошлой неделе, я хотел бы начать делиться информацией о функциях и преимуществах безопасности в Internet Explorer 8 Beta 1.

В течение последующих недель мы в деталях поговорим об улучшениях в безопасности Beta 1, таких как новый Safety Filter, управление элементами ActiveX и новые функции AJAX для создания более безопасных mashup (XDomainRequest и XDM). Это далеко не весь перечень функций, запланированных для финальной версии, поэтому о них мы более детально поговорим по мере выхода новых бета-версий.

Функции безопасности Internet Explorer 8 ориентированы на три основных источника уязвимостей в безопасности: социальная инженерия, интернет-серверы и уязвимости в самих браузерах. Данная статья будет посвящена технологии Data Execution Prevention (DEP) в IE8 - функции, которая призвана заблокировать потенциальные уязвимости в браузере.

Технология защиты памяти DEP (NX) в Internet Explorer 8
В Internet Explorer 7 в Windows Vista была впервые представлена (выключенная по умолчанию) функция защиты памяти, которая помогала избегать атаки из Интернета. Эта функция также известна как Data Execution Prevention (DEP) или No-Execute (NX). В Internet Explorer 8 в Windows Server 2008 и Windows Vista SP1 данная функция будет по умолчанию включена.

DEP помогает избежать атак путем предотвращения запуска кода, размещенного в участке памяти, помеченном как неисполняемый. DEP в комбинации с другими технологиями, какASLR, делает процесс использования взломщиками разнообразных уязвимостей, связанных с памятью (например, переполнение буфера) намного более сложным. Лучше всего данная технология работает для Internet Explorer и для загружаемых аддонов. Для обеспечения всех этих функций безопасности от пользователя не требуется никаких дополнительных действий и никаких запросов ему показано не будет.

Совместимость DEP (NX)
В Internet Explorer 7 по причинам совместимости DEP по умолчанию был отключен. Несколько популярных аддонов были несовместимы с DEP и могли вызвать завершение работы Internet Explorer при включенном DEP. Чаще всего проблема состояла в том, что эти дополнения были скомпилированы с использованием старой библиотеки ATL. До версии 7.1 SP1 ATL полагалась на динамически сгенерированный код, который несовместим с DEP. И хотя большинство разработчиков популярных аддонов уже выпустили обновленные для DEP версии, некоторые могут быть не обновлены до выхода Internet Explorer 8.

К счастью новые DEP API были добавлены в Windows Server 2008 и Vista SP1, чтобы позволить использование DEP, сохраняя совместимость со старыми версиями ATL. Новые API позволяют Internet Explorer использовать DEP, при этом старые аддоны, использующие старые версии ATL, не станут причиной завершения работы Internet Explorer.

В редких случаях, когда дополнение несовместимо с DEP по какой-либо иной причине, отличной от использования старой версии ATL, опция в групповых политиках позволит организациям выключать DEP для Internet Explorer до тех пор, пока обновленная версия дополнения не будет развернута. Локальные администраторы могут контролировать использование DEP, запустив Internet Explorer как администраторы и выключив опцию защиты памяти.

Проверка состояния вашей безопасности
Увидеть, какие именно процессы в Windows Vista защищены DEP, вы можете во вкладке диспетчера задач. Для более ранних версий Windows вы можете использовать Process Explorer. В обоих случаях проверьте, чтобы была отмечена опция Data Execution Prevention в выборе отображаемых колонок.

Призыв к действию для разработчиков
Если вы являетесь разработчиком различного рода дополнений для Internet Explorer, то вы уже сегодня можете убедиться в том, что ваши пользователи смогут спокойно обновиться до IE8. Для этого нужно лишь:

  • Если ваш код зависит от старой версии ATL, то перекомпилируйте ваше дополнение с использованием ATL v7.1 SP1 или более поздней версии. В комплект поставки Visual Studio 2005 входит ATL 8.0.
  • Установите связывающую ссылку /NXCompat для индикации того, что ваше дополнение совместимо с DEP.
  • Проверьте ваш код на совместимость с DEP, используя IE8 Beta 1 в Windows Vista SP1 или IE7 в Windows Vista после включения DEP.
  • Включите в ваш код другие доступные методы защиты типа защиты стека (/GS), безопасной обработки ошибок (/SafeSEH), и ASLR (/DynamicBase).

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=22936