Останнім часом уразливості ЦП були в моді, а останніми з’явилися Zenbleed і Downfall. Але наскільки ви повинні хвилюватися?
Останніми роками вразливості ЦП часто з’являються в новинах, і вони часто супроводжуються досить страшним повідомленням, коли йдеться про їх розголошення. У випадку Zenbleed і Падіння, було те, що будь-яка програма на вашому комп’ютері могла отримати доступ до пам’яті будь-якої іншої програми, що виконується за правильних обставин. Звучить інтенсивно, правда?
Однак не все так погано, як здається. Очевидно, що це достатньо важливо, щоб вимагати розкриття інформації та оновлення програмного забезпечення для виправлення помилок, навіть ціною продуктивності, але що саме відбувається, щоб спричинити ці проблеми безпеки? Чи варто хвилюватися?
Чи варто вам турбуватися про такі вразливості ЦП, як Zenbleed, Downfall і Inception?
Чесно кажучи, жоден із цих подвигів не впливає на переважну більшість людей. Хоча вони можуть передавати дані з однієї програми в іншу, будь-яке зловмисне програмне забезпечення на комп’ютері споживача вже має великий рівень доступу, яким воно може зловживати. Натомість ці атаки викликають особливе занепокоєння в контексті хмарних обчислень.
Щоб зрозуміти проблему, потрібно розуміти, що багато різних хмарних серверів є простими комп’ютери з великою потужністю, великою пропускною здатністю мережі та деяким іншим спеціалізованим апаратним забезпеченням вимагається. Багато компаній здають в оренду так званий VPS або віртуальний приватний сервер, який є віртуалізованими машинами з обмеженою потужністю, до яких можуть працювати десятки інших віртуальних машин.
Проблемою може бути те, що одна особа на одній віртуальній машині може виконати один із них уразливості, отримуючи уявлення про те, які дані проходять через процесор, включаючи дані від інших віртуальні машини. Це не повинно бути можливим і є серйозним порушенням безпеки. Ось чому, коли було розкрито Zenbleed, вже були патчі для процесорів AMD Epyc, які спрямовані на використання серверів.
Найбільш серйозні вразливості ЦП на даний момент
Галузевий стандарт «ранжування» вразливостей та їх серйозності здійснюється за допомогою загальної системи оцінки вразливостей (CVSS). Він забезпечує кількісну міру серйозності, оскільки різні аспекти вразливості впливатимуть на оцінку. Він вимірюється, беручи до уваги таке:
- Вектор атаки: мережа/суміжний/локальний/фізичний
- Складність атаки: Низький/Високий
- Потрібні привілеї: Немає/Низький/Високий
- Взаємодія з користувачем: немає/потрібно
- Область застосування: Без змін/Змінено
- Конфіденційність: Немає/Низький/Високий
- Цілісність: Немає/Низький/Високий
- Доступність: Немає/Низький/Високий
Усе це класифікує серйозність помилки. Наприклад, уразливість, яка може бути виконана через мережу з низькою складністю, без привілеїв, без взаємодії з користувачем, зі зміненим обсягом, Високий витік конфіденційності даних, значне порушення цілісності даних і високий вплив на доступність отримають ідеальну 10 у CVSS 3.1, найвищий бал можливо.
За цим показником ми можемо оцінити шкоду, яку здатні завдати Zenbleed і Downfall. Спойлер: вони однакові, хоча впливають на різні процесори. Тому поки вони набирають певну суму в у контексті вразливостей вони можуть вплинути на різну кількість продуктів, але це не вплине на них рахунок. Оцінки CVSS по суті лише для сортування, але не розповідають повну історію.
Zenbleed: 6,5 (середній)
- Вектор атаки: Місцевий
- Складність атаки: Низький
- Потрібні привілеї: Низький
- Взаємодія з користувачем: немає
- Область застосування: Змінено
- Конфіденційність: Високий
- Цілісність: немає
- Доступність: немає
Пояснення: Вектор атаки потребує локального доступу до машини (наприклад, він працює на машині), але також не впливає на цілісність даних на машині чи їх доступність. Однак він змінює область дії (тобто впливає на ресурси, окрім своїх привілеїв) і складність атаки, а привілеї, необхідні для виконання, низькі. Це також повністю порушує конфіденційність інформації на машині.
Падіння: 6,5 (середній)
- Вектор атаки: Місцевий
- Складність атаки: Низький
- Потрібні привілеї: Низький
- Взаємодія з користувачем: немає
- Область застосування: Змінено
- Конфіденційність: Високий
- Цілісність: немає
- Доступність: немає
Пояснення: Вектор атаки потребує локального доступу до машини (наприклад, він працює на машині), але також не впливає на цілісність даних на машині чи їх доступність. Однак він змінює область дії (тобто впливає на ресурси, окрім своїх привілеїв) і складність атаки, а привілеї, необхідні для виконання, низькі. Це також повністю порушує конфіденційність інформації на машині.
Початок: 5,6 (середній)
- Вектор атаки: Місцевий
- Складність атаки: Високий
- Потрібні привілеї: Низький
- Взаємодія з користувачем: немає
- Область застосування: Змінено
- Конфіденційність: Високий
- Цілісність: немає
- Доступність: немає
Пояснення: Вектор атаки потребує локального доступу до машини (наприклад, він працює на машині), але також не впливає на цілісність даних на машині чи їх доступність. Однак він змінює область дії (тобто впливає на ресурси поза межами своїх привілеїв), складність атаки висока, а привілеї, необхідні для виконання, низькі. Це також повністю порушує конфіденційність інформації на машині.
Spectre: 5.6 (середній) (виправлено)
Spectre, незважаючи на те, що він є більш поширеним явищем, насправді отримує бали менше ніж Zenbleed і Downfall. Це завдяки тому, що складність атаки була названа «Високою», що знизило її оцінку.
- Вектор атаки: Місцевий
- Складність атаки: Високий
- Потрібні привілеї: Низький
- Взаємодія з користувачем: немає
- Область застосування: Змінено
- Конфіденційність: Високий
- Цілісність: немає
- Доступність: немає
Пояснення: Вектор атаки потребує локального доступу до машини (наприклад, він працює на машині), але також не впливає на цілісність даних на машині чи їх доступність. Однак він змінює область дії (тобто впливає на ресурси поза межами своїх привілеїв), складність атаки висока, а привілеї, необхідні для виконання, низькі. Це також повністю порушує конфіденційність інформації на машині.
Розпад: 5,6 (середній) (виправлено)
Як і Spectre, Meltdown має нижчі результати, ніж Zenbleed і Downfall, через більшу складність атаки.
- Вектор атаки: Місцевий
- Складність атаки: Високий
- Потрібні привілеї: Низький
- Взаємодія з користувачем: немає
- Область застосування: Змінено
- Конфіденційність: Високий
- Цілісність: немає
- Доступність: немає
Пояснення: Вектор атаки потребує локального доступу до машини (наприклад, він працює на машині), але також не впливає на цілісність даних на машині чи їх доступність. Однак він змінює область дії (тобто впливає на ресурси поза межами своїх привілеїв), складність атаки висока, а привілеї, необхідні для виконання, низькі. Це також повністю порушує конфіденційність інформації на машині.
Найбільша причина: передбачення гілок
Джерело: AMD
Прогнозування розгалужень і спекулятивне виконання в широкому сенсі означають, коли ваш комп’ютер виконує операції, які не потрібні в даний момент, але будуть потрібні в наступних циклах. Це часто робиться, коли у вашій системі є вільні ресурси, оскільки це прискорює загальну обробку, коли в іншому випадку інструкції чи дані ще не були б готові для ЦП. Якщо виконана робота не потрібна, вона зазвичай відкидається, і процесор може повернутися туди, куди йому потрібно, щоб виконати наступну правильну інструкцію. Коли це відбувається, це називається помилковим передбаченням гілки.
Для глибшого розуміння предикторів розгалужень уявіть сценарій, коли програма послідовно додає ті самі два числа під час свого виконання. На якомусь етапі процесор може розпізнати цей шаблон і підготувати наступні кроки, якщо метод, у якому додаються ці два числа, буде викликано знову. Якщо цей результат зміниться в якийсь момент, навіть якщо процесор планував, що ті самі два числа будуть однаковими, тоді припущення буде викинуто та замінено фактичним потоком виконання. Втім, на той час ті цифри є те саме, тоді процесор може швидко пропустити ці інструкції.
Проте існує багато проблем, коли справа доходить до спекулятивного виконання, і результатом цього є такі вразливості, як Spectre, Zenbleed, Downfall тощо. Це потужна функція, якій ми багато в чому завдячуємо продуктивністю сучасного ЦП, але вона є основною ціллю, коли дослідники шукають вразливі місця в ЦП.
Пом'якшення: інгібітор продуктивності
Пом’якшення цих вразливостей є надзвичайно важливим, але проблема полягає в тому, що ці засоби часто негативно впливають на продуктивність. У випадку з останнім Zenbleed від AMD, пом’якшення може спричинити значні накладні витрати на продуктивність.
Причина цього полягає в тому, що єдиний реальний спосіб обійти це — вимкнути або змінити поведінку предиктора розгалужень у ураженому процесорі. Такий самий хіт продуктивності можна знайти в пом’якшенні для падіння Intel, з попередніми звітами про вплив на продуктивність до 39%. Епічні ігри колись знаменито поділився Графіки використання ЦП після виявлення вразливості Meltdown і того, наскільки ці заходи пом’якшення вплинули на використання ЦП компанією. Як і слід було очікувати, спостерігалося значне зростання використання ЦП. Де все стає страшно, так це виправлення для AMD Inception, продуктивність знизилася на 54%.
Оскільки подібні вразливості впливають на фундаментальні для процесора функції, їх важко справді виправити, якщо не відключити або серйозно пошкодити основні функції. Спекулятивне виконання неймовірно важливо, і ці пом’якшення відчують багато людей. Продуктивність в іграх менш передбачувана, тому, якщо ваш комп’ютер використовується в основному в іграх, ви можете бути такими Гаразд, оскільки ваш комп’ютер не може робити стільки прогнозів, але ці проблеми стають набагато більшими системи.
Чи це вплине на майбутні процесори?
На щастя, у випадку Intel Downfall і Zenbleed ці експлойти впливають на старіші процесори. Новіші процесори від обох компаній у безпеці, і зараз немає про що турбуватися. Зазвичай ці проблеми вирішуються значною редизайном. Наприклад, Spectre вплинув на процесори Intel восьмого та дев’ятого поколінь, але дев’яте покоління містило апаратну версію виправлень програмного забезпечення, які були реалізовані, разом із хітом продуктивності. 10-е покоління Intel все ще було безпечним, але також більше не впливало на продуктивність від цих заходів пом’якшення.
Як наслідок, враховуючи, що і Downfall, і Zenbleed уже виправлено в найновіших версіях відповідних процесорів, користувачам нема про що хвилюватися. Звичайно, завжди може бути виявлено більше вразливостей, але на даний момент часу ви в безпеці.