Почему АВФ?

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

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

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

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

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

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

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

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

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

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