Исследователи нашли способ обойти меры по защите от атак по побочным каналам, связанных со спекулятивным выполнением кода уязвимости Spectre v2, и представили рабочий эксплойт для кражи секретных данных с машин Linux.
Новый метод эффективен против средств защиты от Spectre v2 на процессорах AMD и Intel, которые используют механизмы проверки или изоляции предсказаний ветвлений, которые исследователи обычно называют средствами нейтрализации.
Уязвимость задействует механизм предсказания косвенных переходов процессора и заставляет его неправильно предсказывать цель косвенного перехода, что приводит к спекулятивному выполнению по пути кода, на который повлиял злоумышленник.
Современные процессоры используют предсказание ветвлений для определения наиболее вероятного пути выполнения и спекулятивное выполнение для запуска инструкций по этому предсказанному пути до того, как станет известен результат ветвления.
Spectre v2 позволяет злоумышленнику манипулировать алгоритмом предсказания косвенных ветвлений процессора таким образом, чтобы процессор спекулятивно выполнял инструкции в выбранном злоумышленником месте, что может привести к утечке конфиденциальных данных.
При использовании методов нейтрализации (eIBRS на Intel и Safe RET на AMD) возникает разрыв между моментом изоляции предсказателя ветвлений и моментом его использования целевой ветвью.
Активные меры защиты от Spectre v2 предполагают, что злоумышленник не сможет использовать в своих интересах время между очисткой состояния предсказателя ветвлений и его использованием.
Однако исследователи ввели примитив, позволяющий повторно идентифицировать состояние процессора после очистки, но до его использования.
Ученые из Массачусетского технологического института (CSAIL) обнаружили метод использования временного окна от момента нейтрализации до момента использования (TONTOU) для извлечения конфиденциальных данных.
Злоумышленник, не имеющий специальных прав доступа, может считывать произвольные данные из памяти системы, включая конфиденциальную информацию, такую как хешированные пароли.
Исследователи разработали атаку с внедрением прерываний, при которой «непривилегированные пользовательские программы могут планировать прерывания таймера на время выполнения ядра».
Таким образом, они смогли принудительно перенаправить ядро на обработчик прерываний и использовать этот обработчик для отравления микроархитектурных состояний в течение периода после нейтрализации.
При этом прерывания, возникающие в период после нейтрализации, могут быть использованы для отравления алгоритма предсказания косвенных ветвлений процессора, что позволяет осуществлять атаки против всех типов косвенных ветвлений.
На хосте AMD Zen 2 с новейшими средствами защиты от Spectre v2 ученым удалось успешно отработать все этапы атаки TONTOU. Скорость утечки данных из из памяти ядра составила 5,47 байт/с с точностью 91,97%.
В ходе 10 тестовых запусков атака успешно обнаружила и извлекла файл в пяти случаях, при этом каждая попытка занимала в среднем 18 минут. Атака возможна и на машинах Intel, но дополнительные требования к ПО усложняют задачу.
Исследователи отмечают, что внедрение прерываний позволяет злоумышленнику контролировать отравление буфера стека возврата (RSB), что приводит к ошибочным прогнозам целевых значений возврата. Поскольку пассивное загрязнение RSB менее надежно, они объединили внедрение прерываний с ранее раскрытой атакой Inception.
AMD опубликовала уведомление, в котором отметила, что проблема с внедрением прерываний «по всей видимости, связана» с тем, как в Linux реализована защита Safe RET от потенциальных атак, приводящих к раскрытию информации.
Исследователи представили свои выводы на конференции Black Hat USA, а также намерены раскрыть подробности на конференции USENIX Security 2026, которая пройдет с 27 по 29 октября.