Native BHI: получение доступа к данным ядра Linux на компьютерах с Intel

Ученые из Амстердамского университета обнаружили новую методику атаки Native BHI, которая позволяет хакеру получить доступ к данным в памяти ядра Linux на компьютерах с процессорами Intel. Метод особенно опасен в условиях виртуализации, поскольку атакующий может проникнуть в память хоста или других виртуальных машин из своей виртуальной среды.

Native BHI (CVE-2024-2201) является усовершенствованием предыдущей уязвимости BHI (Branch History Injection) CVE-2022-0001, которая была обнаружена в 2022 году. В отличие от первоначального подхода, который требовал выполнения специального кода eBPF пользователем в ядре для успешной атаки, новый метод не требует таких привилегий и может быть осуществлен любым пользователем.

Техника основана на использовании специальных последовательностей команд (гаджетов) в коде ядра, которые вызывают спекулятивное выполнение инструкций (Speculative execution). Специалисты создали инструментарий InSpectre Gadget, который обнаружил в ядре 6.6-rc4 значительное количество таких гаджетов, позволяя разработать эксплоит для извлечения конфиденциальной информации (хэши паролей из файла /etc/shadow), со скоростью около 3.5 Кб/с.

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

Традиционные механизмы защиты, такие как инструкции Intel IBT (Indirect Branch Tracking) и программно-аппаратный гибрид FineIBT, не могут противостоять новому методу атаки. В ответ на это, в ядре Linux были внедреныдополнительные меры защиты, включая аппаратные средства защиты от Intel (BHI_DIS_S) и программные решения для гипервизора KVM. Также были выпущены обновления для версий ядра Linux (6.8.5, 6.6.26, 6.1.85 и 5.15.154) и гипервизора Xen, включающие новые меры безопасности.

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

Public Release.