Нова атака на мікроархітектурні структури процесорів Intel та AMD

Група дослідників з Віргінського та Каліфронійського університетів представила новий вид атаки на мікроархітектурні структури процесорів Intel та AMD, виявлений у ході зворотного інжинірингу недокументованих можливостей CPU. Запропонований метод атаки пов'язаний із застосуванням процесорів проміжного кеша мікрооперацій (micro-op cache), який може використовуватися для вилучення відомостей, що осіли в ході спекулятивного виконання інструкцій.

З метою оптимізації процесор починає виконувати деякі інструкції в спекулятивному режимі, не чекаючи виконання попередніх обчислень, і якщо потім визначає, що прогноз не виправдалося, відкочує операцію у вихідний стан, але оброблені в процесі спекулятивного виконання дані осідають в кеші, вміст якого можна визначити.

Зазначається, що новий метод помітно випереджає за продуктивністю атаку Spectre v1, ускладнює виявлення атаки і не блокується існуючими методами захисту від атак по сторонніх каналах, розроблених для блокування вразливостей, викликаних спекулятивним виконанням інструкцій (наприклад, застосування інструкції LFENCE блокує витік на останніх стадіях , але не захищає від витоку через мікроархітектерні структури).

Метод зачіпає моделі процесорів Intel та AMD, що випускаються з 2011 року, включаючи серії Intel Skylake та AMD Zen. Сучасні CPU розбивають складні процесорні інструкції на простіші RISC-подібні мікрооперації, які кешуються в окремому кеші. Даний кеш кардинально відрізняється від кешів вищого рівня, недоступний безпосередньо і виступає в ролі потокового буфера для швидкого доступу до результатів декодування CISC-інструкцій RISC-мікроінструкції. Тим не менш, дослідники знайшли спосіб для створення умов, що виникають при конфлікті доступу до кешу і дозволяють судити про вміст кешу мікрооперацій шляхом аналізу відмінностей у часі виконання тих чи інших дій.

Нова атака на мікроархітектурні структури процесорів Intel та AMD

Кеш мікрооперацій у процесорах Intel сегментований у прив'язці до потоків CPU (Hyper-Threading), у той час як у процесорах AMD Zen застосовується загальний кеш, що створює умови для витоку даних не тільки в рамках одного потоку виконання, а й між різними потоками в SMT (можливий витік даних між кодом, що виконується на різних логічних ядрах CPU).

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

При організації варіанта атаки Spectre з використанням кешу мікрооперацій дослідникам вдалося досягти продуктивності в 965.59 Kbps при рівні помилок 0.22% та 785.56 Kbps при використанні корекції помилок, у разі організації витоку в рамках одного адресного простору та рівня привілеїв. При витоку, що охоплює різні рівні привілеїв (між ядром та простором користувача), продуктивність склала 85.2 Kbps при додаванні корекції помилок та 110.96 Kbps при рівні помилок у 4%. При атаці на процесори AMD Zen, що створює виток між різними логічними ядрами CPU, продуктивність склала 250 Kbps при рівні помилок 5.59% і 168.58 Kbps при корекції помилок. У порівнянні з класичним методом Spectre v1, нова атака виявилася швидше в 2.6 рази.

Передбачається, що для захисту від атаки на кеш мікрооперацій знадобиться внесення змін, що знижують продуктивність сильніше, ніж при включенні захисту від атак Spectre. Як оптимальний компроміс пропонується блокувати подібні атаки не шляхом відключення кешування, а на рівні моніторингу аномалій і визначення станів кешу, типових для атак.

Як і в атаках Spectre для організації витоку з ядра або інших процесів, потрібно виконання на стороні процесів-жертв певної послідовності команд (гаджетів), що призводить до спекулятивного виконання інструкцій. У ядрі Linux знайдено близько 100 подібних гаджетів, які будуть видалені, але періодично знаходять обхідні методи для їх генерації, наприклад, пов'язані із запуском в ядрі спеціально оформлених програм BPF.

Джерело: opennet.ru

Додати коментар або відгук