Команда исследователей из MIT и Калифорнийского университета в Беркли при поддержке Facebook, Google, Microsoft и других ИТ-гигантов представила проект Keystone. Это open source компонент, позволяющий организовать доверенную среду для запуска программ (trusted execution environment, TEE) на базе архитектуры RISC-V.
Далее — о том, зачем понадобилось решение и как оно устроено.
Зачем нужен Keystone
Trusted execution environment представляет собой изолированную область (анклав) главного процессора с набором механизмов безопасности. Считается, что код и данные, загруженные в эту область, надежно защищены от изменения и вмешательства извне.
Идея в том, что в этих анклавах можно проводить операции над персональными и конфиденциальными данными, не боясь их компрометации, поскольку доступ к этим областям процессора не имеет ни операционная система, ни другие приложения.
На рынке есть системы и решения, которые защищают данные на уровне железа. Однако все они являются проприетарными, так как их реализуют сами производители компьютерных чипов. И есть мнение, что эти технологии недостаточно хорошо защищены (поскольку недоступны для оценки независимыми экспертами по ИБ).
К примеру, Intel предлагают расширение архитектуры Software Guard Extensions (SGX), которое защищает данные от несанкционированного доступа и изменения. Эта технология тоже задействует анклавы, в которых выполняется код пользовательского приложения. Однако совсем недавно стало известно, что эта система уязвима к атаке Foreshadow (CVE-2018-3615). Злоумышленники могут получить доступ к данным в анклаве SGX, используя особенности спекулятивного исполнения команд.
Помимо Intel, свои решения предлагает AMD — их названия Secure Processor и SEV, а также ARM — у них есть TrustZone. Однако к их безопасности у экспертов ИБ также есть вопросы.
По мнению исследователей из MIT и Калифорнийского университета, система с открытым исходным кодом, хоть и не сделает анклавы неуязвимыми, все же позволит повысить их безопасность за счет экспертизы множества специалистов сообщества.
Таким образом, система Keystone представляет собой open source проект на базе архитектуры RISC-V для построения TEE. Исследователи выбрали RISC-V, поскольку она менее уязвима к атакам по сторонним каналам, направленным на практические реализации криптосистем. В частности, этот тип архитектуры не подвержен уязвимостям вроде Meltdown и Spectre.
Разработчики Keystone поставили перед собой следующие цели:
- Построить цепочку доверия для проверки каждого компонента аппаратного и программного обеспечения (сюда вошли системы Secure boot и удаленная проверка надежности «железа»);
- Изолировать память от вмешательства извне;
- Реализовать методы защиты от атак по сторонним каналам;
- Реализовать методы шифрования памяти и адресной шины.
Компоненты решения
Концепция Keystone базируется на технологиях SGX и анклав-платформе Sanctum Processor, разработанной в MIT.
Последняя строится с применением так называемого доверенного слоя абстрагирования, или trusted abstract platform (TAP). Платформа (TAP) состоит из процессора со счетчиком команд, регистров общего назначения, системы для трансляции виртуальных адресов и набора примитивов для выполнения кода в защищенном анклаве.
От системы SGX Keystone «взял» движок для шифрования памяти (Memory Encryption Engine, MEE). Ядро решения организовано с помощью параметризованного RISC-V процессора BOOM (Berkeley Out-of-Order Machine) на SoC-генераторе Rocket.
В общем виде схема реализации системы с анклавом на RISC-V выглядит следующим образом:
Исследователи уже провели несколько тестов своего решения и установили, оно надежно изолирует среду выполнения кода и защищает его от вмешательства извне (по крайней мере, от известных атак).
Когда релиз
Первая версия — Keystone v0.1 — появится этой осенью и будет выполнена на FPGA. Исследователи оживают, что в перспективе она сможет заменить SGX при реализации блокчейн-платформ.
P.S. Дополнительные материалы из Первого блога о корпоративном IaaS:
- Новая функциональность в VMware vSphere 6.7: что нужно знать
- «Как дела у VMware»: обзор новых решений
- Как тестировать дисковую систему в облаке
P.P.S. Пара постов из нашего блога на Хабре:
- Новые техпроцессы для производства микросхем все чаще откладывают — почему?
- Как защитить данные в облачных нейросетях — предложен новый метод шифрования
Автор: it_man