Вони виявили вразливість спекулятивного виконання, яка впливає на AMD

Проект нещодавно Grsecurity стало відомо через публікацію деталі та демо метод атаки на нову вразливість (вже вказано як CVE-2021-26341) в процесорах AMD, пов'язаних з виконанням спекулятивних інструкцій після безумовних операцій переходу вперед.

Вразливість дозволяє процесору спекулятивно обробляти інструкція відразу після інструкції переходу (SLS) в пам'яті під час спекулятивного виконання. При цьому така оптимізація працює не тільки для операторів умовного переходу, а й для інструкцій, які передбачають прямий безумовний стрибок, таких як JMP, RET і CALL.

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

AMD надає оновлення для рекомендованого пом’якшення, G-5, у технічній документації «Програмні методи управління спекуляцією в процесорах AMD». Пом’якшення G-5 допомагає усунути потенційні вразливості, пов’язані зі спекулятивною поведінкою інструкцій відділення.

Процесори AMD можуть тимчасово виконувати інструкції після безумовного прямого розгалуження, що може призвести до активності кешу

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

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

Це розслідування призвело до виявлення нової вразливості, CVE-2021-26341 [1] , про який ми детально поговоримо в цій статті. Як завжди, ми зосередимося на технічних аспектах уразливості, способах пом’якшення, запропонованих AMD, та аспектах експлуатації.

Щоб заблокувати можливість створювати пристрої за допомогою eBPF, рекомендується вимкнути непривілейований доступ до eBPF в системі ("sysctl -w kernel.unprivileged_bpf_disabled=1«).

Уразливість стосується процесорів на основі мікроархітектур Zen1 і Zen2:

Стіл

  • Процесор AMD Athlon™ X4
  • Процесор AMD Ryzen™ Threadripper™ PRO
  • Процесори AMD Ryzen™ Threadripper™ XNUMX-го покоління
  • Процесори AMD Ryzen™ Threadripper™ XNUMX-го покоління
  • APU XNUMX-го покоління AMD серії A
  • Процесори AMD Ryzen™ серії 2000 для настільних ПК
  • Процесори AMD Ryzen™ серії 3000 для настільних ПК
  • Процесори AMD Ryzen™ серії 4000 для настільних ПК з графікою Radeon™

Мобільний

  • Мобільний процесор AMD Ryzen™ серії 2000
  • Мобільні процесори AMD Athlon™ серії 3000 з графікою Radeon™
  • Мобільні процесори AMD Ryzen™ серії 3000 або мобільні процесори AMD Ryzen™ XNUMX-го покоління з графікою Radeon™
  • Мобільні процесори AMD Ryzen™ серії 4000 з графікою Radeon™
  • Мобільні процесори AMD Ryzen™ серії 5000 з графікою Radeon™

Chromebook

  • Мобільні процесори AMD Athlon™ з графікою Radeon™

Сервер

  • Процесори AMD EPYC™ першого покоління
  • Процесори AMD EPYC™ другого покоління

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

Через цю вразливість можна виявити доброякісні конструкції коду, які формують обмежені, але потенційно придатні для експлуатації пристрої SLS на уражених ЦП. Як продемонстровано на прикладі eBPF, уразливість також можна використовувати за допомогою виготовлених вручну пристроїв, що вводяться самостійно. Представлений метод може бути використаний, наприклад, для послаблення KASLR ядра Linux.

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

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


Зміст статті відповідає нашим принципам редакційна етика. Щоб повідомити про помилку, натисніть тут.

Будьте першим, щоб коментувати

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

Ваша електронна адреса не буде опублікований.

*

*

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