На прошлой неделе были раскрыты детали о найденных крупных аппаратных уязвимостях в процессорах Intel, ARM и AMD. Реализация данных уязвимостей позволяет злоумышленнику при локальном доступе к системе получить доступ на чтение данных из привилегированной памяти ядра системы. Обе найденные уязвимости присутствуют в процессорной технологии спекулятивного исполнения команд, позволяющей современным процессорам «предугадывать», какие команды нужно выполнить в дальнейшем, что приводит к общему росту производительности системы.
- Базовая информация об уязвимости Meltdown
- Базовая информация об уязвимости Spectre
- Как проверить, уязвима ли ваша система
- Обновление прошивки
- Обновления безопасности Windows для защиты от уязвимости Meltdown и Spectre
- Что делать, если патч не устанавливается
- Падение производительности системы после установки обновлений защиты от Meltdown и Spectre
Базовая информация об уязвимости 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
В моем случае модуль вернул следующие данные:
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.
- 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
Что делать, если патч не устанавливается
Некоторые сторонние антивирусы могут блокировать установку обновлений, закрывающих уязвимости 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
После перезагрузки нужно попробовать установить обновление еще раз.
Также имеется информация о несовместимости некоторых антивирусов с данными обновлениями, т.к. они обращаются к памяти ядра методом, схожим с Meltdown.
Если обновление не устанавливается с ошибкой 0x80070643, убедитесь, возможно патч уже установлен, либо версия патча не соответствует версии ОС.
В некоторых случаях при установки обновления KB4056894 на Windows 7, система после перезагрузки падает в BSOD с ошибкой 0x000000c4 и перестает грузится. В данном случае поможет только удаление обновления через загрузочный диск/ диск восстановления.
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 и более новых, падение производительности незначительное. Судя по всему, больше всего проблему падения производительности почувствуют пользователи высоконагруженные облачные сервера с высокой плотностью ВМ/сервисов.