> > > > Шифрование RAM в процессорах AMD EPYC оказалось ненадежным

Шифрование RAM в процессорах AMD EPYC оказалось ненадежным

Опубликовано:

amd-epyc

AMD и Intel рекламируют для своих серверных процессоров функцию шифрования оперативной памяти (Memory Encryption). Она призвана защитить важные данные в виртуальных машинах на облачных серверах. AMD Secure Encrypted Virtualization (SEV) и Intel Software Guard Extensions (SGX) как раз призваны обеспечить защиту данных облачных серверов без необходимости полного доверия дата-центру и его администраторам. В данном случае доверять придется сертификатам шифрования AMD (SEV) или Intel (SGX), а также реализации функций защиты данных.

Между тем эксперты обнаружили несколько уязвимостей в технологиях защиты данных как AMD SEV, так и Intel SGX. SGX, например, подвержена атакам стороннего канала, таким как Spectre, L1TF и MDS/RIDL/Zombieload, да и фундаментальная реализация концепции подвергается критике. С будущими процессорами Xeon Intel планирует реализовать новые методы шифрования RAM, такие как Total Memory Encryption (TME) и Multi-Key Total Memory Encryption (MKTME).

AMD SEV: цепочка ключей оказывается уязвимой

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

После старта VM с шифрованием PSP генерирует хэш на основе конфигурации VM и начального содержимого памяти; пользователь VM может сравнить этот хэш с локально сгенерированным, чтобы проверить корректность конфигурации. Но данный хэш должен передаваться по защищенному соединению, чтобы не подвергать опасности цепочку ключей.

В цепочке доверия важную роль играет Chip Endorsement Key (CEK), подписанный AMD. Но, как обнаружили специалисты, у первого поколения EPYC (Naples) ключ CEK можно считать, используя измененную прошивку PSP.

Что делает уязвимым всю цепочку, поскольку если среди сотрудников облачного провайдера окажется злоумышленник, он может взломать криптографические подписи. Также полученный CEK можно использовать для дешифровки данных VM при миграции на другой сервер EPYC.

Также у PSP нет защиты от установки старых прошивок с уязвимостями (Rollback Protection). Поэтому серверы EPYC не защищены от считывания CEK даже после патча PSP от июля 2019.

Команда исследователей под руководством Роберта Бухрена (Robert Buhren) из Берлинского технического университета опубликовала руководство, как можно защитить цепочку ключей AMD SEV. Судя по всему, обновления прошивки недостаточно. На GitHub выложено доказательство Proof-of-Concept (PoC) в виде "Migration Attack".

Подписывайтесь на группы Hardwareluxx ВКонтакте и Facebook, а также на наш канал в Telegram (@hardwareluxxrussia).