Как простому человеку защитить себя?
Если вы не компьютерный гуру и не читаете перед сном SecurityLab,
можете смело выполнить инструкции из этого раздела и спокойно работать.
Для выполнения одного из предложенных решений необходимо скачать файл solutions.zip и/или oledb32.zip и следовать нижеперечисленным инструкциям.
Для быстрого решения проблемы выполните инструкции, описанные в решении #4.
Информация об уязвимости
Уязвимость «нулевого дня» была обнаружена в Internet Explorer
7, и, по результатам исследований присутствует в других версиях
Internet Explorer. Злоумышленник может выполнить произвольный код в
уязвимой системе и установить вредоносные программы на компьютер при
просмотре Web-сайта.
Уязвимость существует из-за повреждения памяти при обработке
связываний DHTML данных (DHTML Data Binding) в Internet Explorer.
Уязвимость распространяется на все поддерживаемые в настоящее время
версии Internet Explorer. Специально сформированный HTML код, который
использует эту уязвимость, приводит к тому, что IE создает массив из
объекта связывания данных. Вредоносный код приводит к тому, что IE
ссылается на объект, который был ранее инициализирован. Этот класс
уязвимости эксплуатируется путем подготовки динамической памяти,
содержащей контролируемые злоумышленником данные (“heap spray”), до
разыменования некорректного указателя.
В настоящее время уязвимость активно используется для установки
вредоносного программного обеспечения через взломанные сайты (ссылки).
Какое временное решение следует использовать?
Сейчас уведомление Microsoft содержит 8 различных вариантов
блокирования уязвимости. Microsoft добавила дополнительные способы
решения проблемы в последней версии уведомления, чтобы дать
пользователям больше возможностей для устранения уязвимости. Только в
IE8 существует возможность полностью отключить механизм связывания
данных. Если вы не используете IE8, вам понадобится следующее:
- заблокировать доступ к уязвимому коду в библиотеке
MSHTML.dll через OLEDB, что позволяет блокировать текущие векторы
использования уязвимости
- применить самую безопасную конфигурацию, блокирующую проблемный код против этой уязвимости
Опциональный вариант (C) может применяться для усложнения контроля злоумышленника над динамической памятью.
Временное решение |
A |
B |
C |
1.
Установить зоны безопасности Internet и Local в значение «High». Это
позволит выводить окно с запросом на выполнение/запрет AсtiveX
компонентов и Active Scripting в этих зонах для каждого сайта. |
|
X |
X |
2.
Настройть Internet Explorer на вывод запроса перед запуском Active
Scripting или отключите Active Scripting в зонах безопасности Internet
и Local. |
|
X |
X |
3. Запретить Internet Explorerиспользовать OLEDB32.dll с помощью Integrity Level ACL |
X |
|
|
4. Запретить функционал Row Position в OLEDB32.dll |
X |
|
|
5. Отменить регистрацию OLEDB32.DLL |
X |
|
|
6. Использовать ACL для запрета OLEDB32.DLL |
X |
|
|
7. Запретить функционал XML Island |
X |
|
|
8. Включить DEP для Internet Explorer на Windows Vista и Windows Server 2008 |
|
|
X |
9. Отключить поддержку связывания данных в Internet Explorer 8 |
X |
X |
|
Применение временного решения из колонки (A) поможет защититься от
настоящих атак. Для полноценной защиты от уязвимости мы также
рекомендует применить решение из колонки (B).
Зачем перечислять 4 вида опций для защиты от вектора атаки, использующего провайдер OLEDB данных?
Давайте кратко обсудим временные решения 3-5, каждый из которых описывает способ защиты от вектора атаки на провайдер OLEDB.
5 & 6 –отменить регистрацию или отключить OLEDB32.DLL через ACL (списки контроля доступа)
Microsoft перечислила эти решения во вчерашнем уведомлении, и они
остаются действительными. У этого решения есть побочное действие. Все
приложения, использующие какую-либо часть библиотеки, не будут
функционировать.
Решение #5
Отмена регистрации OLEDB32.DLL
Для 32-битной системы (Windows 2000, XP, 2003, Vista, 2008) выполните команду:
Regsvr32.exe /u "%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll"
Для 64-битной системы (Windows 2000, XP, 2003, Vista, 2008) выполните команды:
Regsvr32.exe /u "%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll"
Regsvr32.exe /u "%ProgramFiles(x86)%\Common Files\System\Ole DB\oledb32.dll"
Повторная регистрация (отмена временного решения) OLEDB32.DLL в системе
Для 32-битных систем выполните команду:
Regsvr32.exe "%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll"
Для 64-битных систем выполните команды:
Regsvr32.exe "%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll"
Regsvr32.exe "%ProgramFiles(x86)%\Common Files\System\Ole DB\oledb32.dll"
Решение #6
Отключение OLEDB32.DLL с помощью ACL
Скачайте архив solutions.zip и выполните соответствующий файл:
Для 32-битных ОС Windows 2000, XP, 2003
DisableACL-32bit.cmd
Для 64-битных Windows XP и 2003
DisableACL-64bit.cmd
Для 32-битных Windows Vista и Windows 2008
DisableACL-Vista-32bit.cmd
Для 64-битных Windows Vista и Windows 2008
DisableACL-Vista-64bit.cmd
Для отмены временного решения по отключению OLEDB32.DLL с помощью ACL и выполните соответствующий файл:
Для 32-битных ОС Windows 2000, XP, 2003
EnableACL -32bit.cmd
Для 64-битных Windows XP и 2003
EnableACL-64bit.cmd
Для 32-битных Windows Vista и Windows 2008
EnableACL-Vista-32bit.cmd
Для 64-битных Windows Vista и Windows 2008
EnableACL-Vista-64bit.cmd
4 – Отключитьфункционал Row Positionв OLEDB32.dll
По нашим данным, отключение одного COM объекта OLEDB32 достаточно
для блокировки доступа к уязвимой части кода. Хотя мы и указываем
решения 5 и 6 в уведомлении, но решение #4 более предпочтительно, т.к.
также эффективно как решения 5 и 6, но менее заметно.
Для отключения COM объекта OLEDB32 необходимо выполнить следующий reg файл:
DisableRowPosition.reg
Для отмены временного решения выполните файл:
UndoDisableRowPosition.reg
3 - Запретить Internet Explorer использовать OLEDB32.dll с помощью Integrity Level ACL
Это еще одно решение для блокировки доступа к провайдеру OLEDB
данных. Большой плюс этого решения – доступ блокируется только для
Internet Explorer и не затронет другие приложения. Применение этого
решения возможно только, когда включены UAC и IE Protected Mode (по
умолчанию на Windows Vista и Windows Server 2008). Мы более подробно
опишем это решение, т.к. оно достаточно хорошее.
Подробности решения с IntegrityLevelACL
Внимание, это решение применимо только для ОС Windows Vista и выше
Для внедрения этого типа защиты, наше решение базируется на том
факте, что по умолчанию Internet Explorer запускается с включенным
Protected Mode. Это означает, что процесс iexplore.exe запускается на
низком уровне целостности. Подробности работы этого режима можно найти
по адресу: http://msdn.microsoft.com/en-us/library/bb250462.aspx.
Как написано в статье, механизм целостности позволяет заблокировать
процессу возможность записи данных в защищенные объекты (например,
файлы), имеющие более высокий уровень целостности. Но в статье не
указывается, что также возможно запретить процессу читать и выполнять
защищенные объекты с более высоким уровнем целостности. Это
осуществляется путем применения специальной записи ACL для объекта.
Ниже, мы расскажем, как это осуществить для OLEDB32.DLL.
Перед реализацией решения необходимо создать временную директорию и скопировать в нее inf файл из архива oledb32.zip.
Для 32-битной системы используйте BlockAccess_x86.inf, для 64-битной -
BlockAccess_x64.inf. Запустите командную строку с привилегиями
администратора, перейдите в созданную вами директорию и выполните
следующую команду:
>SecEdit /configure /db BlockAccess.sdb /cfg <файл.inf>
При успешном выполнении команды будет выдан следующий результат:
The task has completed successfully.
See log %windir%\security\logs\scesrv.log for detail info.
SecEdit также создаст файл BlockAccess.sdb в текущей директории. Его можно будет удалить вместе с inf файлом.
Проверка работоспособности временного решения
Для 32-битной системы достаточно выполнить команду:
icacls "%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll"
Для 64-битной системы будет нужно выполнить команду icacls дважды:
icacls "%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll"
icacls "%ProgramFiles(x86)%\Common Files\System\Ole DB\oledb32.dll"
Наличие следующей строки в выводе команды icacls свидетельствует об успешном применении временного решения:
Mandatory Label\Medium Mandatory Level:(NW,NR,NX)
Значения NR и NX свидетельствуют об успешном выполнении команды,
отсутствие строки или одного из значений (NR либо NX) говорит о
неуспешно выполненной операции.
Отключение временного решения
Для отмены временного решения необходимо скопировать из архива inf
файл (для 32-битной системы UnblockAccess_x86.inf, и
UnblockAccess_x64.inf для 64-битной), и выполнить команду:
SecEdit /configure /db UnblockAccess.sdb /cfg <файл.inf>
Ссылки:
http://blogs.technet.com/swi/archive/2008/12/12/Clarification-on-the-various-workarounds-from-the-recent-IE-advisory.aspx
http://www.microsoft.com/technet/security/advisory/961051.mspx
http://msdn.microsoft.com/en-us/library/ms531388(vs.85).aspx
http://msdn.microsoft.com/en-us/library/bb250462.aspx
http://blogs.technet.com/swi/attachment/3167803.ashx
http://www.securitylab.ru/vulnerability/364549.php
http://www.securitylab.ru/analytics/364556.php
http://www.securitylab.ru/blog/personal/tecklord/7341.php
|