Проблемы выявлены в реализации механизма предсказания канала (way predictor) в кэше данных первого уровня CPU (L1D), используемого для предсказания в каком канале кэша отражён определённый физический адрес памяти. Указанная оптимизация на основе привязки к μ-тегам позволяет процессору ограничиваться обращением только к предсказанному каналу, что существенно снижает потребление энергии CPU.

В ходе обратного инжиниринга реализации системы предсказания канала в различных поколениях процессоров AMD, выпускаемых с 2011 по 2019 год, выявлены две новые техники атак по сторонним каналам:
- Collide+Probe — даёт возможность атакующему отслеживать обращение к памяти для процессов, выполняемых на том же логическом ядре CPU, без знания физических адресов и не используя разделяемую память.
- Load+Reload — позволяет очень точно определять следы доступа к памяти на том же физическом ядре CPU. Несмотря на то, что атака зависит от разделяемой памяти, она не приводит к сбросу линий кэша, что даёт возможность проведения скрытых атак, не вытесняющих данные из кэша последнего уровня.
На основе указанных техник исследователями продемонстрировано несколько сценариев атаки по сторонним каналам:
- Показана возможность использования методов для организации скрытого косвенного канала связи между двумя процессами, позволяющего передавать данные на скорости до 588 кB в секунду.
- Используя коллизии в μTag удалось добиться сокращения энтропии для разных вариантов ASLR (Address Space Layout Randomization) и обойти защиту ASLR в ядре на полностью обновлённой Linux-системе. Показана возможность совершения атаки по снижению энтропии ASLR как из пользовательских приложений, так и при помощи выполняемого в sandbox-окружении JavaScript-кода и кода, запущенного в другом гостевом окружении.
- На базе метода Collide+Probe реализована атака по восстановлению ключа шифрования из уязвимой реализации (на основе T-table) шифрования AES.
- Применив метод Collide+Probe в качестве канала для получения данных в ходе атаки Spectre удалось извлечь закрытые данные из ядра, не используя разделяемую память.
Уязвимость проявляется на процессорах AMD на базе микроархитектур Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ и Zen2. Компания AMD была уведомлена о проблеме 23 августа 2019 года, но пока не выпустила отчёт с информацией о блокировании уязвимости. По данным исследователей проблему можно блокировать на уровне обновления микрокода через предоставление MSR-битов для выборочного отключения системы предсказания канала, по аналогии с тем, как поступила компания Intel для управления отключением механизмов предсказания переходов.

Источник: http://www.opennet.ru/opennews/art.shtml?num=52501