Почему АВФ?

Мобильные вычислительные устройства обрабатывают все большие объемы персональных конфиденциальных данных. Наличие таких конфиденциальных данных, а также постоянная связь с внешним миром привели к увеличению инвестиций со стороны злоумышленников, заинтересованных в эксплуатации уязвимостей для достижения своих целей.

Операционные системы с помощью аппаратных блоков управления памятью (MMU) предоставляют абстракции, которые изолируют несвязанные процессы друг от друга. Только компоненты, входящие в состав Trusted Computing Base (TCB), могут напрямую программировать эти MMU.

Эта модель стала основой того, как конфиденциальность и безопасность были реализованы с момента появления Unix-подобных операционных систем. Однако это требование стало проблематичным, поскольку современный TCB слишком велик: он включает в себя большинство драйверов устройств и шин, сложные планировщики, файловые системы, сетевой стек и протоколы, кэши, исполняемые парсеры и загрузчики, а также сокеты. Стало очень сложно гарантировать безопасность каждого уголка этой сложной системы.

Ядро Linux содержит более 20 миллионов строк кода, а скорость изменений и переписываний поражает воображение. Этот рост — огромная помощь Android и нашей экосистеме. Однако его большой TCB затрудняет обеспечение отсутствия уязвимостей, которые можно эксплуатировать.

Поставщики оборудования разработали решения, такие как TrustZone от Arm, которые позволяют процессорам работать в безопасном режиме и помечать транзакции памяти как «безопасные» или «небезопасные». В таких системах конфиденциальные данные хранятся и напрямую доступны только в безопасном мире, который предоставляет услуги незащищенному миру по требованию.

Главным ограничением такого рода решений является то, что домены слишком грубые: только безопасные и небезопасные. По мере того, как вводятся все новые и новые сценарии использования, требующие изоляции от операционной системы, увеличивается поверхность атаки, а уязвимости, скорее всего, приведут к компрометации всего устройства.

Другим ограничением сегодняшних решений является то, что они разработаны для относительно статичного мира, в котором все ресурсы вариантов использования учитываются и распределяются заранее. Эти решения недостаточно хороши для динамических вариантов использования, в которых ресурсы распределяются по требованию.

Кроме того, API-интерфейсы, используемые за пределами операционной системы Android, фрагментированы и ограничивают наши возможности по развертыванию сценариев использования в масштабах Android, включая такие фундаментальные решения, как Keymint и Gatekeeper.

Чтобы устранить эти ограничения и предоставить Android надежную основу для сценариев использования следующего поколения, в Android 13 представлена ​​безопасная виртуализация в виде Android Virtualization Framework (AVF).

Основная цель AVF — предоставить безопасную и конфиденциальную среду выполнения для сценариев использования следующего поколения.