В предыдущей статье мы говорили об ошибке, которую нельзя исправить в процессорах Intel до десятого поколения. а теперь по этому поводу ошибка, затрагивающая процессоры AMD. И это команда исследователи из Технологического университета Граца (Австрия), ранее известная разработкой методов атаки для MDS, NetSpectre, Throwhammer и ZombieLoad.
Теперь они работали над исследованием конкретных оптимизаций оборудования AMD и разработали два новых метода атаки на сторонние каналы которые манипулируют утечками данных при прогнозировании каналов кэш-памяти первого уровня процессоров AMD.
Методы может использоваться для снижения защиты ASLR, восстановить ключи в уязвимых развертываниях AES и повысить эффективность атаки Spectre.
В своем исследовании они сообщают, что они определили проблемы в реализации механизма предсказания канала (предсказатель формы) в кэше данных ЦП первого уровня (L1D), используемый для прогнозирования, в каком канале кэша отражается конкретный адрес памяти.
Оптимизация, используемая в процессорах AMD, основана на проверке μ-тегов. μTag вычисляется путем применения определенной хеш-функции к виртуальному адресу. Во время операции eМеханизм предсказания канала использует μTag чтобы определить канал кеширования для таблицы.
Таким образом, μTag позволяет процессору ограничиваться доступом только к одному конкретному каналу, без перечисления всех опций, что значительно снижает энергопотребление процессора.
Уязвимость проявляется в Процессоры AMD на базе микроархитектур Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen + и Zen2.
AMD была уведомлена о проблеме 23 августа 2019 года, но еще не выпустила отчет с информацией о блокировке уязвимости.
По данным следствия, проблема может привести к сбою на уровне обновления микрокода из-за предоставления битов MSR для выборочного отключения системы прогнозирования каналов, аналогично тому, как Intel управляла отключением механизмов прогнозирования перехода.
В ходе реверс-инжиниринга реализации системы прогнозирования каналов на процессорах AMD различных поколений, выпущенных в период с 2011 по 2019 год, Выявлены два новых метода таргетинга на сторонние каналы:
- Столкновение + зонд: позволяет злоумышленнику отслеживать доступ к памяти для процессов, работающих на том же логическом ядре, что и ЦП.
Суть метода заключается в использовании виртуальных адресов, вызывающих хеш-коллизии функции, используемой для вычисления μTag для отслеживания доступа к памяти. В отличие от атак Flush + Reload и Prime + Probe, используемых на процессорах Intel, Collide + Probe не использует разделяемую память и работает без знания физических адресов. - Загрузить + Reload: позволяет очень точно определять следы доступа к памяти в одном и том же физическом ядре процессора. Метод основан на том, что физическая ячейка памяти может быть помещена в кэш L1D только один раз.
То есть доступ к той же ячейке памяти по другому виртуальному адресу приведет к вытеснению ячейки из кеша L1D, что позволит вам отслеживать доступ к памяти. Хотя атака основана на разделяемой памяти, она не сбрасывает строки кэша, что позволяет проводить скрытые атаки, которые не вытесняют данные из кеша верхнего уровня.
На основе методов Collide + Probe и Load + Reload, исследователи продемонстрировали различные сценарии атак через сторонние каналы:
Показана возможность использования методов. организовать скрытый косвенный канал связи между двумя процессами, что позволяет передавать данные со скоростью до 588 кБ в секунду.
Используя коллизии в μTag, удалось уменьшить энтропию для разных вариантов рандомизации адресного пространства (ASLR) и обойти защиту ASLR в основном в полностью обновленная система Linux.
Показана возможность приступа для уменьшения энтропии ASLR как пользовательских приложений, так и использования кода JavaScript, исполняемого в среде песочницы и код, работающий в другой гостевой среде.