Новая атака обходит механизмы аппаратной защиты от дыры Spectre в процессорах Intel и ARM.
Новая атака обходит механизмы аппаратной защиты от дыры Spectre в процессорах Intel и ARM.
Это доказательство концепции, которое нелегко использовать, показывает, что некоторые процессоры Intel и ARM по-прежнему уязвимы для атак по сторонним каналам.
Аппаратные меры противодействия, которые были предприняты в отношении процессоров Intel и ARM за последние несколько лет для устранения крупного недостатка под названием Spectre, не так сильны, как предполагалось. Ученые разработали новый метод атаки, способный преодолевать защитные механизмы, но его использование не так просто, как использование оригинальной червоточины.
Новая атака, обнаруженная исследователями из группы систем и сетевой безопасности VU Amsterdam (VUSec), называется Spectre-BHI (внедрение истории веток) или Spectre-BHB (хранилище истории веток), потому что Intel и ARM дали ей разные имена. По словам исследовательской группы, это расширение атаки Spectre v2 2017 года, также известной как Spectre-BTI (Branch Target Injection), и, как и Spectre v2, может привести к утечке конфиденциальной информации из привилегированного пространства памяти ядра.
Проверьте также:
Экспериментальный эксплойт исследователей VUSec заключается в утечке хэшей корневого пароля из /etc/shadow с использованием непривилегированной учетной записи. Файл /etc/shadow — это системный файл в Linux, доступ к которому возможен только с учетной записи администратора root. По сути, эксплойт заставляет ядро загрузить файл в память, где он обычно защищен от доступа непривилегированными процессами, но затем использует атаку Spectre-BHI для доступа и утечки его содержимого. Это серьезное нарушение базовой границы безопасности в современных операционных системах, которая отделяет приложения пользовательского режима и пространство памяти от привилегированного пространства памяти ядра.
Что такое Спектр?
Spectre — это класс уязвимостей, первоначально обнаруженный в январе 2017 года, который возникает из-за современной функции производительности ЦП, называемой спекулятивным выполнением, при которой ЦП пытается заранее предсказать путь, по которому выберет программа, когда она получит доступ к условной ветке и выполняет инструкции вдоль этот трек рано. Если прогнозы, основанные на внутренних алгоритмах, окажутся неверными, результаты, хранящиеся в кэше процессора, будут отброшены. Атаки со спекулятивным выполнением, такие как Spectre и многие другие, используют этот механизм для утечки информации из временных кешей, которые действуют как побочные каналы.
«В то время, когда был обнаружен Spectre, Branch Target Injection (BTI или Spectre-v2), самый опасный тип Spectre, было легко использовать на всех уровнях разрешений», — объясняют исследователи VUSec. «Например, злоумышленник непривилегированного пользовательского пространства может передать любую дочернюю цель предсказателю ветвления промежуточного пользовательского пространства и заставить ядро спекулятивно перейти к цели внедренного кода и выполнить любой код, который там есть».
Чтобы снизить риск, поставщики программного обеспечения, такие как Google и производители ядра Linux, разработали программные решения, такие как retpoline. Хотя это было эффективно, оно вызывало значительное снижение производительности, поэтому позже производители процессоров разработали аппаратную защиту. Решение Intel называется EIBRS, а ARM — CSV2.
«Эти решения сложны — оригинальная исследовательская статья доступна по этой ссылке, — но суть их в том, что предиктор «каким-то образом» отслеживает уровень разрешений (пользователь/ядро), на котором выполняется цель», — объясняют исследователи VUSec. «И, как и следовало ожидать, если цель принадлежит к более низкому уровню привилегий, то ядро не будет ее использовать (т. е. больше не будет предоставленных злоумышленником случайных участков кода, которые можно спекулятивно захватить для потока управления ядром). «
Проблема, однако, заключается в том, что предсказатель ЦП полагается на глобальную историю для выбора целевых записей для спекулятивного выполнения, и, как продемонстрировали исследователи VUSec, эта глобальная история может быть повреждена. Другими словами, в то время как первоначальная версия Spectre v2 позволяла злоумышленникам физически внедрить местоположение целевого кода, а затем скрытно выполнить этот код ядром, новая атака Spectre-BHI/BHB может заставить ядро неправильно предсказать и выполнить что-то интересное. Гаджеты или фрагменты кода, которые уже существуют. Это в истории и было сделано в прошлом, но это может привести к утечке данных.
«Не повреждены ли Intel eIBRS и Arm CSV2? Как будто. Это означает, что меры безопасности работают, как предполагалось, но оставшаяся поверхность атаки важнее, чем первоначально предполагали производители. […] Однако поиск инструментов, которые можно использовать, становится становится все более и более важным.» Сложнее, чем раньше, потому что злоумышленник не может внедрить целевые объекты напрямую через ограничения разрешений».
Устранение новой ошибки Spectre-BHI
Intel определила новый Spectre-BHI как CVE-2022-0001 для многопривилегированного варианта и CVE-2022-0002 для многопривилегированного варианта. ARM описывает его как CVE-2022-23960 для обоих вариантов.
По данным Intel, затронуто большинство процессоров компании, за исключением процессоров семейства Atom. Для ARM слабыми процессорами являются Cortex-A15, Cortex-A57, Cortex-A72, Cortex-A73, Cortex-A75, Cortex-A76, Cortex-A76AE, Cortex-A77, Cortex-A78, Cortex-A78AE, Cortex-A78C. Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1.
Обе компании дали рекомендации и прямо сейчас предлагают программные контрмеры. ARM предлагает пять различных решений по смягчению последствий в зависимости от системы.
В своем эксплойте для Linux исследователи VUSec использовали eBPF, технологию, доступную, начиная с версии 4.4 ядра, которая позволяет помещать программы в песочницу в ядре операционной системы. Хотя eBPF не является частью основной проблемы, и можно найти другие инструменты кода, которые могут привести к утечке данных, наличие непривилегированного eBPF «значительно облегчает спекулятивные (и другие) атаки», — говорят исследователи. По этой причине его рекомендуют отключать, и некоторые дистрибутивы Linux начали отключать его по умолчанию.
Источник: ОГО
Смотрите также
.