Группа немецких специалистов из Института прикладной и комплексной безопасности, входящего в Общество Фраунгофера, опубликовала доклад (PDF), посвященный обходу защитного механизма Secure Encrypted Virtualization (SEV), который защищает виртуальные машины, работающие на серверах с процессорами AMD.

Технология Secure Encrypted Virtualization (SEV) была представлена вместе с релизом процессоров EPYC. Это аппаратная функция, шифрующая память для каждой виртуальной машины таким образом, чтобы только сам гость имел доступ к данным. В итоге информация оказывается защищена от других VM, контейнеров и недоверенного гипервизора шифрованием.

Исследователи назвали свою атаку SEVered и объяснили, что с ее помощью из памяти можно извлечь информацию (в виде простого текста) гостевых виртуальных машин, работающих на том же сервере, что и атакованная VM. SEVered эксплуатирует проблему недостаточной защиты целостности шифрования страниц основной памяти, что в итоге позволяет вредоносному гипервизору извлечь содержимое памяти полностью, включая данные виртуальных машин, защищенных SEV. Для реализации SEVered, атакующему понадобится «поработать» с гипервизором сервера, но физический доступ не потребуется.

Дело в том, что VM хранит некоторые данные в основной памяти RAM, и атакующий имеет возможность осуществить маппинг памяти, а затем обратиться к ее конкретным частям, которые используются виртуальными машинами. В нормальных обстоятельствах доступа к этой памяти у атакующего быть, разумеется, не должно, тем более «открытым текстом».

«Тогда как трансляция гостевых виртуальных адресов (Guest Virtual Address, GVA) и гостевых физических адресов (Guest Physical Address, GPA) контролируется самой виртуальной машиной и непрозрачна для гипервизора, он отвечает за трансляцию Second Level Address Translation (SLAT), то есть поддерживает осуществление маппинга GPA виртуальной машины в физические адреса хоста (Host Physical Address, HPA).

Это позволило нам изменить схему расположения ячеек памяти виртуальной машины. Эту возможность мы использовали, чтобы обмануть сервисы VM, например, веб-сервер, и заставили их вернуть произвольные страницы VM в формате простого текста, в ответ на запрос внешнего источника», — пишут специалисты.

Во время тестов эксперты сумели извлечь из памяти тестового сервера, работающего на AMD Epyc 7251 со включенным SEV, 2 Гб информации, в том числе, данные гостевой VM. Наилучших результатов удалось добиться, обращаясь с повторяющимися запросами к Apache и nginx. В этом случае скорость извлечения данных составила 79,4 Кб/сек. Если же использовать для атаки OpenSSH, скорость извлечения информации падает до 41,6 Кб/сек.

Эксперты пишут, что инженерам AMD стоит взять на вооружение опыт разработчиков анклавов Intel SGX и лучше изолировать «общение», между хостом и Guest Physical Address (GPA). Однако такой способ, скорее всего, окажется слишком дорогим, поэтому специалисты так же предложили сверять хеши страниц с гостевыми GPA, после чего страницы будет не так легко подменить через изменения маппинга GPA-HPA.

UPD.

В пресс-службе AMD прокомментировали ситуацию:

«Технология AMD Secure Encrypted Virtualization (SEV) была разработана для того, чтобы защитить виртуальные машины от возможности возникновения непредвиденных уязвимостей в типовых операционных средах. SEVобеспечивает невозможную раньше защиту памяти в виртуальной среде и является первым шагом в построении средств защиты для систем виртуализации. В настоящее время AMD тесно сотрудничает с экосистемой партнеров, чтобы разработать защиту от наиболее скрытых уязвимостей, таких как вредоносные атаки на гипервизоры, описанные ранее немецкими исследователями во всех подробностях».

Оставить мнение