Retbleed: нова спекулятивна атака на виконання, що вражає Intel і AMD

Про це нещодавно повідомили новиниГрупа дослідників з ETH Zurich виявила нову атаку до спекулятивного механізму виконання непрямих стрибків у ЦП, що дозволяє витягувати інформацію з пам’яті ядра або організовувати атаку на хост-систему з віртуальних машин.

Уразливості отримали кодову назву Retbleed (вже каталогізовано під CVE-2022-29900, CVE-2022-29901) і за своєю природою подібні до атак Spectre-v2.

Різниця зводиться до організації спекулятивного виконання довільного коду шляхом обробки інструкції "ret" (повернення), яка отримує адресу для переходу зі стеку, а не опосередкованого переходу за допомогою інструкції "jmp", завантаження адреси з пам'яті або регістр ЦП.

Про нову атаку йдеться зловмисник може створити умови для передбачення форка неправильно та організуйте навмисний спекулятивний стрибок до блоку коду, який не передбачений логікою виконання програми.

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

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

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

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

Під час впровадження retpoline у ​​2018 році вважалося, що маніпуляції адресами, подібні до Spectre, непрактичні для спекулятивного розгалуження з інструкцією «ret».

Дослідники, які розробили метод атаки Retbleed продемонстрував можливість створення мікроархітектурних умов ініціювати спекулятивний перехід за допомогою інструкції «ret» і випустив готовий набір інструментів для визначення відповідних послідовностей інструкцій (гаджетів) для використання вразливості в ядрі Linux, у якій виникають такі умови.

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

En процесори AMD, ефективність експлойта набагато вище, оскільки швидкість витоку становить 3,9 Кбайт на секунду. Як практичний приклад показано, як використовувати запропонований експлойт для визначення вмісту файлу /etc/shadow. На системах з процесорами Intel атака з метою визначення хешу пароля root була здійснена за 28 хвилин, а на системах з процесорами AMD – за 6 хвилин.

Атака підтверджена для 6-8 поколінь процесорів Intel які були випущені до 2019 кварталу 1 року (включаючи Skylake), і процесори AMD на основі мікроархітектур Zen 1, Zen 2+ і Zen 2021, які були випущені до XNUMX кварталу XNUMX року. На нових моделях процесорів, як-от AMD Zen3 і Intel Alder Lake, а також процесори ARM, проблема блокується існуючими механізмами захисту. Наприклад, використання інструкцій IBRS (Indirect Branch Restricted Speculation) допомагає захиститися від атаки.

Підготовлено ряд змін для ядра Linux і гіпервізора Xen, які програмно блокують проблему на старих ЦП. Запропонований патч ядра Linux змінює 68 файлів, додає 1783 рядки та видаляє 387 рядків.

На жаль, захист вимагає значних накладних витрат: у текстах, написаних на процесорах AMD і Intel, зниження продуктивності оцінюється в межах від 14% до 39%. Краще використовувати захист на основі інструкцій IBRS, доступних у новіших поколіннях процесорів Intel і підтримуваних, починаючи з ядра Linux 4.19.

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


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.