Как стать автором
Обновить
«Лаборатория Касперского»
Ловим вирусы, исследуем угрозы, спасаем мир

Security Week 2229: атака Retbleed ломает защиту от Spectre v2

Время на прочтение4 мин
Количество просмотров3.7K
На прошлой неделе исследователи из Швейцарской высшей технической школы Цюриха (ETH Zurich) опубликовали детали новой атаки. Она является развитием обнаруженной в 2018 году атаки Spectre v2. Название Retbleed связано с Retpoline — предложенным ранее способом защиты от Spectre v2 при компиляции наиболее уязвимого программного обеспечения (например, компонентов операционной системы или ПО для виртуализации).


Retbleed предлагает пути обхода Retpoline и тем самым показывает, что этот метод не так надежен, как считалось ранее. При этом Retpoline наносил минимальный ущерб производительности ПО, скомпилированного с его использованием. По оценкам исследователей, эффективные программные средства защиты от Retbleed приведут к падению производительности в пределах 14–39 процентов для уже выпущенных процессоров.

Источники информации:


В предыдущих сериях

Исследовательская работа об уязвимостях и связанных с ними атаках Spectre вышла в начале 2018 года. В ней были описаны два варианта атаки, каждый из которых использует стандартную функциональность процессора — систему предсказания ветвлений (Branch Prediction). Второй вариант Spectre (он же Spectre v2, он же упоминается в новом исследовании как Spectre-BTI или Branch Target Injection) эксплуатирует предсказание ветвлений для кражи секретов. Для реализации атаки требуется наличие в атакуемой программе кода, подверженного уязвимости.

В атакующей программе (она теоретически может быть выполнена с любыми привилегиями, вплоть до кода веб-страницы в браузере) создаются такие условия для тренировки Branch Prediction, что в какой-то момент спекулятивно выполняется подверженный уязвимости код в атакуемой программе. В результате, например, осуществляется доступ к недоступной для атакующего информации. Несмотря на то что предсказание оказывается неверным и результаты вычислений отбрасываются, они сохраняются в кэш-памяти процессора и могут быть извлечены оттуда по сторонним каналам (подробнее атака была описана на Хабре в этой статье).

Retpoline

Атаки Spectre достаточно сложно реализовать. С 2018 года вышло немало теоретических работ, которые представили новые варианты атаки (в том числе по сети). Максимально приближенная к реальности атака (с помощью Spectre v1) была показана в 2021 году. При посещении вредоносной страницы в браузере Google могли быть похищены данные, грубо говоря, из соседней вкладки (или из расширения для браузера): пароль от соцсети, данные из менеджера паролей и тому подобное. После этого вышел патч для браузера, который усилил изоляцию данных и закрыл возможность такой атаки.

Хотя для обычных пользователей атаки типа Spectre вряд ли представляют угрозу в настоящее время, в специализированных задачах, возможно, потребуется предусмотреть защиту. Вариантов решения проблемы примерно столько же, сколько и вариантов Spectre, включая программные и аппаратные «патчи». Retpoline является одним из таких методов. Суть защиты заключается в подмене ряда инструкций при компиляции ПО, что предположительно делает невозможным проведение атак. Преимущество Retpoline в его эффективности. В тестах на сайте Phoronix потеря производительности при использовании Retpoline составила не более 5%. При других, более строгих вариантах ограничения работы Branch Predition, потеря производительности может достигать 25%.

Сомнения в надежности такого привлекательного метода появились уже в январе 2018 года. В защиту Retpoline тогда высказался в своей характерной манере Линус Торвальдс. Его цитата про то, что Retpoline для ядра Linux будет достаточно, вставлена в работу Retbleed. В назидание.

Retbleed

Исследование Retbleed дополняет предыдущие работы, изучающие работу Branch Prediction в современных процессорах. Краткий вердикт авторов: инструкции возврата (результат применения Retpoline), которые ранее считались неуязвимыми для атаки типа Spectre, на самом деле также уязвимы. Таких потенциально эксплуатируемых инструкций в ядре Linux нашлось достаточно. Была показана и практическая атака — кража пароля суперпользователя:


Общие результаты исследования сведены в эту таблицу:


Уязвимость Retbleed была подтверждена для процессоров AMD поколений Zen 1 и Zen 2, а также для процессоров Intel поколений Cofee Lake и Kaby Lake. Также можно сделать вывод, что метод защиты от атак Spectre, известный как IBRS (Indirect Branch Restricted Speculation), в отличие от Retpoline действительно защищает — правда, ценой падения производительности. Скорость извлечения данных с помощью атаки Retbleed традиционно медленная: 219 байт в секунду на процессорах Intel и 3,9 килобайта в секунду на процессорах AMD.

С предсказанием ветвлений в процессорах AMD вообще все немного отличается. В одностраничном дополнении к Retbleed исследователи вводят понятие Phantom JMPs: при некоторых условиях можно заставить систему Branch Prediction выполнить произвольную инструкцию, даже если в атакуемом коде ее нет. Впрочем, тут же следует оговорка, что в реальных атаках такой вариант Spectre реализовать будет еще сложнее, чем обычный.

В своем бюллетене компания Intel рекомендует использовать метод защиты IBRS, который на аппаратном уровне уже внедрен в процессоры поколения Alder Lake (и они не подвержены атаке Retbleed, как показано в таблице выше). Для существующих процессоров защиту от Retbleed можно реализовать лишь на уровне ПО. По данным авторов работы Retbleed, в случае ядра Linux это приводит к падению производительности до 39% для процессоров Intel и до 14% для процессоров AMD. В Windows IBRS используется по умолчанию. В целом можно сделать вывод, что простой метод защиты от Spectre v2 оказался неэффективен, и в случаях, когда это действительно необходимо, придется использовать более сложные способы, с более серьезным падением производительности.

Что еще произошло

Из магазина приложений Google Play были удалены 8 аппов с вредоносным довеском, известным как Autolycos. В случае установки они похищали деньги с мобильных счетов. Зараженные приложения активно рекламировались в соцсетях, всего у них более 7 миллионов загрузок.

Компания Microsoft опубликовала подробный отчет о фишинговой кампании, способной обходить двухфакторную аутентификацию. Целью атаки является бизнес.
Теги:
Хабы:
Всего голосов 3: ↑2 и ↓1+3
Комментарии3

Публикации

Информация

Сайт
www.kaspersky.ru
Дата регистрации
Дата основания
Численность
5 001–10 000 человек
Местоположение
Россия