Аппаратные меры по смягчению последствий, введенные в процессоры Intel и ARM за последние несколько лет для исправления серьезной уязвимости под названием Spectre, не так сильны, как предполагалось. Исследователи разработали новый метод атаки, способный обойти защиту, но использовать его не так просто, как с исходным недостатком.
Новая атака, обнаруженная исследователями из Группы систем и сетевой безопасности VU Amsterdam (VUSec), называется Spectre-BHI (Department Historical past Injection) или Spectre-BHB (Department Historical past Buffer), поскольку Intel и ARM присвоили ей разные имена. . По данным исследовательской группы, это расширение атаки Spectre версии 2 2017 года, также известной как Spectre-BTI (Department Goal Injection) и, аналогично Spectre v2, может привести к утечке конфиденциальной информации из привилегированного пространства памяти ядра. .
Экспериментальный эксплойт, созданный исследователями VUSec, позволяет утечке хэша пароля root из файла /and so on/shadow с использованием непривилегированной учетной записи. Файл /and so on/shadow — это системный файл в Linux, доступный только для учетной записи администратора root. По сути, эксплойт заставляет ядро загрузить файл в память, где он обычно защищен от доступа непривилегированными процессами, но затем использует атаку Spectre-BHI для доступа и утечки его содержимого. Это серьезное нарушение фундаментальной границы безопасности в современных операционных системах, которая отделяет приложения пользовательского режима и пространство памяти от привилегированного пространства памяти ядра.
Что такое Спектр?
Spectre — это класс уязвимостей безопасности, первоначально раскрытых в январе 2017 года, которые связаны с функцией современных ЦП, связанной с производительностью, называемой спекулятивным выполнением, когда ЦП пытается заранее предсказать, по какому пути пойдет выполнение программы, когда она достигнет условной ветви и выполнять инструкции по этому пути заранее. Если прогноз, основанный на внутренних алгоритмах, оказывается неверным, результаты, хранящиеся во временных кэшах ЦП, отбрасываются. Атаки со спекулятивным выполнением, такие как Spectre и многие другие, обманывают этот механизм для утечки информации из временных кешей, которые действуют как побочные каналы.
«В те дни, когда был обнаружен Spectre, вы могли легко использовать Department Goal 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 начали отключать его по умолчанию.
© 2022 IDG Communications, Inc.
https://cyberxhack.org/