Обнаружен способ обойти все защиты от уязвимостей процессоров Intel и AMD

Изображение: Pexels, pixabay, cc0
кодирование
кодирование

Новый способ обойти все созданные защиты от группы уязвимостей процессоров x86 Spectre обнаружен группой исследователей из Школы инженерии Виргинского университета, 30 апреля сообщает американский портал о науке ScienceDaily.

Метод может быть применен для получения конфиденциальной информации из миллиардов компьютеров на x86-совместимых процессорах по всему миру. Информация о новом подходе к обману процессоров для извлечения данных передан исследователями разработчикам соответствующих микросхем.

Группа во главе с доцентом кафедры компьютерных наук Ашишем Венкатом обнаружила, что можно украсть данные из такой части спекулятивного механизма работы процессора, как кеш микроопераций (micro-op). Кеш-память micro-op встраивается в процессоры Intel с 2011 года. Есть он и в процессорах AMD.

«Подумайте о гипотетическом сценарии безопасности аэропорта, когда TSA (администрация транспортной безопасности) пропускает вас без проверки посадочного талона, потому что это быстро и эффективно, и вас все равно проверят на наличие посадочного талона у выхода на посадку», — привел аналогию Венкат.

«Компьютерный процессор делает нечто подобное. Он предсказывает, что проверка будет пройдена, и может пропустить инструкции в конвейер. В конечном итоге, если прогноз неверен, он выбросит эти инструкции из конвейера, но это может быть слишком поздно, потому что эти инструкции могут оставлять побочные эффекты во время ожидания в конвейере, которые злоумышленник может впоследствии использовать для кражи секретов, таких как пароль», — сообщил он.

Существующие методы защиты от уязвимостей типа Spectre работают на более поздней стадии спекулятивного механизма и потому бесполезны перед новым методом атак. Исследователи отметили, что новую уязвимость разработчикам будет труднее исправить.

«На самом деле непонятно, как решить эту проблему таким образом, чтобы обеспечить высокую производительность оборудования, но мы должны заставить его работать», — прокомментировал ситуацию Венкат.

Напомним, в процессорах x86 (и x86_64) существует механизм спекулятивного выполнения команд. Процессор пытается предсказать последующие инструкции и начинает заранее подкачивать данные из памяти. Иногда предсказание оказывается неверным, но в большинстве случаев случаются «попадания в цель». В целом механизм позволяет заметно ускорить работу процессора.

Начиная с 2018 года выявлен ряд уязвимостей, связанных со спекулятивным механизмом. Они получили общее название Spectre. Работают они по принципу кражи данных, заранее подтянутых процессором из защищенных областей памяти в кеш-память.

Правильно организованная атака с помощью локально запущенной программы (в некоторых случаях — JavaScript-сценарию, запущенного прямо в браузере) позволяет злоумышленнику прочитать информацию из защищенной виртуальной памяти другого приложения. Например, ключи и пароли.