Уязвимости в eBPF, позволяющие обойти защиту от атаки Spectre 4
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В ядре Linux выявлены две уязвимости, позволяющие использовать подсистему еBPF для обхода защиты от атаки Spectre v4 (SSB, Speculative Store Bypass). При помощи непривилегированной BPF-программы атакующий может создать условия для спекулятивного выполнения определённых операций и определить содержимое произвольных областей памяти ядра. Сопровождающие подсистемы eBPF в ядре получили доступ к прототипу эксплоита, демонстрирующего возможность совершения атак на практике. Проблемы устранены в форме патчей (1, 2), которые войдут в состав ближайшего обновления ядра Linux. Обновления в дистрибутивах пока не сформированы (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).
Метод атаки Spectre 4 базируется на восстановлении осевших в процессорном кэше данных после отбрасывания результата спекулятивного выполнения операций при обработке чередующихся операций записи и чтения с использованием косвенной адресации. Когда операция чтения следует за операцией записи (например, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), смещение адреса для чтения уже может быть известно из-за выполнения похожих операций (операции чтения выполняются значительно чаще и чтение может быть выполнено из кэша) и процессор может спекулятивно выполнить чтение раньше записи, не дожидаясь пока будет вычислено смещение косвенной адресации для записи.
Если после вычисления смещения выявлено пересечение областей памяти для записи и чтения, процессор просто отбросит уже спекулятивно полученный результат чтения и повторит эту операцию. Данная особенность позволяет инструкции чтения получить доступ к старому значению по некоторому адресу во время пока операция сохранения ещё не завершена. После отбрасывания неудачной спекулятивной операции в кэше остаются следы от её выполнения, после чего для его извлечения может применяться один из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным.
Первая уязвимость (CVE-2021-35477) вызвана недоработкой в механизме проверки программ BPF. Для защиты от атаки Spectre 4 верификатор добавляет после потенциально проблемных операций сохранения в память дополнительную инструкцию, сохраняющую нулевое значение для вытеснения следов прошлой операции. Предполагалось, что операция записи нуля выполнится очень быстро и блокирует спекулятивное выполнение, так как она зависит только от указателя на кадр стека BPF. Но на деле, оказалось возможным создание условий, при которых инструкция, приводящая к спекулятивному выполнению, успевает выполниться до операции вытесняющего сохранения.
Вторая уязвимость (CVE-2021-3455) связана с тем, что при выявлении верификатором BPF потенциально опасных операций сохранения в память, не учитываются неинициализированные области стека BPF, первая операция записи в которые не защищается. Подобная особенность приводит к возможности совершения спекулятивной операции чтения, зависимой от неинициализированной области памяти, перед выполнением инструкции сохранения. Новая память для BPF-стека выделяется без проверки содержимого, уже имеющегося в выделяемой памяти, и на стадии до запуска BPF-программы имеется способ управления содержимым области памяти, которая затем будет выделена под стек BPF.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://www.openwall.com/lists...)
- OpenNews: Уязвимости в подсистеме eBPF, позволяющие обойти защиту от атак класса Spectre
- OpenNews: Уязвимость в eBPF, позволяющая выполнить код на уровне ядра Linux
- OpenNews: В eBPF найдена возможность обхода защиты ядра Linux от атаки Spectre
- OpenNews: Уязвимости в подсистеме eBPF, позволяющие выполнить код на уровне ядра Linux
- OpenNews: Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Похожие новости:
- Выпуск первой бета-версии дистрибутива MX Linux 21
- Root-уязвимость в ядре Linux и отказ в обслуживании в systemd
- Для ядра Linux предложен драйвер GPIO, написанный на Rust
- Реализована загрузка ядра Linux на плате ESP32
- Линус Торвальдс прокомментрировал ситуацию с драйвером NTFS от Paragon Software
- Уязвимость в подсистеме ядра Linux Netfilter
- Релиз дистрибутива Linux Mint 20.2
- Подкаст с разработчиками AlmaLinux, форка CentOS
- [Настройка Linux, Системное администрирование, Nginx, *nix] Nginx. Фазы обработки запроса. Практика
- [FPGA, Процессоры, DIY или Сделай сам, Электроника для начинающих] Zynq 7000. Собираем Linux и RootFS при помощи Buildroot
Теги для поиска: #_bpf, #_linux
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:10
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В ядре Linux выявлены две уязвимости, позволяющие использовать подсистему еBPF для обхода защиты от атаки Spectre v4 (SSB, Speculative Store Bypass). При помощи непривилегированной BPF-программы атакующий может создать условия для спекулятивного выполнения определённых операций и определить содержимое произвольных областей памяти ядра. Сопровождающие подсистемы eBPF в ядре получили доступ к прототипу эксплоита, демонстрирующего возможность совершения атак на практике. Проблемы устранены в форме патчей (1, 2), которые войдут в состав ближайшего обновления ядра Linux. Обновления в дистрибутивах пока не сформированы (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu). Метод атаки Spectre 4 базируется на восстановлении осевших в процессорном кэше данных после отбрасывания результата спекулятивного выполнения операций при обработке чередующихся операций записи и чтения с использованием косвенной адресации. Когда операция чтения следует за операцией записи (например, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), смещение адреса для чтения уже может быть известно из-за выполнения похожих операций (операции чтения выполняются значительно чаще и чтение может быть выполнено из кэша) и процессор может спекулятивно выполнить чтение раньше записи, не дожидаясь пока будет вычислено смещение косвенной адресации для записи. Если после вычисления смещения выявлено пересечение областей памяти для записи и чтения, процессор просто отбросит уже спекулятивно полученный результат чтения и повторит эту операцию. Данная особенность позволяет инструкции чтения получить доступ к старому значению по некоторому адресу во время пока операция сохранения ещё не завершена. После отбрасывания неудачной спекулятивной операции в кэше остаются следы от её выполнения, после чего для его извлечения может применяться один из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным. Первая уязвимость (CVE-2021-35477) вызвана недоработкой в механизме проверки программ BPF. Для защиты от атаки Spectre 4 верификатор добавляет после потенциально проблемных операций сохранения в память дополнительную инструкцию, сохраняющую нулевое значение для вытеснения следов прошлой операции. Предполагалось, что операция записи нуля выполнится очень быстро и блокирует спекулятивное выполнение, так как она зависит только от указателя на кадр стека BPF. Но на деле, оказалось возможным создание условий, при которых инструкция, приводящая к спекулятивному выполнению, успевает выполниться до операции вытесняющего сохранения. Вторая уязвимость (CVE-2021-3455) связана с тем, что при выявлении верификатором BPF потенциально опасных операций сохранения в память, не учитываются неинициализированные области стека BPF, первая операция записи в которые не защищается. Подобная особенность приводит к возможности совершения спекулятивной операции чтения, зависимой от неинициализированной области памяти, перед выполнением инструкции сохранения. Новая память для BPF-стека выделяется без проверки содержимого, уже имеющегося в выделяемой памяти, и на стадии до запуска BPF-программы имеется способ управления содержимым области памяти, которая затем будет выделена под стек BPF. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:10
Часовой пояс: UTC + 5