LINUXTALKS.CO

Свежие уязвимости в процессорах Intel и AMD

 , ,

L


0

1

Тэвис Орманди (Tavis Ormandy), исследователь безопасности из компании Google, выявил новую уязвимость (CVE-2023-23583) в процессорах Intel, получившую кодовое имя Reptar и в основном представляющую опасность для облачных систем, в которых выполняются виртуальные машины разных пользователей. Уязвимость позволяет вызвать зависание или аварийную остановку работы системы при выполнении в непривилегированных гостевых системах определённых операций. Для тестирования своих систем опубликована утилита, создающая условия для проявления уязвимости.

Исследователи Центра Гельмгольца по информационной безопасности (CISPA) опубликовали новый метод атаки CacheWarp, позволяющий скомпрометировать механизм защиты AMD SEV (Secure Encrypted Virtualization), применяемый в системах виртуализации для защиты виртуальных машин от вмешательства со стороны гипервизора или администратора хост-системы. Предложенный метод позволяет злоумышленнику, имеющему доступ к гипервизору, добиться выполнения стороннего кода и повышения привилегий в виртуальной машине, защищённой при помощи AMD SEV.

Reptar

По данным исследователя уязвимость Reptar присутствует в семействах процессоров Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake и Sapphire Rapids. В отчёте Intel упоминается, что проблема проявляется начиная с 10 поколения (Ice Lake) процессоров Intel Core и третьего поколения Xeon Scalable, а также в процессорах Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell, Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) и Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake и Denverton). Рассматриваемая уязвимость устранена во вчерашнем обновлении микрокода 20231114.

Уязвимость Reptar вызвана тем, что выполнение инструкции «REP MOVSB», закодированной с избыточным префиксом «REX», приводит к неопределённому поведению. Проблема была выявлена в ходе тестирования избыточных префиксов, которые теоретически должны игнорироваться, но на практике приводили к странным эффектам, например, игнорированию безусловных переходов и нарушению сохранения указателя в инструкциях xsave и call. Дальнейший разбор показал, что добавление избыточного префикса для инструкции «REP MOVSB» вызывает повреждение содержимого буфера ROB (ReOrder Buffer), применяемого для упорядочения инструкций.

Предполагается, что ошибка вызвана неверным вычислением размера инструкции «MOVSB» с избыточным префиксом, что приводит к нарушению адресации инструкций, записанных в буфер ROB после MOVSB, и смещению указателя на инструкции. Подобная рассинхронизация может ограничиться нарушением промежуточных вычислений с последующим восстановлением целостного состояния. Но если вызвать сбой одновременно на нескольких ядрах или SMT-потоков, можно добиться достаточного повреждения микроархитектурного состояния для аварийной остановки работы.

CacheWarp

Атака CacheWarp основана на использовании уязвимости (CVE-2023-20592), вызванной некорректной работой с кэшем во время выполнения процессорной инструкции INVD, при помощи которой можно добиться рассогласования данных в памяти и кэше, и обойти механизмы поддержания целостности памяти виртуальных машин, реализованные на базе расширений SEV-ES и SEV-SNP. Уязвимость затрагивает процессоры AMD EPYC с первого по третье поколения.

Для процессоров AMD EPYC третьего поколения (Zen 3) проблема устранена в ноябрьском обновлении микрокода, выпущенном вчера компанией AMD (исправление не приводит к снижению производительности). Для первого и второго поколений AMD EPYC (Zen 1 и Zen 2) защита не предусмотрена, так как в данных CPU отсутствует поддержка расширения SEV-SNP, обеспечивающего контроль целостности виртуальных машин. Четвёртое поколение процессоров AMD AMD EPYC «Genoa» на базе микроархитектуры «Zen 4» уязвимости не подвержено.

Технология AMD SEV применяется для изоляции виртуальных машин такими облачными провайдерами, как Amazon Web Services (AWS), Google Cloud, Microsoft Azure и Oracle Compute Infrastructure (OCI). Защита AMD SEV реализована через шифрование на аппаратном уровне памяти виртуальных машин. Дополнительно при помощи расширения SEV-ES (Encrypted State) осуществляется защита регистров CPU. Доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и гипервизор при попытке обращения к этой памяти получают зашифрованный набор данных.

В третьем поколении процессоров AMD EPYC было реализовано дополнительное расширение SEV-SNP (Secure Nested Paging), обеспечивающее безопасную работу со вложенными таблицами страниц памяти. В дополнение к общему шифрованию памяти и изоляции регистров, в SEV-SNP реализованы дополнительные средства для защиты целостности памяти, не допускающие внесения изменений в VM со стороны гипервизора. Управление ключами шифрования производится на стороне встроенного в чип отдельного процессора PSP (Platform Security Processor), реализованного на базе архитектуры ARM.

Суть предложенного метода атаки использовании инструкции INVD для аннулирования блоков (линий) в кэше грязных (dirty) страниц без сброса накопившихся в кэше данных в память (write-back). Таким образом метод позволяет вытеснить изменённые данные из кэша, не меняя состояние памяти. Для совершения атаки предлагается использовать программные исключения (fault injection) для прерывания работы виртуальной машины в двух местах: в первом месте атакующий вызывает инструкцию «wbnoinvd» для сброса всех накопленных в кэше операций записи в память, а во втором месте вызывает инструкцию «invd» для возврата неотражённых в памяти операций записи в старое состояние.

Для проверки своих систем на наличие уязвимости опубликован прототип эксплоита, позволяющий выполнить подстановку исключения в виртуальную машину, защищённую через AMD SEV, и откатить в старое состояние несброшенные в память изменения в VM. Откат изменения может быть использован для изменения хода выполнения программы через возвращение старого адреса возврата в стеке или для использования при входе параметров старого сеанса, для которого ранее была выполнена аутентификация, через возвращение значения признака аутентификации.

Например, исследователями продемонстрирована возможность применения метода CacheWarp для совершения атаки Bellcore на реализацию алгоритма RSA-CRT в библиотеке ipp-crypto, позволившей восстановить закрытый ключ через подстановку ошибок при вычислении цифровой подписи. Также показано как можно подменить параметры проверки сеанса к OpenSSH при удалённом подключении к гостевой системе, а затем изменить состояние проверки при выполнении утилиты sudo для получения прав root в Ubuntu 20.04. Работа эксплоита проверена на системах с процессорами AMD EPYC 7252, 7313P и 7443.

>>> Подробности

★★★★★★★★★★
Ответ на: комментарий от cocucka

а я и не спросил. видишь, нет вопроса? дебилизм потому что делаешь. я за тегами следил, а у тебя они не для индексации и поиска, а забавы для. помойка.

crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от Minona

эльбрус это всё равно что отсутсвие процессора

компилятор закрыт, в 2023. вы только вдумайтесь

писать за них софт, иза того что эти сверхразумы закрыли возможности адаптации, в тч портов, не вижу смысла. из этого исходит, что покупать его имеет смысл только для написания софта для рф рынка, велосипед с нуля можно собрать, хотя могли бы большие дяди ту же фряху для него адаптировать УЖЕ

может и годная технология, только вот узнаем наверняка об этом когда цена оверпрайс для ТАКИХ вычислительных мощностей исчезнет + свободный компилятор

anonymous    

Windows / Firefox

Рассматриваемая уязвимость устранена во вчерашнем обновлении микрокода 20231114.

Интересно, что здесь отсутствует приписка «исправление не приводит к снижению производительности».

anonymous    

Linux / Chrome