Jump to content

Ленивое восстановление состояния FP

Ленивая утечка состояния FPU ( CVE - 2018-3665 ), также называемый Lazy FP State Restore. [1] или LazyFP , [2] [3] — это уязвимость безопасности, затрагивающая процессоры Intel Core . [1] [4] Уязвимость вызвана сочетанием недостатков в технологии спекулятивного выполнения, присутствующих в затронутых процессорах. [1] и как некоторые операционные системы обрабатывают переключение контекста в модуле с плавающей запятой (FPU). [2] Воспользовавшись этой уязвимостью, локальный процесс может утечь содержимое регистров FPU, принадлежащих другому процессу. Эта уязвимость связана с уязвимостями Spectre и Meltdown , которые были публично раскрыты в январе 2018 года.

Об этом объявила Intel 13 июня 2018 года после того, как ее обнаружили сотрудники Amazon , Cyberus Technology и SYSGO . [1] [а]

Помимо использования для арифметики с плавающей запятой , регистры FPU также используются для других целей, в том числе для хранения криптографических данных при использовании набора инструкций AES , присутствующего во многих процессорах Intel. [3] Это означает, что эта уязвимость может привести к ключевого материала . компрометации [3]

Механизм

[ редактировать ]

Регистры с плавающей запятой и SIMD большие и не используются каждой задачей (или потоком) в системе. Чтобы ускорить переключение контекста, большинство распространенных микропроцессоров поддерживают отложенное переключение состояний. Вместо того, чтобы сохранять полное состояние во время переключения контекста, операционная система может просто пометить FPU как «недоступный» в надежде, что переключенной задаче он не понадобится. Если операционная система угадала правильно, время экономится. Если предположение неверно, первая инструкция FPU или SIMD вызовет ловушку для операционной системы, которая затем сможет сохранить состояние предыдущей задачи и загрузить правильное состояние для текущей задачи.

В вышедших из строя ЦП состояние «FPU недоступен» не обнаруживается сразу. (На самом деле, это почти невозможно обнаружить сразу, поскольку может одновременно выполняться несколько инструкций, вызывающих ошибку, и процессор должен обработать первую обнаруженную ошибку, чтобы сохранить иллюзию упорядоченного выполнения. Информация о том, какая из команд первая, недоступна. до этапа вывода из строя по порядку.) Процессор спекулятивно выполняет инструкцию, используя содержимое регистра предыдущей задачи и некоторые последующие инструкции, и только позже обнаруживает состояние недоступности FPU. Хотя все архитектурное состояние возвращается к началу команды, вызвавшей сбой, можно использовать часть состояния FPU в качестве адреса при загрузке памяти, вызывая загрузку в кэш процессора. Затем эксплуатация происходит по той же схеме, что и все уязвимости семейства Spectre: поскольку состояние кэша не является архитектурным состоянием (кэш влияет только на скорость, а не на корректность), нагрузка на кэш не отменено, и адрес, включая часть состояния регистра предыдущей задачи, может быть позже обнаружен путем измерения времени, затраченного на доступ к различным адресам памяти.

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

смягчение последствий

[ редактировать ]

можно Минимизировать уязвимость на уровне операционной системы и гипервизора , всегда восстанавливая состояние FPU при переключении контекстов процесса. [6] При таком исправлении обновление прошивки не требуется. Некоторые операционные системы уже не выполняли ленивое восстановление регистров FPU по умолчанию, защищая эти операционные системы на затронутых аппаратных платформах, даже если существовала основная проблема с оборудованием. [6] В операционной системе Linux с ядром 3.7 или выше можно заставить ядро ​​быстро восстановить регистры FPU, используя команду eagerfpu=on параметр ядра. [3] Кроме того, многие системного программного обеспечения поставщики и проекты , включая дистрибутивы Linux , [7] OpenBSD , [8] и Зен [4] выпустили патчи для устранения уязвимости.

Примечания

[ редактировать ]
  1. ^ Проект OpenBSD утверждает, что обнаружил уязвимость независимо. [5]

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д «Ленивое восстановление состояния FP» . Интел . 13 июня 2018 г. Проверено 18 июня 2018 г.
  2. ^ Jump up to: а б Стеклина, Джулиан; Прешер, Томас (19 июня 2018 г.). «LazyFP: утечка состояния регистра FPU с использованием побочных микроархитектурных каналов». arXiv : 1806.07480 [ cs.OS ].
  3. ^ Jump up to: а б с д Прешер, Томас; Стеклина, Джулиан; Галович, Яцек. «Уязвимость Intel LazyFP: использование ленивого переключения состояний FPU» . Технология Киберус . Проверено 18 июня 2018 г.
  4. ^ Jump up to: а б «Рекомендации по безопасности Xen CVE-2018-3665/XSA-267, версия 3» . 13 июня 2018 г. Проверено 18 июня 2018 г.
  5. ^ де Раадт, Тео (14 июня 2018 г.). «Воспаление Брайана Кэнтрила» . openbsd-tech (список рассылки) . Получено 18 июня 2018 г. - через marc.info .
  6. ^ Jump up to: а б «Отложенное сохранение/восстановление FPU (CVE-2018-3665)» . Красная шляпа . 14 июня 2018 г. Проверено 18 июня 2018 г.
  7. ^ «CVE-2018-3665» . Дебиан . Проверено 17 июня 2018 г.
  8. ^ «Ошибки OpenBSD 6.3» . OpenBSD . Проверено 18 июня 2018 г.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cec785797467ddc9629337535c0603ea__1659392580
URL1:https://arc.ask3.ru/arc/aa/ce/ea/cec785797467ddc9629337535c0603ea.html
Заголовок, (Title) документа по адресу, URL1:
Lazy FP state restore - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)