BranchScope - новая атака на механизм спекулятивного выполнения косвенных переходов в CPU
Как сообщает opennet.ru группа исследователей из американских учебных заведений, среди которых Дмитрий Евтюшкин и Дмитрий Пономарев, разработали новый метод атаки на процессоры, поддерживающие спекулятивное выполнение инструкций. Метод получил название BranchScope и представляет собой вариант атаки по сторонним каналам, восстанавливающий из процессорного кэша остаточные данные, сохраненные в результате активности блока предсказания переходов.
Концептуально предложенный метод напоминает второй вариант атаки Spectre, но отличается способом создания условий для влияния на состояние блока предсказания переходов с целью совершения целенаправленного спекулятивного перехода и оседания в кэше извлеченного из памяти адреса косвенного перехода, который фактически является искомым значением. Вместо буфера предсказания ветвления (Branch Target Buffer) BranchScope вовлекает в атаку процесс выбора направления ветвления для спекулятивного перехода (directional branch predictor) и манипулирует содержимым таблицы с историей шаблонов переходов (PHT, Pattern History Table).
После выполнения спекулятивного косвенного перехода, считанный из памяти адрес перехода (задача атаки, чтобы адрес был взят из области восстанавливаемых данных), остается в кэше, после чего для его извлечения может применяться один из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным.
Атака может быть совершена непривилегированным пользователем и позволяет восстановить содержимое памяти других процессов и закрытых областей памяти, включая анклавы на базе технологии Intel SGX (Software Guard Extensions). Метод был протестирован на процессорах Intel Sandy Bridge, Haswell и Skylake, и продемонстрировал уровень ошибок менее 1%.
Утверждается, что предложенный для Spectre V2 метод защиты (Retpoline) не эффективен против BranchScope, но для блокирования атаки предложен иной метод защиты, который может быть реализован как программно, так и на аппаратном уровне. По мнению компании Intel предложенная в обновлении микрокода техника защиты от первого варианта Spectre (на основе инструкции LFENCE) будет эффективна и для защиты от атаки BranchScope. Для защиты важных данных также могут применяться типовые криптографические методы защиты от утечки по сторонним каналам.