Spectre возвращается: новая атака TONTOU ломает защиту процессоров Intel и AMD

Читать в полной версии

Американские исследователи нашли способ обойти механизмы защиты от уязвимостей класса Spectre v2 для процессоров AMD и Intel и разработать эксплойт для кражи данных с машин под управлением Linux.

Источник изображения: Brian Kostiuk / unsplash.com

Схема атаки на уязвимости класса Spectre v2 основана на эксплуатации механизма косвенного предсказателя ветвлений на процессоре — она заставляет процессоры неправильно предсказывать цель косвенного ветвления, в результате чего оказывается возможным выполнить код, на который влияет злоумышленник, и это грозит утечкой конфиденциальных данных. Для защиты от Spectre v2 разработаны решения Intel eIBRS и AMD Safe RET.

Активные методы защиты от Spectre v2 исходят из того, что злоумышленник не сможет использовать в своих интересах небольшой промежуток времени между очисткой состояния предсказателя ветвлений и его использованием. Но исследователи разработали способ, который позволяет повторно вмешиваться в состояние процессора после изоляции его состояния, но до использования результатов предсказания. Схему атаки они назвали TONTOU — «от времени нейтрализации до времени использования».

При атаке производится внедрение прерываний, при котором «непривилегированные пользовательские программы могут планировать прерывания по таймеру» во время работы ядра. Обработчик прерываний используется для изменения состояний процессора на уровне микроархитектуры состояний после нейтрализации базовой угрозы Spectre v2. Для успешной реализации схемы атаки приходится задействовать несколько ресурсов: перенаправлять поток управления ядра, в точности выравнивать прерывания по времени после нейтрализации Spectre v2 и использовать обработчик прерываний для подстановки нужных данных в записи предсказателя ветвлений.

Атака применима к системам на процессорах Intel и AMD. В случае процессора AMD Zen 2 на системе с 16 Гбайт оперативной памяти под Linux 6.14.0-37 они добились извлечения данных со скоростью 5,47 байт/с с точностью 91,97 %. В пяти случаях из десяти это позволило извлечь данные каталога «/etc/shadow», в котором хранятся хеши паролей, в среднем за 18 минут. Атака на системы с процессорами Intel осуществляется по более сложной схеме. В AMD предположили, что проблема связана с особенностями реализации защитного механизма Safe RET под Linux.