Чи Hyper-Threading є основним ризиком для безпеки?

Чи Hyper-Threading є основним ризиком для безпеки?

З тих пір, як Intel представила Hyper-Threading (відома як "Симетричний багатопотоковий"), дебати про те, чи відключити цю функцію, майже повністю обертаються навколо його впливу на продуктивність. Назад, коли функція дебютувала, було незвично, якщо програми неправильно тлумачать те, що означало, що система має віртуальний процесорний ядро ​​на відміну від другого фізичного чіпа (тоді тоді це було одним ядром для сокета, без винятків і програми не розрізняли фізичний та логічний ядра процесора). Оскільки програмне забезпечення та операційні системи були оновлені, HT вирішив, і сьогодні це рідше, тому необхідно вимкнути його, щоб зберегти продуктивність. Але внаслідок Spectre, Meltdown і Foreshadow виникли серйозні побоювання щодо наслідків безпеки Hyper-Threading.

Theo de Raadt, засновник OpenBSD, стверджує, що HT не може більше довіряти і має бути відключено за замовчуванням. він звернувся до Радату, щоб обговорити цю проблему і чому він та інші розробники у спільноті програмного забезпечення з відкритим кодом турбуються про ризики безпеки Hyper-Threading.

За даними Raadt, кожна операційна система або додає можливість вимкнення Symmetric Multi-Threading (Hyper-Threading Intel - це конкретна реалізація SMT) або модифікація їх планувальників ", щоб уникнути потенціалу SMP cpus різних доменів безпеки". Symmetric Multi -Процесорні процеси, або SMP, стосуються сучасної практики наявності декількох процесорних ядер на одному шаблоні, всі вони мають доступ до об'єднаного пулу пам'яті та пристроїв. На відміну від цього, Intel Hyper-Threading ділиться певними ресурсами між фізичним ядром і його логічним партнером, включаючи буферні інтерфейси (TLB), кеш даних даних L1 та кеш-пам'ять цільової галузі (BTC), не забезпечуючи можливості диференціювати між доменами безпеки та ізолювати дані між двома ядрами процесора.

Як ми вже говорили, Spectre, Meltdown і Foreshadow - це всі недоліки, які використовують певну поведінку, яку займають процесори Intel, коли вони спекулятивно виконують інструкції. Хоча спекулятивне виконання є давньою і перевіреною технікою для поліпшення загальної продуктивності процесора, де Raadt виділяє три різні проблеми, які поєднувалися для створення цих проблем. Він пише:

1) Процесори Intel збирають та декодують і виконують інструкції, включаючи завантаження даних без проведення перевірок безпеки, а потім розкручують їх, якщо після факту вони помиляються. Процесори від інших постачальників зазнали незначних проблем, однак Intel виходить на абсолютно новий рівень.

2) Оскільки вони не проводять перевірку безпеки перед собою, і зв'язують їх L1D з їхнім TLB, Intel дійсно вражає "де з лінії кешування надійшла помилка в нашій кеші L1D, нам не подобається", що призводить до дані в рядку кешу з іншого привілейного домену стають видимими для спекулятивних вказівок, що створює додаткову проблему.

3) Те саме міркування без перевірки безпеки застосовується до регістрів. Перш ніж отримати доступ до реєстрів FPU, Intel навіть не перевірила, чи активовано FPU. Тому вони дійсно не роблять * перевірки безпеки * перед виконанням інструкції. ВСІ рішення приймаються в кінці. Це означає, що всі впорядковані послідовності мають побічні ефекти привидів, і ми просто чекаємо на те, щоб люди знайшли гірші наслідки та публікували їх.

Де Радт також критикував політику розкриття інформації Intel, зазначивши, що OpenBSD повинен був вивчити шляхи вирішення інших проектів, таких як Xen та FreeBSD, для створення власних рішень. Він вважає, що, ймовірно, ми будемо продовжувати бачити більше недоліків безпеки, пов'язаних з Spectre, і що для чорних капелюхів є можливість об'єднати різні методи експлуатації цих недоліків, щоб порушити моделі безпеки. Передчук, можна стверджувати, є одним з таких атак. Хоча це більш складні, ніж перші варіанти Spectre, він також може бути використаний для розбиття програмного забезпечення Guard eXtensions, або SGX - і SGX повинен був бути захищеним від такого роду атаки. Там навіть є шанс, що ці атаки можуть бути використані для витоку адресної інформації, а це означає, що Spectre і Rowhammer можуть бути об'єднані. Це подарунок, який продовжує давати.

Зображення на XKCD. Текст аромату: "Крім рятувальника, виявляється, що багато серверів також уразливі для звичайних молотків".
Зображення на XKCD. Текст аромату: "Крім рятувальника, виявляється, що багато серверів також уразливі для звичайних молотків".

До цих пір OpenBSD - це перша операційна система, яка закликає до відключення HT взагалі - офіційне керівництво Intel у тому, що HT не потрібно відключати, якщо всі інші виправлення та патчі були розгорнуті. Але неймовірно важко практично гарантувати, що всі необхідні контексти безпеки будуть підтримуватися та дотримуватися за відсутності апаратних обмежень, які перешкоджають одночасному запуску двох різних процесів, що працюють в різних доменах безпеки. Навіть якщо ви можете переконатися, що процеси, що працюють на ЦП, сумісні з перспективою домену безпеки, як тільки змінюється область безпеки одного з цих процесів, вам доведеться виселити його з основного процесора, на якому він працює, і поставити його десь ще - промивання кешів і TLB в процесі. Сучасні планувальники ОС регулярно переміщують навантаження між ядрами процесора, щоб оптимізувати виконання, але змусити процесор зробити це з назвою безпеки, може нести важкий удар по ефективності. Ми вже бачили деякі докази цього в Specter, хоча тести, які виявили його, як правило, були найгіршими.

Чи впливає AMD?

На сьогодні практично всі обговорення навколо Spectre, Meltdown і Foreshadow зосереджені на Intel. Для цього є практична причина. Вважається, що ці атаки створюють загрозу безпеці постачальників хмарних та корпоративних серверів, а Intel - на цих ринках. До запуску Epyc, Intel володіла 99% ринку серверів x86, а переважна більшість серверів, що реалізуються в рік, складаються з x86-машин. AMD почав відбиватися від домінування ринку Intel, але генеральний директор Ліза Су заявила, що її компанія орієнтує середні однозначні відсотки ринку до кінця 2018 року. Навіть якщо AMD та Intel були однаково виставлені технічно, Intel буде намагатися практично весь ефективний вплив.

Але в той час як це може змінитись у майбутньому, наведені дані свідчать про те, що процесор AMD не є настільки ж уразливим, як і аналогів Intel. AMD випустила заяву, яка вказує на те, що на нього не впливає Foreshadow, яку Intel закликає до L1TF (L1 Terminal Fault). Він рекомендує своїм клієнтам не здійснювати захист Foreshadow в даний час і стверджує, що його процесори захищені захистом архітектури апаратного підкачки, вбудованими в процесори Epyc.

Чи Hyper-Threading є основним ризиком для безпеки?

Ще одне свідчення на користь AMD полягає в тому, що реалізація SMT компанії, як відомо, відрізняється від Intel. Раніше ми лише обговорювали ці відмінності з точки зору їх впливу на продуктивність, однак вищезазначений слайдер відзначає, що ITLB L0 / L1 / L2 і L1 / L2 DTLB використовуються спільно, але "SMT tagged", тобто вони доступні лише для доступу по темі, яка їм належить. Диявол абсолютно детально описує подібні проблеми, і ми не хочемо передбачати, що цей єдиний слайд визначає ступінь впровадження SMT для AMD або не є безпечним, але AMD, схоже, реалізував захист у певних областях, які Intel не вистачає. Наприклад, можливо, що майбутні атаки можуть грунтуватися на виселенні кеш-пам'яті, а не на спекулятивні навантаження, і такий тип тегів може не захищатись від таких альтернатив. У нашій бесіді де Радт зазначає, що OpenBSD також внесла зміни, щоб вимкнути SMT і CMT (це технологія обміну основними ресурсами бульдозера) на процесорах AMD з великою кількістю обережності, незважаючи на те, що вони не знають, що процесори в кінцевому підсумку виявиться вразливими до цього тип атаки

На момент написання цього документа OpenBSD 6.4 (очікується в жовтні / листопаді) є першою ОС, яка уникає використання Hyper-Threading і деактивує її за замовчуванням, але інші операційні системи, такі як Red Hat, оголосили, що вони будуть завантажувати ядра з оновленим елементи керування, що дозволяють користувачам вибирати, чи відключати цю функцію чи ні. Чи інші виробники стежать за Тео де Раадт, може залежати від того, яка інформація про вразливість розкривається далі, і наскільки серйозним є наступний раунд експлойтів. Intel заявила, що її майбутня платформа Cascade Lake буде містити апаратні виправлення для деяких варіантів Spectre, а інші ще будуть пом'якшені програмними рішеннями або комбінацією цих двох. Ось один момент, коли всі, хто працює в галузі безпеки, здається, погоджуються на те, що нові сповіщення та проблеми безпеки, пов'язані з Spectre, ще не відбулися.