secure processor что это
AMD Secure Technology (или ранее называвшуюся Platform Security Proccessor — PSP).
AMD Secure Technology (или ранее называвшуюся Platform Security Proccessor — PSP).
К омпания AMD, также встраивает в свои процессоры ( аналогичную MЕ ) систему AMD Secure Technology (раньше называвшуюся PSP ), начиная с 2013 года.
Вскоре после исправления уязвимости SA-00086, производители материнских плат для процессоров AMD стали поставлять обновления BIOS, позволяющие отключить AMD Secure Technology, эту схожую с Intel ME подсистему.
Компания AMD постоянно старается улучшить работу своих процессоров Ryzen с помощью выпуска регулярных выпусков обновления протокола AGESA. Новая версия AGESA приносит не только поддержку материнским платам с Socket AM4 будущих процессоров AMD, но также добавляет возможность отключить встроенный Secure Processor, также известный, как «процессор для обеспечения безопасности платформы» или просто PSP.
AMD Secure Processor является аналогом Intel Management Engine. Этот встроенный процессор безопасности AMD был тоже подвергнут критике, как один из возможных векторов атаки, которые невозможно обнаружить на уровне операционной системы. Процессор PSP использует технологию ARM TrustZone для хранения конфиденциальных данных, и позволяет получить удалённый доступ к системе авторизированным администраторам.
В свете недавно выявленных уязвимостей в Intel Management Engine, компания AMD, похоже, решила добавить в новую версию AGESA возможность отключения Secure Processor пользователем через BIOS. Некоторые пользователи Reddit обнаружили, что при обновлении BIOS в нём появилась настройка, позволяющая включить или отключить PSP.
С ростом количества мобильных устройств и облачных служб компьютерная среда претерпевает постоянные изменения. Растет и число угроз конфиденциальности и безопасности — они приобретают все более разнообразный и изощренный характер. Только антивирусной программы уже недостаточно для надежной защиты. Теперь необходимо надежное аппаратное решение. Встроенная система безопасности на базе технологии AMD Secure защищает непосредственно процессор. Работая совместно с обширной сетью поставщиков платформ, AMD старается обеспечить максимальной защитой всю свою продукцию.
PSP похож на Intel Management Engine для процессоров Intel. Еще в сентябре 2017 года исследователь безопасности Google Сфир Коэн сообщил об уязвимости AMD в подсистеме PSP, которая может позволить злоумышленнику получить доступ к паролям, сертификатам и другой конфиденциальной информации.
AMD объявила об обновлениях прошивки для устранения этих недостатков, их обоснованность с технической точки зрения была подтверждена независимыми экспертами по безопасности, которые рассмотрели раскрытия.
AMD так описывает технологию защиты: «Secure Processor (ранее — процессор для обеспечения безопасности платформы, PSP) является выделенным процессором с технологией ARM TrustZone, а также программной защищённой средой Trusted Execution Environment (TEE), призванной обеспечить работу доверенных приложений сторонних разработчиков. AMD Secure Processor — технология на базе аппаратных средств, которая обеспечивает безопасную загрузку с уровня BIOS до среды TEE. Доверенные приложения сторонних разработчиков могут задействовать стандартные программные интерфейсы, чтобы воспользоваться защищённой средой TEE (функции защиты TEE работают не во всех приложениях).
Новые уязвимости можно быдо разделить на четыре основные категории. Все они по сути позволяют злоумышленникам нацелиться на самый защищённый сегмент процессора, который имеет решающее значение для хранения конфиденциальной информации на устройстве. Определить вредоносный код, хранящийся в Secure Processor, почти невозможно. Зловред может располагаться там годами и не быть обнаруженным — информировали независимые эксперты по безопасности.
Некоторые пользователи компьютеров и ноутбуков, построенных на платформе AMD, при открытии диспетчера устройств могут обнаружить там некое устройство с названием AMD PSP 3.0 Device, требующее установки драйвера. Код у него PCI\VEN_1022&DEV_1456.
Далеко не каждый знает что это за устройство и где взять для него драйвер.
Аббревиатура PSP в данном случае расшифровывается как Platform Security Processor. Это отдельный процессор для защиты программного обеспечения компании AMD. Используется в работе антивирусов, а также защищает некоторые компоненты операционной системы от вредоносного воздействия. Является аналогом Intel Management Engine и также требует установки драйвера. Он входит в состав комплекта драйверов для чипсета.
Сам драйвер нужно скачивать с официального сайта поддержки производителя материнской платы или ноутбука, определив конкретную модель. Обычно он располагается в разделе «Чипсет» (Chipset).
О безопасности UEFI, часть заключительная
Вот и подошел к концу мой опус о безопасности UEFI. В этой заключительной части осталось поговорить о перспективных технологиях и планах на будущее, да пообщаться с читателями в комментариях.
Желая показать бунтарский дух и наплевательство на традиции, ссылки на предыдущие части не даю — сами ищите их там.
Часть седьмая. Технологии будущего
Про SGX и STM я уже упоминал в конце третьей части, поэтому начну рассказ с PSP, которым теперь без вариантов комплектуются все новые AMD APU.
AMD Platform Security Processor
Наблюдая за успехами Intel Management Engine, которым последние 5 лет оборудован каждый чипсет и SoC Intel, в AMD тоже решили не отставать от прогресса и встроить в свои SoC’и чего-нибудь эдакого.
Еще бы — хочется иметь аппаратный корень доверия, хочется нормальный генератор случайных чисел, хочется криптоускоритель и эмулятор TPM 2.0, в общем — много всего хочется, и реализовать это все не трудно — купи IP Core у какого-нибудь поставщика, напиши к нему прошивку и навесь на него побольше системных функций, чтобы пользователь твоей платформы даже не вздумал отключить то, за что столько денег уплочено.
Оригинальная схема PSP, про эмуляцию TPM речи тогда еще не шло.
Для обеспечения безопасности UEFI этот самый PSP предоставляет следующее: подсистему HVB, внутреннее хранилище для S3 BootScript, эмулятор TPM для реализации Measured Boot, генератор случайных чисел и ускоритель криптографических операций.
Hardware Validated Boot
Про эту технологию я уже рассказывал в первой части, теперь расскажу более подробно. Суть ее простая — PSP получает управление до старта BSP и проверяет, чтобы содержимое второй стадии его прошивки и стартового кода не было изменено, в случае успеха BSP стартует с ResetVector’а и машина загружается как обычно, а в случае неудачи пользователю показывают код ошибки на POST-кодере, а BSP крутит мертвый цикл до hard reset’а, после которого все повторяется заново.
HVB, таким образом, является аппаратным корнем доверия для системы, но защищает эта технология только PEI-том, проверка же всего остального — на совести авторов прошивки.
Оригинальная схема AMD HVB
По умолчанию HVB отключен на всех платформах и для включения необходима достаточно нетривиальное его конфигурирование, поэтому я пока и сам не испытывал технологию на практике (хотя непосредственно работаю с прошивками для второго поколения процессоров с PSP), и машин с включенным HVB на открытом рынке не видел.
Integrated TPM 2.0
К релизу Windows 10 рабочая группа TCG подготовила интересное нововведение: вместо использовавшегося ранее интерфейса TIS для взаимодействия с модулями TPM теперь можно использовать вызовы ACPI, что позволяет производителям процессоров реализовать TPM не на внешнем чипе, а прямо в чипсете, да еще и половину реализации сделать программной. Такое решение имеет как преимущества (заменить чипсет сложнее, чем чип TPM в корпусе SSOP-28), так и недостатки (vendor lock-in), но реализовали его на данный момент и Intel (в Skylake) и AMD (в APU с PSP). Стандарт TPM 2.0 поддерживается обоими решениями не целиком, а только настолько, чтобы система со встроенным TPM могла использовать BitLocker и получить сертификат Windows 10 Ready. Тем не менее, теперь полку пользователей TPM однозначно прибудет. Вместе с встроенным TPM появились также аппаратный ГСЧ и криптоускоритель, которые, при желании, можно использовать отдельно.
Secure S3 BootScript Storage
Еще одна фишка PSP — встроенный NVRAM, в котором можно безопасно хранить какие-то пользовательские данные. На данный момент AMD сохраняет туда S3 BootScript, что хорошо защищает систему от атак на него. При этом немного страдает время выхода из S3, но лишние 50-100 мс ради безопасности вполне можно терпеть.
К сожалению, у AMD с открытой документацией на PSP очень грустно, поэтому дать полезных ссылок не могу, все, что мог рассказать без нарушения NDA — уже рассказал.
Intel Software Guard Extensions
Вернемся теперь к технологиям Intel. Об SGX начали говорить около года назад, но для конечного пользователя она стала доступна всего несколько недель назад, когда Intel включила ее для процессоров Skylake в очередном обновлении микрокода. SGX — это новый набор инструкций, позволяющих приложениям создавать т.н. «анклавы», т.е. регионы памяти для кода и данных, аппаратно защищенные от доступа извне, даже если этот доступ производится из более привилегированных режимов исполнения вроде ring 0 и SMM.
Технология достаточно сложная для понимания и использования (почти 200 страниц Programming Reference), но потенциально очень мощная, поэтому Intel начала заниматься ее продвижением.
Принципиальная схема работы SGX, один из более 200 слайдов вот этой презентации, она же в виде 80-минутного видео.
Безопасный анклав посреди обычной памяти.
Мое отношение к этой технологии пока еще не сформировалось — я ее просто еще не пробовал, т.к. не работаю над Skylake в данный момент. Тем не менее, стараюсь не отставать от прогресса слишком уж сильно, поэтому читаю краем уха все, что пишут про SGX, к примеру:
Портал об SGX на сайте Intel.
Обзорная лекция об SGX с сайта Дармштадтского Технического Университета.
Обзорная статья NccGroup с кучей интересных ссылок.
Открытая платформа для написания своего кода для SGX.
И вообще, весь раздел про SGX на firmwaresecury.com.
Intel SMI Transfer Monitor
Вторая технология Intel, о которой я уже упоминал — STM. Первые упоминания о нем датированы 2009 годом, и после 6 лет разработки технология наконец-то была представлена в августе 2015. Суть ее простая: вместо диспетчера SMM в SMRAM запускается гипервизор, и все обработчики SMI выполняются в виртуализованном окружении, что позволяет запретить им вредоносные действия вроде изменения данных в памяти ядра и тому подобные.
Слайд из презентации STM на IDF2015.
Технология позволяет значительно уменьшить как «поверхность атаки» на обработчики SMM, так и разрушительность последствий взлома обработчиков SMI. К примеру, запретив доступ к MMIO чипсета для всех обработчиков, кроме используемого для обновления прошивки, можно защитить ее от остальных обработчиков, путь даже они взломаны атакующим и он имеет возможность выполнить в них произвольный код.
Самое главное преимущество — неприхотливость, для работы STM нужны только включенные VT-x/AMDV и правильные настройки уровней доступа. На данный момент предварительная поддержка STM реализована в EDK2 только для тестовой платы MinnowBoard Max, но в ближайшие полгода-год IBV адаптируют ее для своих платформ, и взлома SMM можно будет опасаться гораздо меньше. Понятно, что бесплатной безопасности не бывает, и STM вносит дополнительную сложность в итак не самый простой процесс инициализации SMM, плюс обработка SMI занимает больше времени (страшнее, на самом деле, то, что оно занимает еще более неопределенное время, опять страдают пользователи жестких ОСРВ), плюс виртуализацию незнающий пользователь платформы может отключить и STM не получится использовать в таких условиях. Тем не менее, я потыкал в STM веткой на MinnowBoard и могу сказать: чем скорее IBV внедрят её — тем лучше.
Заключение
Ну вот и подошел к концу этот цикл статей, надеюсь читателю было интересно.
Технологии развиваются быстро, и если завтра появится какая-то прорывная технология (или найдут зияющую дыру в существующих) — постараюсь о них написать.
В следующей статье будем укрощать SecureBoot — сгенерируем свои ключ PK и KEK, а параноики смогут запретить загрузку любых вещей, не подписанных их ключами. Спасибо за внимание.
Опубликованы детали уязвимости в AMD Secure Processor
Linux для хакера
2018 год начинается с глобальных проблем с процессорами. Первые числа января ознаменовались публикацией информации о проблемах Meltdown и Spectre, затрагивающих практически все современные CPU самых разных производителей. Однако этой многогранной проблеме совсем скоро будет посвящен отдельный и развернутый отчет на страницах ][. А пока поговорим о еще одном баге, информацию о котором обнародовали на днях.
Стало известно, что компания AMD уже подготовила, но еще не выпустила исправления для своих прошивок BIOS/UEFI. Дело в том, что в компоненте, который ранее был известен как «процессор для обеспечения безопасности платформы» (Platform Security Processor), а теперь называется просто Secure Processor, была обнаружена серьезная уязвимость.
Secure Processor представляет собой механизм безопасности похожий на Intel Management Engine. Это тоже chip-on-chip система, которая, как гласит официальный сайт компании, «исполняет роль защитного “слоя” на оборудовании, создавая безопасную среду за счет разделения центрального процессора на два виртуальных “мира”. Важные задачи выполняются в “безопасном мире” AMD Secure Processor, а другие задачи — в обычном режиме».
RCE-уязвимость в AMD Secure Processor, а именно в Trusted Platform Module (TPM), обнаружили специалисты Google Cloud Security Team. Именно TPM хранит такие критические системные данные, как пароли, сертификаты и ключи шифрования. Исследователи пишут, что путем статического анализа, проведенного вручную, им удалось обнаружить проблему переполнения стека, связанную с функцией EkCheckCurrentCert. Через эту брешь, используя специально созданные EK-сертификаты, атакующий может добиться получения прав на выполнение произвольного кода в Secure Processor, скомпрометировав таким образом всю систему. Причем эксплуатацию уязвимости исследователи называют весьма тривиальной, так как Secure Processor не использует такие средства защиты, как ASLR, No-eXecute или stack cookies. Единственная хорошая новость заключается в том, что предварительно атакующему все же понадобится доступ к уязвимой машине, скорее всего, физический.
Инженеров AMD поставили в известность о проблеме еще в сентябре 2017 года, а в декабре разработчики сообщили, что подготовили исправление и готовятся к его распространению. Судя по всему, именно поэтому некоторые владельцы процессоров недавно обнаружили появление новой опции – отключения поддержки AMD PSP, о чем поспешили сообщить на Reddit (1, 2).
Однако, как стало известно журналистам издания The Register, это еще не все исправления и полноценные патчи для данной уязвимости появятся в конце текущего месяца, то есть в январе 2018 года.
amd psp device что это
Компания AMD постоянно старается улучшить работу своих процессоров Ryzen с помощью выпуска регулярных выпусков обновления протокола AGESA. Новая версия AGESA приносит не только поддержку материнским платам с Socket AM4 будущих процессоров AMD, но также добавляет возможность отключить встроенный Secure Processor, также известный, как «процессор для обеспечения безопасности платформы» или просто PSP, сообщает Phoronix.
AMD Secure Processor является аналогом Intel Management Engine. Этот встроенный процессор безопасности AMD был подвергнут критике, как один из возможных векторов атаки, которые невозможно обнаружить на уровне операционной системы. Процессор PSP использует технологию ARM TrustZone для хранения конфиденциальных данных, и позволяет получить удалённый доступ к системе авторизированным администраторам.
В свете недавно выявленных уязвимостей в Intel Management Engine, компания AMD, похоже, решила добавить в новую версию AGESA возможность отключения Secure Processor пользователем через BIOS. Некоторые пользователи Reddit обнаружили, что при обновлении BIOS в нём появилась настройка, позволяющая включить или отключить PSP.
Компания AMD постоянно старается улучшить работу своих процессоров Ryzen с помощью выпуска регулярных выпусков обновления протокола AGESA. Новая версия AGESA приносит не только поддержку материнским платам с Socket AM4 будущих процессоров AMD, но также добавляет возможность отключить встроенный Secure Processor, также известный, как «процессор для обеспечения безопасности платформы» или просто PSP, сообщает Phoronix.
реклама
В свете недавно выявленных уязвимостей в Intel Management Engine, компания AMD, похоже, решила добавить в новую версию AGESA возможность отключения Secure Processor пользователем через BIOS. Некоторые пользователи Reddit обнаружили, что при обновлении BIOS в нём появилась настройка, позволяющая включить или отключить PSP.
Некоторые пользователи компьютеров и ноутбуков, построенных на платформе AMD, при открытии диспетчера устройств могут обнаружить там некое устройство с названием AMD PSP 3.0 Device, требующее установки драйвера. Код у него PCIVEN_1022&DEV_1456.
Далеко не каждый знает что это за устройство и где взять для него драйвер. Об этом мы и поговорим в данной статье.
Что это такое и где взять драйвер?
Аббревиатура PSP в данном случае расшифровывается как Platform Security Processor. Это отдельный процессор для защиты программного обеспечения от компании AMD. Используется в работе антивирусов, а также защищает некоторые компоненты операционной системы от вредоносного воздействия. Является аналогом Intel Management Engine и также требует установки драйвера.
Он входит в состав комплекта драйверов для чипсета.
Вхождение драйвера к устройству AMD PSP 3.0 Device в состав пакета драйверов на чипсет
Сам драйвер нужно скачивать с официального сайта поддержки производителя материнской платы или ноутбука, определив конкретную модель. Обычно он располагается в разделе «Чипсет» (Chipset).
Изучаем шифрование памяти в процессорах AMD, или как EPYC 7000 защищает ваше облако
Конфигурация тестового стенда:
Сегодня, когда обычные Cloud-системы трансформируются в гибридные облака, необходимо обеспечить одинаковый уровень безопасности как на локальном сервере, который стоит под тремя замками офисе компании, так и на удалённом виртуальном, о котором может быть не известно ничего кроме виртуальной конфигурации. При этом, число уязвимостей в корпоративном ПО, связанным с виртуализацией, растёт с каждым годом, а общая динамика числа новых уязвимостей по данным NIST (https://www.nist.gov/) растёт экспоненциально:
Подобные атаки, связанные с повышением прав доступа, могут использовать не только программные ошибки в коде ОС, но и аппаратные баги в архитектуре процессора, что подтверждается печальным опытом компании Intel, которая вынуждена закрывать уязвимости в своих Xeon-ах ценой снижения их производительности. Даже у нас в тестовых серверах на Intel Xeon используются операционные системы осени 2018 года (до появления Meltdown/Spectre), потому что патчи безопасности настолько сильно замедляют машину, что это уже мешает нормальному тестированию.
Но есть в мире одна компания, которая каждую новую уязвимость в процессорах Intel встречает под звон бокалов с шампанским и аплодисменты: это AMD, поскольку мало того, что их архитектура CPU не подвержена уязвимостям, связанным со спекулятивным исполнением команд, так ещё и их процессоры EPYC серии 7000 изначально разрабатывались для более высокого уровня безопасности при работе в изолированных средах: обычная и контейнерная виртуализация, то есть всё то, что сегодня наиболее востребовано в IT-бизнесе.
В общем-то, под громкими словами «технологии безопасности», скрываются два основных нововведения:
Для начала, я изучил предложение ны рынке облачных провайдеров на июнь 2019 года. Ни одна из знакомых мне компаний не афишировала какие-то особые технологии, касаемые безопасности. Процессоры AMD EPYC 7000 открыто предлагала в аренду (в составе физических серверов, конечно), только компания » Селектел «. И хотя эти CPU созданы для того, чтобы нарезать их на сотни виртуалок и продавать как сервис в виде контейнеров и VPS, их предлагают по принципу «разбирайтесь сами». Тогда я прямо спросил ведущих российских облачных провайдеров о том, где используется шифрование и шифруют ли они память?
Максим Захаренко, генеральный директор компании Облакотека (https://oblakoteka.ru/):
С шифрованием данных ситуация довольно непростая. Каналы передачи корпоративных данных практически всегда и по умолчанию шифрованные, а вот хранение дисков виртуальных машин в облаке чаще всего осуществляется в открытом виде. Связано это с тем, что расшифровка данных осуществляется на стороне облачного провайдера, то есть данные реально защищены только в момент, когда машина выключена. При этом есть, например, технология Shielded VMs от Microsoft. Она позволяет полностью изолировать виртуальную машину от доступа провайдера, но «Облакотека» использует кластерную организацию платформы, поэтому любое неосторожное движение, ошибки в обновлениях могут привести к утрате доступа к ВМ без возможности восстановления. Так что теоретически шифрование выглядит панацеей от угроз безопасности в облаке, а практически — мало используется. NDA, административные санкции к провайдеру, методы защиты платформы — всё это на сегодняшний день достаточно зрело и системно. Поэтому фактически нарушений безопасности в облаке существенно меньше, чем при размещении ИТ-инфраструктуры в офисе.
Шифрование ОЗУ не используем. Оперативная память – не самое интересное для атаки место, по крайней мере в наших сценариях.
Ну что же, придётся разбираться самостоятельно. Тем интереснее будет понять, почему целевая аудитория процессоров EPYC 7000 так прохладно отнеслась к технологии, которая призвана дать им конкурентное преимущество на весьма перегретом рынке. Как говорится, поехали!
OK, что есть у AMD для защиты памяти?
TSME включается в BIOS-е материнской платы, но будьте готовы, что у вас этой функции может и не быть, так как она конфликтует с другими методами шифрования, и производители её не афишируют. В нашей тестовой материнской плате ASRock Rack EPYCD8-2T она включается через скрытое меню в BIOS-е при нажатии CTRL+ALT+F3, но ни в инструкции, ни на сайте компании о её поддержке не было ни слова.
От каких напастей защищает TSME?
AMD SME
Вообще, с моей точки зрения, при наличии TSME, функция SME уже выглядит излишней, так как требует поддержки со стороны софта. На момент подготовки статьи, SME поддерживалась только семейством операционных систем Linux с ядром выше 4.14. Но в некоторых дистрибутивах для корпоративного пользователя, например, в Oracle Linux 7.6 на ядре 3.10, функция SME поддерживается и включена по умолчанию. В других же дистрибутивах для включения SME нужно добавить в строку загрузки (файл конфигурации grub) параметр mem_encrypt=on. Проверить работу SME можно выполнив команду в терминале:
вывод должен быть следующим:
[ 0.000000] AMD Secure Memory Encryption ( SME ) active
Аналогично TSME, эта функция защищает данные в памяти от атак, связанных с физическим доступом к памяти: кража NVDIMM, различные варианты Cold Boot с замораживанием модулей DIMM.
Чем SME лучше TSME?
Прежде всего, SME лучше своим механизмом обновлений: если для полностью аппаратного TSME все апдейты осуществляются только через перепрошивку BIOS, про который производитель материнской платы может позабыть, то в для SME компания AMD выпускает обновления для ядра Linux через репозитории GIT. Но эта информация скорее важна для разработчиков ПО, потому что сисадмину остаётся лишь обновлять операционную систему в обычном ритме, и быть уверенным, что в системе установлены все патчи, относящиеся к шифрованию.
Владимир Карагиоз, руководитель группы архитекторов по решениям Red Hat (https://www.redhat.com):
Гипервизор KVM и платформа виртуализации Red Hat Virtualization давно достигли зрелости и помогают тысячам наших клиентов в решении их задач. Мы активно задействуем аппаратные возможности, предоставляемые современными процессорами. В случае нахождения уязвимостей выделенная команда внутри Red Hat позволяет в максимально короткие сроки устранить их.
Ну и разумеется, при выборочном шифровании ОЗУ достигается более высокая производительность, так давайте протестируем скорость. Начнём с нереляционной базы данных Redis, используемой в качестве кэширующего сервера в памяти.
Вообще, хочу заметить, что на таких современных процессорах, как AMD EPYC с активной системой энергосбережения, 1-поточный Redis даёт огромную погрешность измерений, и в нашем случае включение SME всегда ускоряло работу системы. К счастью, в данном тесте для нас важнее, что какого-то ощутимого снижения ни в операциях GET, ни в SET при включении шифрования не происходит.
При тестировании реляционной базы данных MySQL 5.7.26, я решил сменить Oracle Linux 7.6 на Ubuntu 18.04, используя Read-Only паттерн для двух таблиц по 10 000 записей в каждой.
Скажем так: я искал разницу в производительности в приложениях, интенсивно использующих ОЗУ, и не нашёл её. Небольшие различия в показателях можно смело списать на погрешность измерений, так что если вы устанавливаете выделенный сервер для базы данных, будь то NoSQL кэш или SQL база, то шифрование ОЗУ скорость не украдёт. Есть исследования, показывающие, что снижение скорости растёт с увеличением датасета. Я проводил тест MySQL с базой данных объемом 2.7 Гб (12 миллионов записей) и аналогично не заметил влияние TSME на скорость. Вообще, учитывая конфигурацию процессора EPYC 7551p (32 ядра по 2 ГГц), он больше подходит не для сервера под одно приложение, а для облака!
SEV: жемчужина всей защиты AMD
AMD позаботилась и о таком виде атак: функция Security Encryption Virtualization (SEV) обеспечивает шифрование области ОЗУ, выделенной под виртуальную машину, независимо от гипервизора. Каждая виртуалка использует собственный ключ, и ни root администратор, ни хакеры, использующие атаки на повышение прав, не смогут прочитать содержимое дампа памяти вашей виртуальной машины. Причём, функция AMD SEV работает независимо от TSME / SME, и на одном физическом сервере вы можете совмещать как обычные виртуальные машины, так и их варианты с индивидуально зашифрованной памятью, а какое-либо приложение, запущенное на хосте, может использовать шифрование SME.
Будь вы клиент или провайдер облачных услуг, вам важно запомнить, что с механизмом AMD SEV виртуалка в облаке защищена не только от хакеров извне, но и от хозяина сервера. Практически мы говорим о том, что любые атаки на кэши или механизмы префетчинга архитектуры AMD EPYC, не имеют смысла, так как в лучшем случае хакер получит данные в зашифрованном виде. Однако, как показала практика, исследователи смогли её обойти, но об этом чуть позже.
Подайте ложку дёгтя!
Вообще, у AMD есть хороший репозиторий на GITHub со скриптами установки SEV-окружения на SLES-15, RHEL8, Fedora 28(29) и Ubuntu 18.04 с примером запуска зашифрованной гостевой виртуальной машины. Следует заметить, что поскольку Virtual Manager и virsh не поддерживают AMD SEV, запуск и остановка виртуалок производятся командами из графической оболочки гипервизора, то есть окружение рабочего стола должно быть предустановлено и запущено.
Поддерживается ли AMD SEV в контейнерах?
Да, AMD гордится тем, шифрование ОЗУ для виртуалок реализовано в Open-source проекте Kata Containers (https://katacontainers.io), разрабатываемом сообществом OpenStack Foundation. Данная платформа имеет открытую поддержку на операционных системах Clear Linux, Fedora и CentOS 7, она используется такими интернет-гигантами как JD.Com, поддерживает оркестраторы Docker и Kubernetes, и при этом обеспечивает безопасность на том же уровне, что и виртуальные машины.
Фактически, архитектура Kata такова, что контейнеры запускаются внутри SEV-шифрованных виртуальных машин. Это, конечно, не так приятно и не так безопасно как в случае с индивидуальным шифрованием в гипервизоре, но в мультитанантных архитектурах, предлагающих услуги Caas (Container as a Service) вы можете шифровать, например, виртуальный узел, выделенный на клиента. Опять же, одну и ту же услугу можно предлагать как с повышенным уровнем безопасности, так и с традиционным, подгоняя свой маркетинг под запросы клиентов.
Влияние AMD SEV на производительность
Продолжим наше тестирование с помощью Redis 4.9 на платформе Ubuntu 18.04 с гипервизором QEMU из репозитория AMDSEV. В качестве гостевой ВМ использовалась та же Ubuntu 18.04 с 8 Гб ОЗУ и 64 ядрами. Не сравнивайте эти результаты с предыдущими: разные версии Linux и Redis отличаются по скорости почти в два раза.
Да, мы видим, как QEMU отжирает около 15% производительности системы, но при этом включение шифрования памяти не имеет сколько-нибудь существенного влияния на скорость. Перейдём к тестированию операций чтения в MySQL, используя 2 таблицы по 10 000 записей из общей базы данных, содержащей 12 таблиц по 1 миллиону записей, общим объёмом 2.7 Гб.
И впервые удалось увидеть заметное снижение скорости при использовании шифрования в MySQL, запущенной внутри SEV-машины. Обратите внимание: при отключенном шифровании разницы в производительности нет.
Пожалуй, надо сделать вывод по поводу производительности: я не увидел какой-то слабости контроллеров памяти и механизма шифрования. На транзакционных нагрузках, характерных для баз данных, разницу в скорости нужно искать днём с огнём, но вот софт, его версии и качество компиляции влияют на производительность сильнее, чем что-либо другое. Так что для лучшей скорости компилируйте всё из исходников под свои параметры.
Что есть у конкурента?
К слову, у Intel тоже есть похожая технология SGX, но работает она совершенно иначе. Во-первых, у «сине-белых» это чисто программная фишка, использующая вычислительную мощность ядер, во-вторых, Intel шифрует данные не на уровне виртуальной машины, а на уровне приложения. Это означает, что вы, например, можете зашифровать всю память гипервизора и всех его гостевых операционных систем, но это не спасёт от атаки типа VM Escape, а можете зашифровать только одну базу данных в каком-нибудь контейнере. Давайте сравним возможности Intel и AMD: