Разрешите вам напомнить, что представляют из себя Intel Software Guard Extensions. Как следует из названия, дело тут в безопасности. Человечество придумало множество программных способов защитить свою IT-инфраструктуру от злонамеренного или неправомочного кода, однако все эти способы имеют свои принципиальные ограничения. Чтобы их обойти, необходимо, чтобы защита начиналась в самом сердце компьютера — его процессоре и опиралась на его функционал.
Используя данный принцип, корпорация Intel разработала расширения Intel SGX — набор инструкций ЦП, дающих возможность приложениям создавать анклавы, защищенные области в адресном пространстве приложения, обеспечивающие конфиденциальность и целостность даже при наличии вредоносных программ с привилегированными правами.
Этот пост о новой аппаратной основе Intel SGX для любой серверной платформы — карте Intel SGX Card.
Принципы работы анклавов Intel SGX таковы:
- Доступ к памяти анклава на чтение и запись извне анклава отсутствует вне зависимости от текущего уровня прав и режима работы ЦП.
- Анклавы рабочего уровня недоступны для отладки как программными, так и аппаратными отладчиками. (Можно создать анклав с атрибутом отладки, при наличии которого отладчик Intel SGX может просматривать содержимое анклава аналогично стандартному отладчику. Это сделано, чтобы повысить удобство процесса разработки программного обеспечения.)
- В среду анклава невозможно войти с помощью классических вызовов функций, переходов, манипуляций с регистрами или со стеком. Единственный способ вызвать функцию анклава — с помощью новой инструкции, выполняющей несколько защитных проверок.
- Память анклава защищена с помощью стандартных алгоритмов шифрования с защитой от воспроизведения. Если прочесть память или подключить модули оперативной памяти к другой системе, удастся получить только зашифрованные данные.
- Ключ шифрования памяти изменяется случайным образом при каждом изменении цикла электропитания (например, при загрузке, при возобновлении работы после сна и гибернации). Ключ хранится внутри ЦП и недоступен извне.
- Данные изолированы в анклавах и доступны только для кода данного анклава.
Intel SGX существенно сокращает периметр уязвимости ПО
Решение Intel Software Guard Extensions было представлено в 2016 году, с тех пор его поддержку получили ряд серверных процессоров Intel Xeon, после чего, в свою очередь, ряд крупнейших облачных провайдеров и производителей ПО, таких как Alibaba Cloud, Baidu, IBM и Microsoft оценили преимущества технологии и стали ее внедрять в свои сервисы и продукты. Однако на пути триумфального шествия Intel SGX оказалось техническое препятствие: процессоров, не поддерживающих технологию, все еще намного больше, чем поддерживающих. Особенно не хватает Intel SGX в многосокетных конфигурациях, сплошь и рядом применяющихся в облачных сервисах и датацентрах.
Решение пришло с неожиданной стороны. У Intel есть устройство под названием Intel Visual Compute Accelerator (VCA), мы о нем вкратце рассказывали. Это специализированный ускоритель для повышения производительности обработки медиа контента, по сути — полноценный сервер в формате карты PCIe x16, его характеристики приведены в посте по ссылке выше. Именно VCA решили взять за основу, и после некоторых доработок — отключения графического ядра, оптимизаций средств безопасности и т.д. — получилась Intel SGX Card, карта, оснащенная тремя процессорами с поддержкой Intel Software Guard Extensions, готовая взять на себя взаимодействие с анклавами SGX — от хост-системы этого уже не требуется.
На эту самую карту можно оффлоадить требовательную к ресурсам нагрузку, для которой необходима дополнительная защита. Стандартная серверная 2U платформа на базе Intel Xeon Scalable поддерживает до 4 карт PCIe х16; таким образом на одном сервере до 12 процессоров могут работать с деликатными данными. Как показано на рисунке выше, конфигурация среды для приложений стала более комфортной и гибкой, в их распоряжении как защищенные так и простые области памяти, процессорные ядра с поддержкой SGX и без и так далее.
Intel SGX Card — это вариант для поставщика разнообразных цифровых услуг подготовить свою инфраструктуру к использованию Intel Software Guard Extensions, не дожидаясь, когда выйдут Intel Xeon Scalable с поддержкой этой технологии. Возможно, он кому-то окажется полезным.