L1DES (CacheOut) та VRS - нові вразливості в мікроархітектурних структурах CPU Intel

Компанія Intel розкрила відомості про дві нові вразливості в CPU Intel, викликані витоком даних з кешу L1D (CVE-2020-0549, L1DES - L1D Eviction Sampling) та векторних регістрів (CVE-2020-0548, VRS - Vector Register Sampling). Вразливості відносяться до класу MDS (Microarchitectural Data Sampling) та ґрунтуються на застосуванні методів аналізу по сторонніх каналах до даних у мікроархітектурних структурах. AMD, ARM та інші процесори проблемам не схильні.

Найбільшу небезпеку становить вразливість L1DES, яка допускає осідання блоків прокешованих даних (cache line), що витісняються з кешу першого рівня (L1D), у буфері заповнення (Fill Buffer), який на даному етапі має бути порожнім. Для визначення осілих у буфері заповнення даних застосовні методи аналізу сторонніми каналами, раніше запропоновані в атаках MDS (Microarchitectural Data Samping) та ТАА (Transactional Asynchronous Abort). Суть раніше реалізованої захисту від
MDS та TAA в очищенні мікроархітектурних буферів перед перемиканням контексту, але, як виявилося, за деяких умов дані спекулятивно скидаються в буфери після операції очищення, тому методи MDS та TAA залишаються застосовними.

L1DES (CacheOut) та VRS - нові вразливості в мікроархітектурних структурах CPU Intel

В результаті атакуючий може домогтися визначення витіснених з кешу першого рівня даних, які були змінені в ході виконання програми, що до цього займав поточне ядро ​​CPU, або додатків, що паралельно виконуються в інших логічних потоках (hyperthread) на тому ж ядрі CPU (відключення HyperThreading зводить на немає ефективність атаки). На відміну від атаки L1TF, L1DES не дозволяє вибирати конкретні фізичні адреси для перевірки, але дає можливість пасивно відстежувати активність в інших логічних потоках, пов'язану із завантаженням або збереженням значень.

На базі L1DES різні команди дослідників розробили кілька варіантів атак, які потенційно дозволяють отримати конфіденційну інформацію з інших процесів, операційної системи, віртуальних машин та захищених анклавів SGX.

  • Команда VUSec адаптувала метод атаки RIDL для вразливості L1DES Доступний прототип експлоїту, який у тому числі оминає запропонований Intel метод захисту від MDS, заснований на використанні інструкції VERW для очищення вмісту мікроархітектурних буферів в момент повернення з ядра в простір користувача або при передачі управління гостьовій системі (дослідники спочатку наполягали, що VERW (очищення мікроархітектурних буферів) захисту недостатньо і потрібно повне скидання кешу L1 при кожному перемиканні контексту).
  • Команда ZombieLoad оновила свій метод атаки з урахуванням уразливості L1DES.
  • Дослідники з університету Мічігану розробили власний метод атаки Кешувати (PDF), що дозволяє витягти конфіденційну інформацію з ядра операційної системи, віртуальних машин та захищених анклавів SGX. Метод базується на маніпуляціях з механізмом асинхронного переривання операцій (TAA, TSX Asynchronous Abort) визначення вмісту буфера заповнення після витоку даних з кешу L1D.

    L1DES (CacheOut) та VRS - нові вразливості в мікроархітектурних структурах CPU Intel

Друга вразливість VRS (Vector Register Sampling) пов'язана з витоком в буфер зберігання (Store Buffer) результатів операцій читання з векторних регістрів, змінених під час виконання векторних інструкцій (SSE, AVX, AVX-512) тому ж ядрі CPU. Витік виникає при досить рідкому збігу обставин і викликана тим, що операція, що спекулятивно виконується, що призводить до відображення стану векторних регістрів в буфері зберігання, запізнюється і завершується після очищення буфера, а не до неї. За аналогією з вразливістю L1DES вміст буфера зберігання потім може бути визначено за допомогою методів атак MDS і TAA.

Дослідники із групи VUSec підготували прототип експлоїтущо дозволяє визначати значення векторних регістрів, отриманих в результаті обчислень в іншому логічному потоці того ж ядра CPU. Компанія Intel оцінила вразливість VRS як надто складну для здійснення реальних атак і надала мінімальний рівень небезпеки (2.8 СVSS).

Відомості про проблеми були передані Intel у травні 2019 року командою Zombieload з Грацького технічного університету (Австрія) та групою VUSec з Амстердамського вільного університету, та пізніше, після аналізу інших векторів застосування атаки MDS, уразливості були підтверджені деякими іншими дослідниками. У перший звіт MDS інформацію про проблеми L1DES і VRS не було включено через відсутність виправлення. Виправлення недоступне і зараз, але обумовлені терміни нерозголошення закінчилися.
Як обхідні методи захисту рекомендується вимкнути HyperThreading. Для блокування вразливості на стороні ядра пропонується скидати кеш L1 при кожному перемиканні контексту (MSR біт MSR_IA32_FLUSH_CMD) і вимкнути розширення TSX (MSR біти MSR_IA32_TSX_CTRL та MSR_TSX_FORCE_ABORT).

Intel обіцяє випустити оновлення мікрокоду з реалізацією механізмів блокування проблем найближчим часом. Intel також зазначає, що застосування запропонованих у 2018 році методів захисту від атаки L1TF (L1 Terminal Fault) дозволяє блокувати експлуатацію вразливості L1DES із віртуальних оточень. Атаке схильні до процесори Intel Core, починаючи з шостого покоління (Sky, Kaby, Coffee, Whiskey, Amber Lake тощо), а також деякі моделі Intel Xeon та Xeon Scalable.

Додатково можна відзначити удосконалення експлоїту, що дозволяє застосувати методи атаки ЗАГАДКА для визначення вмісту пароля хешу root з /etc/shadow при періодичних спробах аутентифікації. Якщо спочатку запропонований експлоїт визначав хеш пароля за 24 години, а після застосування витоку при роботі механізму асинхронного переривання операцій (TAA, TSX Asynchronous Abort) виконував аналогічну операцію за 36 секунд, то новий варіант здійснює атаку за 4 секунди.

Джерело: opennet.ru

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