Захист Windows від вразливостей Meltdown і Spectre

Минулого тижня були розкриті деталі про знайдені великих апаратних вразливості в процесорах 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

У моєму випадку модуль повернув наступні дані:

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.

Не забудьте повернути політику виконання на початкову:
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 і перестає вантажиться. В даному випадку допоможе тільки видалення поновлення через завантажувальний диск / диск відновлення (за аналогією з цією статтею).

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