Уязвимость в eBPF позволяет обойти защиту от атак Spectre

Вчера мы опубликовали здесь в блоге новость о Aya, библиотека для создания драйверов eBPF в Rust, и цель этого состоит в том, чтобы создать более безопасные драйверы или Проект просимо для обеспечения памяти ядра Linux с помощью Rust (два отличных проекта, о которых будет много разговоров в следующие месяцы).

И это за короткое время были обнаружены различные уязвимости в котором воспользоваться ошибками в eBPF и что это проблема, над которой разработчики ядра не перестали работать, и, возможно, Rust - это решение.

Причина затронуть эту тему в том, что недавно появилась новость о том, что они определили «Другая» уязвимость в ядре Linux (CVE-2021-33624) для обход защиты от уязвимостей класса Spectre, поскольку это позволяет использовать подсистему eBPF, чтобы иметь возможность определять содержимое памяти в результате создания условий для предположений о выполнении определенных операций.

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

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

В уязвимых системах непривилегированная программа BPF может использовать эту уязвимость для фильтрации содержимого произвольной памяти ядра (и, следовательно, всей физической памяти) через побочный канал.

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

Атака Spectre требует наличия определенного скрипта в привилегированном коде, что приводит к спекулятивному исполнению инструкций. Манипулируя программами BPF, которые передаются для выполнения, можно сгенерировать такие инструкции в eBPF и отфильтровать содержимое памяти ядра и произвольные области физической памяти через побочные каналы.

Кроме того, вы можете отметить заметку о влиянии на производительность активов для защиты от уязвимостей класса Spectre.

В этой заметке подводятся итоги. оптимизация отладчика rr (запись и воспроизведение), когда-то созданная Mozilla для отладки трудно повторяемых ошибок в Firefox. Кэширование системных вызовов, используемых для проверки существования каталогов, сократило операцию «rr sources» для тестового проекта с 3 минут 19 секунд до 36 секунд.

Автор оптимизации решил проверить сколько изменится производительность после отключения защиты Spectre. После загрузки системы с параметром «mitigations = off» время выполнения «rr sources» без оптимизации составило 2 минуты 5 секунд (в 1.6 раза быстрее) и с оптимизацией 33 секунды (на 9% быстрее).

Любопытно, отключение защиты Spectre не только сокращает время работы кода уровня ядра в 1.4 раза (с 2 мин 9 с до 1 мин 32 с), это также вдвое сократило время выполнения в пользовательском пространстве (с 1 мин 9 с до 33 с), предположительно из-за снижения эффективности кеш-памяти ЦП и TLB сбрасываются при включении защиты Spectre.

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

Si ты хочешь узнать об этом больше, вы можете проверить подробности По следующей ссылке.


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

Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.