Исследователи из Лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического института выявили новый класс атак на современные процессоры. Он получил название TONTOU и связан с механизмами предсказания ветвлений, которые ускоряют выполнение программ. Ошибочные прогнозы процессора оставляют следы, способные раскрыть данные из защищенной памяти.
Разработчики процессоров и операционных систем применяют защиту, очищая или изолируя механизмы предсказания. Однако между очисткой и следующим использованием этих механизмов остается короткий промежуток, в котором защита может быть нарушена повторно. Авторы работы Даниэль Трухильо и Мэнцзя Янь описали результаты в исследовании MIT CSAIL.
Для использования этой уязвимости специалисты предложили метод «внедрения прерываний». Программы могут настраивать таймеры, а процессор регулярно отвлекается на обработку сигналов от таймеров, сети и оборудования. Точная настройка позволяет запустить прерывание в уязвимый момент и изменить состояние механизмов предсказания.
Исследователи проверили 4 поколения процессоров Intel и AMD и добились ошибочных предсказаний на чипах обоих производителей. На Intel атака обошла 2 вида защиты: программную для старых процессоров и аппаратную для более новых моделей. На AMD защита saferet очищает механизм перед каждым использованием, но даже окно в 2 инструкции удалось использовать после замедления работы процессора.
На системе AMD с актуальным ядром Linux авторы создали рабочий вариант атаки. В 10 попытках примерно по 9 минут им удалось отключить защиту, скрывающую расположение операционной системы в памяти. После этого они считывали защищенные данные со скоростью около 5 байт в секунду и в половине случаев получили доступ к файлу «/etc/shadow» с хешем пароля root.
AMD и Intel получили уведомления об уязвимости в начале февраля, а разработчиков ядра Linux проинформировали в марте. AMD выпустила обновление, снижающее риск атаки, и получить его можно через обновление операционной системы. Исходный код исследования опубликован в открытом доступе.