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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.