Защита 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 модуль SpeculationControl для тестирования наличия процессорной уязвимости в вашей системе (проверяется как наличие обновления прошивки BIOS/firmware, так и патча для Windows).

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

Save-Module -Name SpeculationControl -Path c:\tmp\SpeculationControl
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

Get-SpeculationControlSettings

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

Не забудьте вернуть политику исполнения на изначальную:
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 10 1709 обновление kb4056892

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

патчи windows против уязвимостей meltdown и spectre

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

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

reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat” /v cadca5fe-87d3-4b96-b7fb-a231484277cc /t REG_DWORD /d 0 /f

cadca5fe-87d3-4b96-b7fb-a231484277cc

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

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

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

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

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_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

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

reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management” /v FeatureSettingsOverride /t REG_DWORD /d 0 /f
reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management” /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

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


Предыдущая статья Следующая статья


Комментариев: 39 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)