- PVSM.RU - https://www.pvsm.ru -

Проект Keystone: доверенная среда для запуска приложений на базе RISC-V

Команда исследователей из MIT и Калифорнийского университета в Беркли [1] при поддержке Facebook, Google, Microsoft и других ИТ-гигантов представила [2] проект Keystone [3]. Это open source компонент, позволяющий организовать доверенную среду для запуска программ (trusted execution environment, TEE [4]) на базе архитектуры RISC-V.

Далее — о том, зачем понадобилось решение и как оно устроено.

Проект Keystone: доверенная среда для запуска приложений на базе RISC-V - 1 [5]
/ фото Wikimedia [6] CC [7]

Зачем нужен Keystone

Trusted execution environment представляет собой изолированную область (анклав) главного процессора с набором механизмов безопасности. Считается, что код и данные, загруженные в эту область, надежно защищены от изменения и вмешательства извне.

Идея в том, что в этих анклавах можно проводить операции над персональными и конфиденциальными данными, не боясь их компрометации, поскольку доступ к этим областям процессора не имеет ни операционная система, ни другие приложения.

На рынке есть системы и решения, которые защищают данные на уровне железа. Однако все они являются проприетарными, так как их реализуют сами производители компьютерных чипов. И есть мнение [2], что эти технологии недостаточно хорошо защищены (поскольку недоступны для оценки независимыми экспертами по ИБ).

К примеру, Intel предлагают расширение архитектуры Software Guard Extensions [8] (SGX), которое защищает данные от несанкционированного доступа и изменения. Эта технология тоже задействует анклавы, в которых выполняется код пользовательского приложения. Однако совсем недавно стало известно [9], что эта система уязвима к атаке Foreshadow [10] (CVE-2018-3615 [11]). Злоумышленники могут получить доступ к данным в анклаве SGX, используя особенности спекулятивного исполнения команд [12].

Помимо Intel, свои решения предлагает AMD — их названия Secure Processor и SEV, а также ARM — у них есть TrustZone. Однако к их безопасности [13] у экспертов ИБ также есть вопросы [14].

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

Проект Keystone: доверенная среда для запуска приложений на базе RISC-V - 2
/ фото Brad Holt [15] CC [16]

Таким образом, система Keystone представляет собой open source проект на базе архитектуры RISC-V для построения TEE. Исследователи выбрали RISC-V, поскольку она менее уязвима к атакам по сторонним каналам [17], направленным на практические реализации криптосистем. В частности, этот тип архитектуры не подвержен [18] уязвимостям вроде Meltdown и Spectre.

Разработчики Keystone поставили перед собой следующие цели [3]:

  • Построить цепочку доверия [19] для проверки каждого компонента аппаратного и программного обеспечения (сюда вошли системы Secure boot и удаленная проверка надежности «железа»);
  • Изолировать память от вмешательства извне;
  • Реализовать методы защиты от атак по сторонним каналам;
  • Реализовать методы шифрования памяти и адресной шины.

Компоненты решения

Концепция Keystone базируется на технологиях SGX [20] и анклав-платформе Sanctum Processor [21], разработанной в MIT [22].

Последняя строится с применением так называемого доверенного слоя абстрагирования [23], или trusted abstract platform (TAP). Платформа (TAP) состоит из процессора со счетчиком команд [24], регистров общего назначения [25], системы для трансляции виртуальных адресов [26] и набора примитивов для выполнения кода в защищенном анклаве.

От системы SGX Keystone «взял» движок для шифрования памяти (Memory Encryption Engine, MEE). Ядро решения организовано с помощью параметризованного RISC-V процессора BOOM [27] (Berkeley Out-of-Order Machine) на SoC [28]-генераторе Rocket [29].

В общем виде схема реализации системы с анклавом на RISC-V выглядит следующим образом:

Проект Keystone: доверенная среда для запуска приложений на базе RISC-V - 3

Исследователи уже провели несколько тестов своего решения и установили [22], оно надежно изолирует среду выполнения кода и защищает его от вмешательства извне (по крайней мере, от известных атак).

Когда релиз

Первая версия — Keystone v0.1 — появится [3] этой осенью и будет выполнена на FPGA. Исследователи оживают, что в перспективе она сможет заменить SGX при реализации [30] блокчейн-платформ.


P.S. Дополнительные материалы из Первого блога о корпоративном IaaS:

P.P.S. Пара постов из нашего блога на Хабре:

Автор: it_man

Источник [36]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/293199

Ссылки в тексте:

[1] Калифорнийского университета в Беркли: https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BB%D0%B8%D1%84%D0%BE%D1%80%D0%BD%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%83%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%82%D0%B5%D1%82_%D0%B2_%D0%91%D0%B5%D1%80%D0%BA%D0%BB%D0%B8

[2] представила: https://www.theregister.co.uk/2018/08/31/keystone_secure_enclave/

[3] Keystone: https://keystone-enclave.org/

[4] TEE: https://en.wikipedia.org/wiki/Trusted_execution_environment

[5] Image: https://habr.com/company/it-grad/blog/423777/

[6] Wikimedia: https://ru.m.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:WinonaSavingsBankVault.JPG

[7] CC: https://creativecommons.org/licenses/by-sa/3.0/

[8] Software Guard Extensions: https://software.intel.com/ru-ru/sgx

[9] стало известно: https://www.usenix.org/conference/usenixsecurity18/presentation/bulck

[10] Foreshadow: https://foreshadowattack.eu/

[11] CVE-2018-3615: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-3615

[12] спекулятивного исполнения команд: https://en.wikipedia.org/wiki/Speculative_execution

[13] их безопасности: https://xakep.ru/2018/05/28/severed/

[14] также есть вопросы: https://googleprojectzero.blogspot.com/2017/07/trust-issues-exploiting-trustzone-tees.html

[15] Brad Holt: https://www.flickr.com/photos/brad_holt/3964535704/

[16] CC: https://creativecommons.org/licenses/by/2.0/

[17] атакам по сторонним каналам: https://ru.wikipedia.org/wiki/%D0%90%D1%82%D0%B0%D0%BA%D0%B0_%D0%BF%D0%BE_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B8%D0%BC_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%B0%D0%BC

[18] не подвержен: https://riscv.org/2018/01/more-secure-world-risc-v-isa/

[19] цепочку доверия: https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B0_%D0%B4%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%8F

[20] SGX: https://en.wikipedia.org/wiki/Software_Guard_Extensions

[21] Sanctum Processor: https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/costan

[22] разработанной в MIT: https://people.eecs.berkeley.edu/~spramod/papers/ccs17.pdf

[23] слоя абстрагирования: https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%BE%D0%B9_%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D1%85_%D0%B0%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%86%D0%B8%D0%B9

[24] счетчиком команд: https://ru.wikipedia.org/wiki/%D0%A1%D1%87%D1%91%D1%82%D1%87%D0%B8%D0%BA_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4

[25] регистров общего назначения: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%B0

[26] трансляции виртуальных адресов: https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C

[27] BOOM: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-167.html

[28] SoC: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BD%D0%B0_%D0%BA%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BB%D0%BB%D0%B5

[29] Rocket: https://github.com/freechipsproject/rocket-chip

[30] реализации: https://thestackcafe.com/oasis-labs-is-an-interesting-new-project-in-the-blockchain-stack/

[31] Новая функциональность в VMware vSphere 6.7: что нужно знать: https://iaas-blog.it-grad.ru/funkcionalnost/novaya-funkcionalnost-v-vmware-vsphere-6-7/

[32] «Как дела у VMware»: обзор новых решений: https://iaas-blog.it-grad.ru/novosti/kak-dela-u-vmware-obzor-novyx-reshenij/

[33] Как тестировать дисковую систему в облаке: https://iaas-blog.it-grad.ru/proizvoditelnost/testirovanie-diskovoj-sistemy-v-oblake/

[34] Новые техпроцессы для производства микросхем все чаще откладывают — почему?: https://habr.com/company/it-grad/blog/422501/

[35] Как защитить данные в облачных нейросетях — предложен новый метод шифрования: https://habr.com/company/it-grad/blog/422309/

[36] Источник: https://habr.com/post/423777/?utm_campaign=423777