Retbleed: новая спекулятивная атака на Intel и AMD

Недавно в новостях сообщили, чтоe группа исследователей из ETH Zurich выявила новую атаку к механизму спекулятивного выполнения непрямых переходов в ЦП, что позволяет извлечь информацию из памяти ядра или организовать атаку на хост-систему с виртуальных машин.

Уязвимости получили кодовое название Retbleed. (уже внесен в каталог под CVE-2022-29900, CVE-2022-29901) и по своей природе аналогичны атакам Spectre-v2.

Разница сводится к организации спекулятивного выполнения произвольного кода путем обработки инструкции «ret» (возврат), которая извлекает из стека адрес для перехода, а не косвенного перехода с помощью инструкции «jmp», загрузки адреса из памяти или регистр ЦП.

О новой атаке упоминается, что злоумышленник может создать условия для предсказания форка неверным и организовать преднамеренный спекулятивный переход на блок кода, не предусмотренный логикой выполнения программы.

В конечном счете, процессор определит, что предсказание ветвления не оправдалось, и откатит операцию в исходное состояние, но обработанные данные Во время спекулятивного исполнения они будут сидеть в кеше и микроархитектурные буферы. Если ошибочно выполненный блок осуществляет доступ к памяти, то его спекулятивное выполнение приведет к установке в общий кэш и чтению данных из памяти.

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

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

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

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

Исследователи, разработавшие метод атаки Ретблед продемонстрировал возможность создания микроархитектурных условий для инициирования спекулятивного перехода с помощью инструкции «ret» и выпустила готовый инструментарий для определения подходящих последовательностей инструкций (гаджетов) для эксплуатации уязвимости в ядре Linux, в которой возникают такие условия.

В ходе исследования, подготовлен рабочий эксплойт что позволяет в системах с процессорами Intel из непривилегированного процесса в пространстве пользователя извлекать произвольные данные из памяти ядра со скоростью 219 байт в секунду и с точностью 98%.

En процессоры AMD, эффективность эксплойта намного выше, поскольку скорость утечки составляет 3,9 КБ в секунду. В качестве практического примера показано, как использовать предложенный эксплойт для определения содержимого файла /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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.