Практическое применение атаки Retbleed на процессоры AMD

Эксперты Google показали, как можно эффективно эксплуатировать сложные аппаратные уязвимости в процессорах.

Практическое применение Retbleed

Исследователи Маттео Риццо и Энди Нгуен из компании Google опубликовали работу, в которой предложили усовершенствованную атаку Retbleed. Как мы объясняли в одном из предыдущих постов, атака Retbleed эксплуатирует уязвимости в процессорах AMD Zen и Zen 2, а также в процессорах Intel поколений Kaby Lake и Coffee Lake. Аппаратные уязвимости такого рода крайне сложно использовать на практике, из-за чего всевозможные варианты Spectre, а также производные атаки, типа Retbleed, остаются по большому счету теоретическими. Хотя методы борьбы с ними внедряют и создатели процессоров, и разработчики ПО. Суть работы исследователей Google заключается в повышении эффективности атаки Retbleed. Не меняя ничего кардинально в архитектуре атаки, они смоги использовать особенности процессоров AMD Zen 2, чтобы читать произвольные данные из оперативной памяти.

Кратко о Retbleed

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

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

Retbleed можно считать развитием атаки Spectre v2: она также использует особенности работы системы предсказания ветвлений, но отличается принципом «инъекции» инструкций. Более того, Retbleed может обходить технологию, применяемую для защиты от Spectre v2, и, соответственно, угрожает системам на базе более современного железа. Retbleed по-прежнему сложен в реализации: так, в демонстрации авторов оригинального исследования при идеальных условиях секрет (в данном случае — пароль пользователя) вытаскивается целых полтора часа.

Что добились исследователи Google

Исследователи из Google смогли серьезно ускорить атаку Retbleed. Главное, что необходимо знать об их усовершенствовании: они показали возможность чтения произвольных участков оперативной памяти со скоростью 13 килобайт в секунду. Для подобных атак также важна точность «вытаскивания» секретных данных из кэш-памяти, и в данном случае она была стопроцентной. Эксперты показали, как можно обойти системы безопасности ядра операционной системы (в данном случае — ядра Linux). Одним из важных усовершенствований также стало применение атаки, известной как Speculative ROP, но с модификациями для обхода тех самых средств защиты от Spectre v2.

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

Стоит ли ожидать атак Retbleed в реальных атаках?

В большинстве подобных атак исследуется сценарий, в котором вредоносный код запускается с низкими привилегиями на обычном компьютере, в результате чего получает доступ к секретным данным. Но то же самое можно сказать и об атаках с помощью традиционных зловредов. Если злоумышленнику удалось запустить произвольный код в системе, ему вовсе не обязательно прибегать к крайне сложным методам повышения привилегий. Можно найти и что-то попроще, например уязвимость в прикладном или системном ПО, которая даст тот же результат.

Наибольшую опасность атаки, подобные Spectre и Retbleed, представляют для облачных систем. Для провайдера таких систем критически важно, чтобы клиенты, виртуальные машины которых используют общее железо, не могли получить доступ к данным других пользователей и к информации гипервизора. И в Google утверждают, что новый вариант атаки Retbleed позволяет сделать именно это. В результате компания Google перестала использовать серверы с процессорами на архитектуре AMD Zen 2 в собственном облачном сервисе для задач, предполагающих выполнение произвольного кода клиентами.

Советы