В процессорах AMD на базе микроархитектур Zen+ и Zen 2 обнаружена уязвимость класса Meltdown
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Группа исследователей из Технического университета Дрездена выявила уязвимость (CVE-2020-12965) в процессорах AMD на базе микроархитектур Zen+ и Zen 2, позволяющую совершить атаку класса Meltdown. Изначально предполагалось, что процессоры AMD Zen+ и Zen 2 не подвержены уязвимости Meltdown, но исследователями была выявлена особенность, приводящая к спекулятивному обращению к защищённым областям памяти при использовании неканонических виртуальных адресов.
Архитектура AMD64 подразумевает использование только первых 48 бит виртуального адреса и игнорирование оставшихся 16 бит. При этом определено, что биты с 48 по 63 всегда должны копировать значение 47 бита (расширение знакового бита). В случае нарушения данного условия и попытки обращения по адресу с произвольными значениями верхних битов процессор генерирует исключение. Повторяющееся заполнение верхних битов приводит к разделению доступного адресного пространства на два блока - нижний (от 0 до 00007FFFFFFFFFFF), в котором верхние биты обнулены, и верхний (от FFFF800000000000 до FFFFFFFFFFFFFFFF), в котором все верхние биты выставлены в 1.
Адреса подпадающие под указанные блоки называются каноническими, а некорректные адреса с произвольным содержимым верхних битов - неканоническими. Нижний диапазон канонических адресов, как правило, выделяется под данные процесса, а верхний используется для данных ядра (доступ к указанным адресам из пространства пользователя блокируется на уровне разделения привилегий).
Классическая уязвимость Meltdown основывается на том, что в ходе спекулятивного выполнения инструкций процессор может выполнить обращение к закрытой области данных, после чего отбросить результат так как выставленные привилегии запрещают такое обращение из процесса пользователя. В программе спекулятивно выполняемый блок отделяется от основного кода условным переходом, который в реальных условиях всегда срабатывает, но из-за того, что в условном операторе используется вычисляемое значение, которое процессор не знает во время упреждающего выполнения кода, осуществляется спекулятивное выполнение всех вариантов ветвления.
Так как для спекулятивно выполняемых операций используется тот же кэш, что и для обычно выполненных инструкций, имеется возможность в ходе спекулятивного выполнения выставить в кэше маркеры, отражающие содержимое отдельных битов в закрытой области памяти, и затем в обычно выполняемом коде определить их значение через анализ времени обращения к прокэшированным и не прокэшированным данным.
Особенность новой уязвимости, которой подвержены процессоры AMD Zen+ и Zen 2, в том, что CPU допускают спекулятивное выполнение операций чтении и записи, обращающихся к памяти с использованием недопустимых неканонических адресов, просто игнорируя верхние 16 бит. Таким образом, в процессе спекулятивного выполнения кода процессор всегда использует только нижние 48 бит, а проверка допустимости адреса производится отдельно. Если при трансляции неканонического виртуального адреса в физический адрес в буфере ассоциативной трансляции (TLB) будет выявлено совпадение канонической части адреса, то спекулятивная операция load вернёт значение без учёта содержимого верхних 16 бит, что позволяет обойти разделение памяти между потоками. В последствии операция будет признана недопустимой и отброшена, но обращение к памяти будет выполнено и данные осядут в кэше.
В ходе эксперимента при использовании техники определения содержимого кэша FLUSH+RELOAD исследователям удалось организовать канал для скрытой передачи данных со скоростью 125 байт в секунду.
Кроме чипов AMD проблема также затрагивает и все процессоры Intel, подверженные классической уязвимости Meltdown. Для защиты от нового вида атаки могут применяться те же методы, которые помогают блокировать атаки Meltdown, такие как использование инструкций LFENCE. Например, если процессор Intel включает аппаратную защиту от Meltdown или в системе включена программная защита, то подобные конфигурации не подвержены новому варианту атаки.
При этом исследователи отмечают, что по сравнению с процессорами Intel архитектура процессоров AMD ограничивает возможность проведения реальных атак, но не исключает применение нового метода в комбинации с другими микроархитектурными атаками для повышения их эффективности. В частности, предложенный вариант атаки не позволяет определить содержимое областей памяти ядра и других процессов, а ограничивается возможностью получить доступ к другим потокам той же программы, выполняемым в одном пространстве виртуальной памяти.
Так как программа из без уязвимости имеет возможность получить доступ к своим потокам, то с практической стороны метод представляет интерес для обхода sandbox-изоляции и организации вмешательства в работу других потоков в программах, допускающих выполнение стороннего кода, таких как web-браузеры и JIT-движки. Исследователи изучили подверженность атаке JavaScript-движка SpiderMonkey и ядра Linux, но не нашли уязвимых последовательностей кода, при помощи которых можно было бы совершить атаку. Помимо атаки на приложения метод также может применяться для форсирования недопустимых потоков данных между микроархитектурными элементами процессора в процессе эксплуатации других микроархитектурных уязвимостей.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://www.theregister.com/20...)
- OpenNews: L1DES (CacheOut) и VRS - новые уязвимости в микроархитектурных структурах CPU Intel
- OpenNews: Выявлен новый вариант атаки Zombieload на процессоры Intel
- OpenNews: Представлен новый класс уязвимостей в процессорах Intel
- OpenNews: Семь новых атак на механизм спекулятивного выполнения в CPU
- OpenNews: Представлены новые виды атак MeltdownPrime и SpectrePrime
Похожие новости:
- Доступна система фильтрации спама Rspamd 3.0
- Доля Linux-пользователей в Steam составила 1%. Valve и AMD работают над улучшением управления частотой CPU AMD в Linux
- [Производство и разработка электроники, Компьютерное железо, Процессоры, Будущее здесь] TSMC разработала прямое водяное охлаждение чипов на 2600 Вт
- [Управление продажами, Компьютерное железо, Видеокарты, Криптовалюты] Китайский рынок наводнили тысячи подержанных видеокарт
- [Финансы в IT, Видеокарты] Цены на видеокарты в Германии и Австрии откатились на уровень февраля
- [Высокая производительность, Визуализация данных, Хранение данных, Облачные сервисы] ZEN’изация по полной, выбираем правильную память для EPYC процессоров
- Уязвимость в специфичном для CPU AMD коде KVM, позволяющая выполнить код вне гостевой системы
- [Производство и разработка электроники, Компьютерное железо, Настольные компьютеры, Процессоры, IT-компании] AMD выпустила бракованные APU из Xbox Series X в виде набора 4700S без встроенной графики
- [Компьютерное железо, Видеокарты, Настольные компьютеры, Процессоры] Нюансы подбора железа без видеокарты
- [Процессоры, Игры и игровые приставки, Транспорт] AMD подтвердила, что поставляет «сердце» игровой консоли для Tesla Model S и X
Теги для поиска: #_amd, #_meltdown, #_mds
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 05:41
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Группа исследователей из Технического университета Дрездена выявила уязвимость (CVE-2020-12965) в процессорах AMD на базе микроархитектур Zen+ и Zen 2, позволяющую совершить атаку класса Meltdown. Изначально предполагалось, что процессоры AMD Zen+ и Zen 2 не подвержены уязвимости Meltdown, но исследователями была выявлена особенность, приводящая к спекулятивному обращению к защищённым областям памяти при использовании неканонических виртуальных адресов. Архитектура AMD64 подразумевает использование только первых 48 бит виртуального адреса и игнорирование оставшихся 16 бит. При этом определено, что биты с 48 по 63 всегда должны копировать значение 47 бита (расширение знакового бита). В случае нарушения данного условия и попытки обращения по адресу с произвольными значениями верхних битов процессор генерирует исключение. Повторяющееся заполнение верхних битов приводит к разделению доступного адресного пространства на два блока - нижний (от 0 до 00007FFFFFFFFFFF), в котором верхние биты обнулены, и верхний (от FFFF800000000000 до FFFFFFFFFFFFFFFF), в котором все верхние биты выставлены в 1. Адреса подпадающие под указанные блоки называются каноническими, а некорректные адреса с произвольным содержимым верхних битов - неканоническими. Нижний диапазон канонических адресов, как правило, выделяется под данные процесса, а верхний используется для данных ядра (доступ к указанным адресам из пространства пользователя блокируется на уровне разделения привилегий). Классическая уязвимость Meltdown основывается на том, что в ходе спекулятивного выполнения инструкций процессор может выполнить обращение к закрытой области данных, после чего отбросить результат так как выставленные привилегии запрещают такое обращение из процесса пользователя. В программе спекулятивно выполняемый блок отделяется от основного кода условным переходом, который в реальных условиях всегда срабатывает, но из-за того, что в условном операторе используется вычисляемое значение, которое процессор не знает во время упреждающего выполнения кода, осуществляется спекулятивное выполнение всех вариантов ветвления. Так как для спекулятивно выполняемых операций используется тот же кэш, что и для обычно выполненных инструкций, имеется возможность в ходе спекулятивного выполнения выставить в кэше маркеры, отражающие содержимое отдельных битов в закрытой области памяти, и затем в обычно выполняемом коде определить их значение через анализ времени обращения к прокэшированным и не прокэшированным данным. Особенность новой уязвимости, которой подвержены процессоры AMD Zen+ и Zen 2, в том, что CPU допускают спекулятивное выполнение операций чтении и записи, обращающихся к памяти с использованием недопустимых неканонических адресов, просто игнорируя верхние 16 бит. Таким образом, в процессе спекулятивного выполнения кода процессор всегда использует только нижние 48 бит, а проверка допустимости адреса производится отдельно. Если при трансляции неканонического виртуального адреса в физический адрес в буфере ассоциативной трансляции (TLB) будет выявлено совпадение канонической части адреса, то спекулятивная операция load вернёт значение без учёта содержимого верхних 16 бит, что позволяет обойти разделение памяти между потоками. В последствии операция будет признана недопустимой и отброшена, но обращение к памяти будет выполнено и данные осядут в кэше. В ходе эксперимента при использовании техники определения содержимого кэша FLUSH+RELOAD исследователям удалось организовать канал для скрытой передачи данных со скоростью 125 байт в секунду. Кроме чипов AMD проблема также затрагивает и все процессоры Intel, подверженные классической уязвимости Meltdown. Для защиты от нового вида атаки могут применяться те же методы, которые помогают блокировать атаки Meltdown, такие как использование инструкций LFENCE. Например, если процессор Intel включает аппаратную защиту от Meltdown или в системе включена программная защита, то подобные конфигурации не подвержены новому варианту атаки. При этом исследователи отмечают, что по сравнению с процессорами Intel архитектура процессоров AMD ограничивает возможность проведения реальных атак, но не исключает применение нового метода в комбинации с другими микроархитектурными атаками для повышения их эффективности. В частности, предложенный вариант атаки не позволяет определить содержимое областей памяти ядра и других процессов, а ограничивается возможностью получить доступ к другим потокам той же программы, выполняемым в одном пространстве виртуальной памяти. Так как программа из без уязвимости имеет возможность получить доступ к своим потокам, то с практической стороны метод представляет интерес для обхода sandbox-изоляции и организации вмешательства в работу других потоков в программах, допускающих выполнение стороннего кода, таких как web-браузеры и JIT-движки. Исследователи изучили подверженность атаке JavaScript-движка SpiderMonkey и ядра Linux, но не нашли уязвимых последовательностей кода, при помощи которых можно было бы совершить атаку. Помимо атаки на приложения метод также может применяться для форсирования недопустимых потоков данных между микроархитектурными элементами процессора в процессе эксплуатации других микроархитектурных уязвимостей. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 05:41
Часовой пояс: UTC + 5