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