Общие сведения о платформе для виртуализации Android (AVF)

Платформа для виртуализации Android (AVF) предоставляет безопасные и конфиденциальные среды для выполнения кода. AVF идеально подходит для случаев, когда требуется более надежная изоляция, чем в песочнице приложений Android, в том числе с формальной проверкой. В Android есть эталонная реализация всех компонентов, необходимых для работы AVF. AVF поддерживается только на устройствах ARM64. На рисунке 1 показана архитектура AVF:

Архитектура AVF

Рисунок 1. архитектура AVF;

Ниже приведены определения наиболее важных терминов, используемых на рисунке 1.

apexd и zipfuse
Безопасное монтирование файлов APEX и APK, импортированных с хоста.
authfs
Файловая система FUSE для безопасного обмена файлами между Android и pVM (хостом и гостевой системой).
binder
Основное средство связи между виртуальными машинами.
crosvm
Монитор виртуальной машины, написанный на языке Rust. crosvm выделяет память ВМ, создает виртуальные потоки ЦП и реализует серверные части виртуальных устройств.
Образ ядра общего назначения (GKI)
Загрузочный образ, сертифицированный Google, который содержит ядро GKI, созданное на основе дерева исходного кода Android Common Kernel (ACK), и подходит для записи в загрузочный раздел устройства Android. Дополнительную информацию можно найти в обзоре ядра.
Гипервизор
Технология виртуализации, используемая AVF, также известная как pKVM. Гипервизор обеспечивает целостность выполняемого кода и конфиденциальность ресурсов pVM, даже если ОС Android или другие pVM будут скомпрометированы.
Java API
Java API VirtualizationService, которые доступны только на устройствах с поддержкой AVF. Эти API необязательны и не входят в thebootclasspath.
Microdroid
Мини-ОС Android, предоставленная Google и работающая в pVM.
Менеджер Microdroid
Управляет жизненным циклом pVM, внутри pVM и диском экземпляра.
Собственный API
Подмножество Android Native Developers Kit (NDK).
защищенная виртуальная машина KVM (pKVM)
Подробнее о гипервизоре…
Встроенное ПО pVM (pvmfw)
Первый код, который выполняется на pVM, pvmfw проверяет полезную нагрузку и извлекает секрет для каждой виртуальной машины.
защищенная виртуальная машина (pVM)

Изолированная среда выполнения с взаимным недоверием (гостевая ОС), которая работает параллельно с основной ОС Android (хост-ОС). Важный аспект безопасности pVM заключается в том, что даже если хост взломан, у него нет доступа к памяти pVM. pKVM – это стандартный гипервизор для запуска pVM.

В отличие от существующих доверенных сред выполнения (TEE), pVM предоставляют более широкие возможности, в том числе позволяют запускать мини-версию Android под названием Microdroid (хотя Microdroid также может работать на незащищенной виртуальной машине). pVM можно использовать динамически. Они предоставляют стандартный набор API в доверенной среде, доступной на всех поддерживающих их устройствах.

VirtualizationService

Сервис Android, который управляет жизненным циклом защищенных виртуальных машин.

Что дальше?

  • Чтобы лучше понять, зачем нужна AVF, прочитайте раздел Зачем нужна AVF?.
  • Чтобы узнать, как AVF можно использовать для изолированной компиляции, ознакомьтесь с разделом Примеры использования.
  • Подробное описание архитектуры эталонной реализации AVF можно найти в этой статье.
  • Подробнее о Microdroid…
  • Если вас интересует, как AVF обеспечивает безопасность, ознакомьтесь с разделом Безопасность.
  • Чтобы понять роль сервиса виртуализации, ознакомьтесь с разделом VirtualizationService.
  • Исходный код AVF и подробные сведения об отдельных компонентах можно найти в репозитории AOSP.