Кинематограф вдохновил учёных на создание эксплоита для процессоров AMD.
Исследователи из Швейцарской высшей технической школы Цюриха ETH Zurich разработали новый тип атаки переходного выполнения (Transient execution), получивший название «Training in Transient Execution» (TTE).
TTE позволил создать эксплоит « Inception », который позволяет совершить утечку данных из ядра памяти со скоростью до 39 Б/с на AMD Zen 4. Исследователи смогли за 40 минут получить доступ к файлу «/etc/shadow» на Linux-машине, который содержит хешированные пароли пользователей и обычно доступен только для root-пользователей. Атака потребует полсекунды для кражи 16-символьного пароля и 6,5 секунд для кражи ключа RSA.
Как работает Inception?
Подобно Zenbleed, Inception ( CVE-2023-20569 ) использует спекулятивное выполнение — технологию, при которой компьютер предварительно выполняет операции, которые могут понадобиться в будущем. Если предсказание операции оказывается неверным, спекулятивно выполненные инструкции отбрасываются, и процессор возвращается к правильной точке выполнения. Такой процесс называется неправильным предсказанием ветвления.
Исследователи объединили старый эксплоит «Phantom» (воздействующий на архитектуры AMD Zen 1 и Zen 2) с атакой TTE, чтобы создать Inception. Название «Inception» («Начало») взято из одноименного фильма, в котором основная суть заключается во внедрении идеи в чью-то голову во сне. В данном контексте исследователи говорят о «внедрении» идеи в процессор во время его «сна».
TTE — это манипулирование будущими неправильными прогнозами путем внедрения новых прогнозов в предсказатель ветвления (Branch Predictor Unit, BPU) для создания спекулятивных выполнений.
Атака позволяет злоумышленнику создавать окно переходного выполнения (Transient Execution Window) для произвольных инструкций XOR, что приводит к переполнению буфера стека возврата (Return Stack Buffer, RSB) целевым адресом, контролируемым злоумышленником, что позволяет получить произвольные данные из непривилегированных процессов, запущенных на процессоре AMD Zen.
Основное отличие Inception от большинства атак переходного выполнения заключается в том, что во время работы окна переходного процесса в предсказателе ветвлений вставляются новые прогнозы, что приводит к переполнению буфера стека возврата.
Что делать?
Стоит отметить, что утечка данных возможна, даже если все средства защиты от подобных атак, вроде Spectre, уже применены.
Для полного устранения угрозы AMD, возможно, придется очищать предсказатель ветвления при переключении контекстов, что может сильно снизить производительность. AMD предложила другое решение: все косвенные ветвления будут принудительно направляться в безопасное место. Однако до выпуска патчей ваше оборудование останется уязвимым.
Статья об Inception будет представлена на USENIX Security 2023, а статья о Phantom - на MICRO 2023.
Наш канал — питательная среда для вашего интеллекта