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

Windows

На прошлой неделе были раскрыты детали о найденных крупных аппаратных уязвимостях в процессорах 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).

Читайте также:
Восстановление загрузчика BCD и записи MBR в Windows 10/ 11

Модуль 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 для вашей системы. Если такой прошивки пока нет – нужно как минимум установить обновления безопасности, блокирующей доступ к чужой памяти на уровне ОС.

Читайте также:
Исправление ошибки 0xc0000428 при запуске или установке Windows

Обновления безопасности 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 от уязвимостей Meltdown и Spectre

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

  • Windows 10 1507 – KB4056893 — https://www.catalog.update.microsoft.com/Search.aspx?q=kb4056893
  • Windows 10 1511 – KB4056888 — https://www.catalog.update.microsoft.com/Search.aspx?q=kb4056888
  • Windows 10 1607 – KB4056890 — https://www.catalog.update.microsoft.com/Search.aspx?q=kb4056890
  • Windows 10 1703 – KB4056891 — https://www.catalog.update.microsoft.com/Search.aspx?q=kb4056891
  • Windows 10 1709 — KB4056892 — https://www.catalog.update.microsoft.com/Search.aspx?q=kb4056892
  • Windows 8.1 x86/x64 и Windows Server 2012 R2 (KB4056898): https://www.catalog.update.microsoft.com/Search.aspx?q=KB4056898
  • Windows 7 SP1 x86/x64, Windows Server 2008 R2 и Windows Embedded Standard 7 (KB4056897): https://www.catalog.update.microsoft.com/Search.aspx?q=KB4056897

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

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

Некоторые сторонние антивирусы могут блокировать установку обновлений, закрывающих уязвимости 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

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

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

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

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

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

Читайте также:
Как убрать корзину с рабочего стола или отключить её в Windows

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 и более новых, падение производительности незначительное. Судя по всему, больше всего проблему падения производительности почувствуют пользователи высоконагруженные облачные сервера с высокой плотностью ВМ/сервисов.

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Информационный блог про Windows
Добавить комментарий