Защита Windows от уязвимостей Meltdown и Spectre

На прошлой неделе были раскрыты детали о найденных крупных аппаратных уязвимостях в процессорах Intel, ARM и AMD. Реализация данных уязвимостей позволяет злоумышленнику при локальном доступе к системе получить доступ на чтение данных из привилегированной памяти ядра системы. Обе найденные уязвимости присутствуют в процессорной технологии спекулятивного исполнения команд, позволяющей современным процессорам «предугадывать», какие команды нужно выполнить в дальнейшем, что приводит к общему росту производительности системы.

Базовая информация об уязвимости Meltdown

Уязвимость Meltdown ( CVE-2017-5754 ) затрагивает только процессоры Intel и ARM (процессоры AMD уязвимости не подвержены).

Реализация уязвимости Meltdown позволяет нарушить изоляцию между пользовательскими приложениями и ядром ОС. Атакующий может получить доступ к защищенным данным, обрабатывающимся ядром ОС. Данной уязвимости подвержены практически все модели процессоров Intel, выпущенные за последние 13 лет (кроме процессоров Intel Itanium и Intel Atom до 2013 года)

Базовая информация об уязвимости Spectre

Уязвимость Spectre ( CVE-2017-5753 и CVE-2017-5715 ). Данная уязвимость присутствует как на процессорах Intel с ARM, так и AMD. При реализации уязвимости из одной программы можно получить доступ к памяти другой программы или сервиса (украсть пароли, персональные данные и т.д.). Реализовать атаку через уязвимость Spectre намного сложнее, чем через Meltdown, но, соответственно, и защитится от нее сложнее.

Как проверить, уязвима ли ваша система

Microsoft выпустила специальный Powershell модуль SpeculationContro l для тестирования наличия процессорной уязвимости в вашей системе (проверяется как наличие обновления прошивки BIOS/firmware, так и патча для Windows).

Модуль SpeculationControl можно установить через менеджер пакетов из галереи Powershell:

Save-Module -Name SpeculationControl -Path c:tmpSpeculationControl
Install-Module -Name SpeculationControl

Или скачать в виде zip архива с TechNet .

$SaveExecutionPolicy = Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned -Scope Currentuser
Import-Module .SpeculationControl.psd1
Get-SpeculationControlSettings

В моем случае модуль вернул следующие данные:

Speculation control settings for CVE-2017-5715 [branch target injection]
Hardware support for branch target injection mitigation is present: False
Windows OS support for branch target injection mitigation is present: False
Windows OS support for branch target injection mitigation is enabled: False
Speculation control settings for CVE-2017-5754 [rogue data cache load]
Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: False
Windows OS support for kernel VA shadow is enabled: False
Suggested actions
* Install BIOS/firmware update provided by your device OEM that enables hardware support for the branch target injection mitigation.
* Install the latest available updates for Windows with support for speculation control mitigations.
* Follow the guidance for enabling Windows Client support for speculation control mitigations described in https://support.microsoft.com/help/4073119
BTIHardwarePresent : False
BTIWindowsSupportPresent : False
BTIWindowsSupportEnabled : False
BTIDisabledBySystemPolicy : False
BTIDisabledByNoHardwareSupport : False
KVAShadowRequired : True
KVAShadowWindowsSupportPresent : False
KVAShadowWindowsSupportEnabled : False
KVAShadowPcidEnabled : False

Как вы видите, в данном случае компьютер уязвим и к Meltdown (CVE-2017-5754), и к Spectre (CVE-2017-5715). Отсутствуют как аппаратное обновление прошивки, так и для патч Windows.

Не забудьте вернуть политику исполнения PowerShell на изначальную:
Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

Обновление прошивки

Т.к. проблема связана с аппаратным обеспечением, в первую очередь необходимо проверить сайт вендора вашего устройства на наличие обновления прошивки BIOS/firmware для вашей системы. Если такой прошивки пока нет – нужно как минимум установить обновления безопасности, блокирующей доступ к чужой памяти на уровне ОС.

Обновления безопасности Windows для защиты от уязвимости Meltdown и Spectre

Microsoft довольно оперативно опубликовала обновления безопасности, которые должны защитить операционную систему Windows от реализации атак через уязвимости Meltdown и Spectre.

Были выпущены обновления как для Windows 10, так и для Windows 7 / Windows Server 2008 R2 (KB4056897 ) и Windows 8.1/ Windows Server 2012 R2 (KB4056898).

Обновления должны автоматически установиться на компьютере через Windows Update / WSUS.

Для ручного скачивания и установки обновления , можно воспользоваться следующими ссылками на каталог обновлений Windows Update.

Что делать, если патч не устанавливается

Некоторые сторонние антивирусы могут блокировать установку обновлений, закрывающих уязвимости Meltdown и Spectre. В этом случае рекомендуется в ветке реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionQualityCompat найти ключ cadca5fe-87d3-4b96-b7fb-a231484277cc , изменить его значение на 0 и перезагрузить компьютер.

reg add “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionQualityCompat” /v cadca5fe-87d3-4b96-b7fb-a231484277cc /t REG_DWORD /d 0 /f

После перезагрузки нужно попробовать установить обновление еще раз.

Также имеется информация о несовместимости некоторых антивирусов с данными обновлениями, т.к. они обращаются к памяти ядра методом, схожим с Meltdown.

Если обновление не устанавливается с ошибкой 0 x80070643 , убедитесь, возможно патч уже установлен, либо версия патча не соответствует версии ОС.

В некоторых случаях при установки обновления KB4056894 на Windows 7, система после перезагрузки падает в BSOD с ошибкой 0 x000000 c4 и перестает грузится . В данном случае поможет только удаление обновления через загрузочный диск/ диск восстановления.

dir d:
dism /image:d: /remove-package/packagename:Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24002.1.4 /norestart

Падение производительности системы после установки обновлений защиты от Meltdown и Spectre

По имеющейся информации данные обновления Windows уменьшают общую производительность системы на 5-30% в зависимости от версии процессора и используемого ПО. Также отмечается увеличение температуры CPU. Связано это с тем, что существенно изменяется схема работы ядра Windows с памятью. Так замедляются вызовы со сменой уровня привилегий — системным вызовам приходится дополнительно переключаться на другую таблицу страниц, описывающую всю память ядра ОС

Временно отключить защиту можно изменив следующие ключи реестра:

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

Включить защиту:

reg add “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management” /v FeatureSettingsOverride /t REG_DWORD /d 0 /f
reg add “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management” /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

По информации от Intel, на процессорах Skylake и более новых, падение производительности незначительное. Судя по всему, больше всего проблему падения производительности почувствуют пользователи высоконагруженные облачные сервера с высокой плотностью ВМ/сервисов.

admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago