Retbleed: Нова спекулативна атака за изпълнение, удряща Intel и AMD

Новините наскоро разкриха товаe група изследователи от 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 KB в секунда. Като практически пример е показано как да използвате предложения експлойт за определяне на съдържанието на файла /etc/shadow. На системи с процесори на Intel атаката за определяне на хеша на паролата на root е извършена за 28 минути, а на системи с процесори на AMD за 6 минути.

Атаката е потвърдена за 6-8 поколения процесори на Intel които са пуснати преди третото тримесечие на 2019 г. (включително Skylake), и AMD процесори, базирани на микроархитектури Zen 1, Zen 1+ и Zen 2, които са пуснати преди второто тримесечие на 2021 г. При по-новите модели процесори, като 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. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.