Виявлено новий варіант атаки Zombieload на процесори Intel

Дослідники з Грацького технічного університету (Австрія) розкрили відомості про новий метод атаки по сторонніх каналах Zombie Load 2.0 (CVE-2019-11135), що дозволяє витягти конфіденційну інформацію з інших процесів, операційної системи, віртуальних машин та захищених анклавів (TEE, Trusted Execution Environment). Проблема зачіпає лише процесори Intel. Компоненти для блокування проблеми запропоновані у вчорашньому оновлення мікрокоду.

Проблема відноситься до класу MDS (Microarchitectural Data Sampling) та є модернізованим варіантом оприлюдненою у травні атаки ZombieLoad. ZombieLoad 2.0, як і інші атаки класу MDS, ґрунтуються на застосуванні методів аналізу по стороннім каналам до даних у мікроархітектурних структурах (наприклад, у буферах заповнення (Line Fill Buffer) та зберігання (Store Buffer), у яких тимчасово зберігаються дані, що використовуються у процесі виконання операцій Load та Store).

Новий варіант атаки Zombieload грунтується на витоку, що виникає при роботі механізму асинхронного переривання операцій (TAA, TSX Asynchronous Abort), реалізованого в розширенні TSX (Transactional Synchronization Extensions), що надає засоби для роботи з транзакційною пам'яттю, що дозволяє підвищити продуктивність багатопоточних додатків. атомарні транзакції, які можуть бути прийняті, або перервані). У разі переривання операції, виконані з транзакційним регіоном пам'яті, відкочуються.

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

Атака зводиться до відкриття TSX транзакцій та створення умов їх асинхронного переривання, під час якого виникають умови для витоку вмісту внутрішніх буферів, спекулятивно заповнених даними з виконуваних на тому ж ядрі CPU операцій читання пам'яті. Витік обмежений поточним фізичним ядром CPU (на якому виконується код атакуючого), але так як мікроархітектурні буфери спільно використовуються різними потоками в режимі Hyper-Threading, можливе виникнення витоку операцій з пам'яттю, що виконуються в інших потоках CPU.

Атаке схильні до деякі моделі восьмого, дев'ятого та десятого поколінь процесорів Intel Core, а також Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W та друге покоління Intel Xeon Scalable. У тому числі атаці схильні і нові процесори Intel на базі представленої в квітні мікроархітектури Cascade Lake, що спочатку не схильна до атак RIDL і Fallout. Крім Zombieload 2.0 дослідники також виявили можливість обходу раніше запропонованих методів захисту від MDS-атак, заснованих на використанні інструкції VERW для очищення вмісту мікроархітектурних буферів у момент повернення з ядра в простір користувача або передачі управління гостьовій системі.

У звіті Intel стверджується, що в системах з різнорідним навантаженням можливість проведення атаки утруднена, тому що витік з мікроархітектурних структур охоплює всю активність у системі і атакуючий не може впливати на джерело даних, тобто. може лише накопичувати відомості, що спливають в результаті витоку, і намагатися виявити серед цих даних корисну інформацію, без можливості цілеспрямовано перехопити дані, пов'язані з конкретними адресами пам'яті. Тим не менш, дослідниками опубліковано прототип експлоїту, що працює в Linux та Windows, а також продемонстровано можливість застосування атаки для визначення хеша пароля користувача root.
Можливо проведення атаки з гостьової системи для накопичення даних, що фігурують в операціях інших гостьових систем, хост-оточення, гіпервізора та анклавів Intel SGX.

Виправлення для блокування вразливості включені в кодову базу ядра Linux та увійшли до складу випусків 5.3.11, 4.19.84, 4.14.154, 4.9.201 та 4.4.201. Оновлення з ядром та мікрокодом також вже випущені для основних дистрибутивів (Debian, SUSE/openSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Проблема була виявлена ​​у квітні і виправлення було скоординовано Intel із розробниками операційних систем.

Найпростішим методом блокування Zombieload 2.0 є відключення підтримки TSX у CPU. Запропоноване для ядра Linux виправлення включає декілька варіантів захисту. Перший варіант пропонує параметр "tsx=on/off/auto", що дозволяє керувати включенням розширення TSX в CPU (значення auto відключає TSX тільки для вразливих CPU). Другий варіант захисту включається параметром tsx_async_abort=off/full/full,nosmt і заснований на очищенні мікроархітектурних буферів, під час перемикання контексту (прапор nosmt додатково відключає SMT/Hyper-Threads). Для перевірки схильності системи вразливості до sysfs передбачено параметр «/sys/devices/system/cpu/vulnerabilities/tsx_async_abort».

Крім того, в оновленні мікрокоду усунута ще одна вразливість (CVE-2018-12207) у процесорах Intel, яка також блокована у свіжому оновленні ядра Linux. Вразливість дозволяє непривілейованому атакуючому ініціювати відмову в обслуговуванні, що призводить до зависання системи в стані "Machine Check Error".
Атака у тому числі може бути здійснена із гостьової системи.

Джерело: opennet.ru

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