Яким чином розплавлення і недоліки привидів вплинуть на мій комп'ютер?
Комп'ютерні процесори мають величезний недолік в дизайні, і всі намагаються його виправити. Тільки один з двох отворів безпеки може бути виправлений, а патчі змусять ПК (і Mac) з чіпами Intel повільніше.
Оновлення: Попередня версія цієї статті заявила, що цей недолік був специфічним для чіпів Intel, але це не вся історія. Є насправді два основні вразливості тут, тепер називаються "Meltdown" і "Spectre". Відливання значною мірою стосується процесорів Intel і впливає на всі моделі процесорів за останні кілька десятиліть. Ми додали більше інформації про ці дві помилки, а також про їхню відмінність від статті нижче.
Що таке криза і привид?
Spectre - це "фундаментальний недолік конструкції", який існує в кожному процесорі на ринку, включаючи AMD і ARM, а також Intel. Наразі не існує жодного виправлення програмного забезпечення, і це, ймовірно, вимагатиме повної реконструкції апаратних засобів для центральних процесорів по всій платі - хоча, на щастя, це досить складно, вважають дослідники безпеки. Можна захистити від конкретних атак Spectre, і розробники працюють над цим, але найкращим рішенням буде реконструкція апаратних засобів для всіх майбутніх чіпів.
Meltdown в основному робить Spectre гірше, роблячи основний недолік, який значно полегшує експлуатацію. Це, по суті, додатковий недолік, який впливає на всі процесори Intel, вироблені за останні кілька десятиліть. Це також впливає на деякі високопродуктивні процесори ARM Cortex-A, але це не впливає на чіпи AMD. На сьогоднішній день в операційних системах виправлено кризу.
Але як працюють ці вади?
Програми, запущені на вашому комп'ютері, працюють з різними рівнями дозволів безпеки. Наприклад, ядро операційної системи - ядро Windows або ядро Linux - має найвищий рівень дозволів, оскільки виконує показ. Настільні програми мають менше дозволів, а ядро обмежує їхні можливості. Ядро використовує апаратні функції процесора, щоб допомогти застосувати деякі з цих обмежень, тому що це швидше робити це за допомогою апаратного забезпечення, ніж програмне забезпечення.
Проблема тут полягає в «спекулятивному виконанні». З точки зору продуктивності, сучасні процесори автоматично виконують інструкції, які, на їхню думку, можуть знадобитися для запуску, і, якщо вони цього не роблять, вони можуть просто перемотати назад і повернути систему до попереднього стану. Тим не менш, недолік в Intel і деяких ARM процесорів дозволяє процесам запускати операції, які вони, як правило, не можуть працювати, як операція виконується до процесора турбує, щоб перевірити, чи має він мати дозвіл на запуск його чи ні. Це помилка Meltdown.
Основна проблема як з Meltdown, так і з Spectre лежить в кеші процесора. Програма може спробувати прочитати пам'ять і, якщо вона читає щось у кеші, операція завершиться швидше. Якщо він намагається прочитати щось не в кеші, він завершиться повільніше. Програма може побачити, чи щось завершиться швидко або повільно, і, незважаючи на те, що все інше під час спекулятивного виконання очищається і стирається, час, необхідний для виконання операції, не може бути приховано. Потім вона може використовувати цю інформацію для побудови карти будь-якої пам'яті комп'ютера, за один раз. Кешування прискорює ситуацію, але ці атаки використовують цю оптимізацію і перетворюють її на дефект безпеки.
Таким чином, у найгіршому випадку, JavaScript-код, запущений у вашому веб-браузері, може ефективно читати пам'ять, до якої він не повинен мати доступу, наприклад, приватну інформацію, що зберігається в інших програмах. Особливо ризикують хмарні постачальники, такі як Microsoft Azure або Amazon Web Services, які розміщують програмне забезпечення різних компаній на різних віртуальних машинах на одному апаратному забезпеченні. Програмне забезпечення однієї людини може, теоретично, шпигувати за речами в віртуальній машині іншої компанії. Це розрив у розподілі між додатками. Патчі для Meltdown означає, що ця атака не буде так легко зняти. На жаль, переведення цих додаткових перевірок на місце означає, що деякі операції будуть більш повільними на відповідних пристроях.
Розробники працюють над виправленнями програмного забезпечення, які ускладнюють виконання Spectre-атак. Наприклад, нова функція Google Chrome для ізоляції сайтів допомагає захиститись від цього, і Mozilla вже зробила деякі швидкі зміни в Firefox. Корпорація Майкрософт також внесла певні зміни, щоб захистити Edge і Internet Explorer у доступній тепер Windows Update.
Якщо ви зацікавлені в глибоких деталях низького рівня про Meltdown і Spectre, прочитайте технічне пояснення від команди Project Zero від Google, яка виявила помилки в минулому році. Більш детальна інформація також доступна на сайті MeltdownAttack.com.
Скільки повільніше буде мій комп'ютер??
Оновлення: 9 січня корпорація Microsoft оприлюднила деяку інформацію про продуктивність патча. Згідно з даними Microsoft, Windows 10 на комп'ютерах з епохами 2016 року з Skylake, Kabylake або новими процесорами Intel демонструють «однозначні уповільнення», яких більшість користувачів не повинні помічати. Windows 10 на комп'ютерах з епохами 2015 року з Haswell або старшим процесором може спостерігати значне уповільнення, і Microsoft "очікує, що деякі користувачі помітять зниження продуктивності системи".
Користувачам Windows 7 і 8 не пощастило. Корпорація Майкрософт стверджує, що "очікують більшості користувачів помітити зниження продуктивності системи" при використанні Windows 7 або 8 на ПК з епохами 2015 року з Haswell або старшим процесором. Windows 7 і 8 не тільки використовують старі процесори, які не можуть ефективно працювати з патчем, але й "Windows 7 і Windows 8 мають більше переходів ядра користувача через застарілі дизайнерські рішення, такі як перегляд усіх шрифтів у ядрі" , і це також уповільнює роботу.
Майкрософт планує виконати свої власні орієнтири та випустити більш детальну інформацію в майбутньому, але ми не знаємо точно, наскільки патч Meltdown поки що вплине на використання ПК. Dave Hansen, розробник ядра Linux, який працює в Intel, спочатку писав, що зміни, внесені в ядро Linux, вплинуть на все. За його словами, більшість робочих навантажень спостерігається уповільненням на одну цифру. Найгірший сценарій - 30% уповільнення тестування мереж, тому воно змінюється від завдання до завдання. Це номери для Linux, тому вони не обов'язково стосуються Windows. Виправлення сповільнює системні виклики, тому завдання з великою кількістю системних викликів, таких як компіляція програмного забезпечення та запуску віртуальних машин, швидше за все, будуть сповільнюватися. Але кожна частина програмного забезпечення використовує деякі системні виклики.
Оновлення: Станом на 5 січня, TechSpot і Guru3D виконали деякі тести для Windows. Обидва сайти прийшли до висновку, що користувачі настільних ПК не мають чого турбуватися. Деякі комп'ютерні ігри бачать невелике уповільнення на 2% з виправленнями, які знаходяться в межах похибки, тоді як інші виглядають однаково. 3D-рендерінг, програмне забезпечення для продуктивності, засоби стиснення файлів і утиліти шифрування виглядають незмінними. Проте тести для читання та запису файлів показують помітні відмінності. Швидкість швидкого читання великої кількості невеликих файлів скоротилася приблизно на 23% у тестах Techspot, і Guru3D виявив щось подібне. З іншого боку, Tom's Hardware знайшов лише 3,21% середнього падіння продуктивності за допомогою тесту на зберігання прикладних програм, і стверджував, що «синтетичні тести», що показують більш значні падіння швидкості, не представляють реального використання.
Комп'ютери з процесором Intel Haswell або більш новими мають функцію PCID (ідентифікатори контексту процесу), яка допомагає ефективно виконувати виправлення. Комп'ютери зі старими процесорами Intel можуть спостерігатися більшого зниження швидкості. Наведені вище тести були виконані на сучасних процесорах Intel з PCID, тому незрозуміло, як будуть працювати старі процесори Intel.
Intel каже, що уповільнення "не повинно бути значним" для середнього користувача комп'ютера, і поки що це виглядає вірно, але деякі операції бачать уповільнення. Для хмари, Google, Amazon і Microsoft в основному сказали те ж саме: для більшості навантажень вони не бачили значного впливу продуктивності після розгортання патчів. Корпорація Майкрософт сказала, що «невеликий набір клієнтів [Microsoft Azure] може мати певний вплив на продуктивність мережі». Ці заяви залишають місце для деяких робочих навантажень, щоб побачити значне уповільнення. Epic Games звинувачували патч Meltdown, що викликав проблеми з сервером у своїй грі Fortnite і розмістив графік, що показує величезне збільшення використання процесора на своїх хмарних серверах після встановлення патча.
Але одне є чітке: Ваш комп'ютер, безумовно, не стає швидше з цим виправленням. Якщо у вас є процесор Intel, він може отримати лише повільніше, навіть якщо він невеликий.
Що мені потрібно робити?
Деякі оновлення для виправлення проблеми Meltdown вже доступні. Корпорація Майкрософт випустила аварійне оновлення для підтримуваних версій Windows за допомогою Windows Update 3 січня 2018 року, але вона ще не зробила це на всіх ПК. Windows Update, що вирішує проблему розплавлення і додає деякі захисти від Spectre, називається KB4056892.
Apple вже виправлено проблему з macOS 10.13.2, випущеної 6 грудня 2017 року. Chromebook з Chrome OS 63, який був випущений в середині грудня, вже захищений. Також доступні виправлення для ядра Linux.
Окрім того, перевірте, чи на вашому комп'ютері є оновлення BIOS / UEFI. Поки оновлення Windows виправило проблему Meltdown, оновлення мікрокоду CPU від Intel, що постачаються через оновлення UEFI або BIOS, необхідні для повного захисту від одного з атак Spectre. Ви також повинні оновити свій веб-браузер, як звичайно, тому що браузери також додають деякі захисти до Spectre.
Оновлення: 22 січня корпорація Intel оголосила про те, що користувачі повинні припинити розгортання початкових оновлень прошивки UEFI через «перезавантаження, що перевищує очікуване, та інші непередбачувані поведінки системи». Корпорація Intel сказала, що потрібно дочекатися остаточного виправлення прошивки UEFI, яке було належним чином перевірено і не призведе до системних проблем. Станом на 20 лютого, Intel випустила стабільні оновлення мікрокоду для Skylake, Kaby Lake і Coffee Lake - це 6-а, 7-а і 8-а покоління платформ Intel Core. Виробники ПК повинні розпочати розгортання нових оновлення мікропрограм UEFI.
Хоча погана ефективність звучить погано, ми настійно рекомендуємо встановити ці виправлення. Розробники операційних систем не роблять таких масштабних змін, якщо це не буде дуже поганою помилкою з серйозними наслідками.
Відповідне виправлення програмного забезпечення дозволить виправити дефект Meltdown, і деякі виправлення програмного забезпечення можуть допомогти пом'якшити недолік Spectre. Але Spectre, ймовірно, продовжуватиме впливати на всі сучасні процесори, принаймні в певному вигляді, доки не буде випущено нове обладнання для його виправлення. Незрозуміло, як виробники вирішуватимуть це, але тим часом все, що ви можете зробити, це продовжити використання комп'ютера і приймати заспокоєння в тому, що Spectre є більш складним для експлуатації, а дещо більше - для хмарних обчислень настільних ПК.
Зображення: Intel, VLADGRIN / Shutterstock.com.