Компания AMD подтвердила потенциальную подверженность CPU AMD Zen 3 атаке Spectre-STL
3 апреля 2021 года
Компания AMD опубликовала отчёт с анализом безопасности технологии оптимизации PSF (Predictive Store Forwarding), реализованной в процессорах серии Zen 3. В ходе исследования теоретически подтверждена применимость к технологии PSF метода атаки Spectre-STL (Spectre-v4), выявленного в мае 2018 года, но на практике способных привести к атаке шаблонов кода пока не найдено и общая опасность оценена как незначительная.
Напомним, что атака Spectre-v4 (Speculative Store Bypass) основывается на восстановлении данных, осевших в процессорном кэше после отбрасывания результата спекулятивного выполнения операций при обработке чередующихся операций записи и чтения с использованием косвенной адресации. Когда операция чтения следует за операцией записи (например, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), смещение адреса для чтения уже может быть известно из-за выполнения похожих операций (операции чтения выполняются значительно чаще и чтение может быть выполнено из кэша) и процессор может спекулятивно выполнить чтение раньше записи, не дожидаясь пока будет вычислено смещение косвенной адресации для записи.
Данная особенность позволяет инструкции чтения получить доступ к старому значению по некоторому адресу во время пока операция сохранения ещё не завершена. При ошибке прогнозирования, неудачная спекулятивная операция будет отброшена, но следы её выполнения останутся процессорном кэше и могут быть извлечены одним из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным.
Добавленная в процессоры AMD Zen 3 технология PSF оптимизирует метод STLF (Store-To-Load-Forwarding), спекулятивно выполняющий операции чтения на основе предсказания взаимосвязи между операциями чтения и записи. При использовании классического STLF процессор выполняет операцию "load" с данными, напрямую перенаправленными из прошлой команды "store", не дожидаясь фактической записи в память результата, но удостоверившись, что использованные в командах "load" и "store" адреса совпадают. Оптимизация PSF делает проверку адресов спекулятивной и выполняет операцию "load" до завершения вычисления информации об адресах, если до этого была выполнена пара store/load, манипулирующая одним адресом. В случае ошибки прогноза состояние откатывается назад, но данные остаются в кэше.
Атака на PSF осуществима только в рамках привилегий одного уровня, охватывает только текущий контекст процесса и блокируется методами изоляции адресного пространства или аппаратными sandbox-механизмами. При этом программные методы sandbox-изоляции в процессах потенциально могут быть затронуты проблемой. Атака представляет опасность для систем, таких как браузеры, виртуальных машины для выполнения кода и JIT, которые выполняют сторонний код внутри одного процесса (в результате атаки незаслуживающий доверия изолированный код может получить доступ к другим данным процесса).
Компания AMD предоставила ряд методов полного или выборочного отключения PSF, но с учётом незначительного риска для большинства приложений рекомендовала не отключать данную оптимизацию по умолчанию. Для защиты предложена техника отключения PSF через установку MSR-битов "SSBD" и "PSFD", в том числе для отдельных потоков. Для ядра Linux подготовлены патчи c реализацией опций командной строки "psfd" и "nopsfd", управляющих включением и выключением PSF.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.