Мобильные вычислительные устройства обрабатывают все большие объемы конфиденциальных личных данных. Наличие таких конфиденциальных данных, а также постоянное подключение к внешнему миру привели к тому, что злоумышленники стали чаще инвестировать в поиск уязвимостей для достижения своих целей.
Операционные системы с помощью аппаратных блоков управления памятью (MMU) предоставляют абстракции, которые изолируют несвязанные процессы друг от друга. Только компоненты, которые являются частью доверенной вычислительной базы (TCB), могут напрямую программировать эти MMU.
Эта модель лежит в основе реализации конфиденциальности и безопасности с момента появления операционных систем, подобных Unix. Однако это требование стало проблематичным, поскольку современная TCB слишком велика: она включает в себя большинство драйверов устройств и шин, сложные планировщики, файловые системы, сетевой стек и протоколы, кеши, исполняемые синтаксические анализаторы и загрузчики, а также сокеты. Обеспечить безопасность каждого уголка этой сложной системы стало очень трудно.
Ядро Linux содержит более 20 миллионов строк кода, а скорость изменений и переписываний поражает воображение. Такой рост – огромная помощь для Android и нашей экосистемы. Однако большой размер доверенной вычислительной базы затрудняет обеспечение отсутствия уязвимостей, которые можно использовать.
Производители оборудования разработали решения, такие как TrustZone от Arm, которые позволяют процессорам работать в безопасном режиме и помечать транзакции памяти как "безопасные" или "небезопасные". В таких системах конфиденциальные данные хранятся в защищенной среде и доступны только ей. Защищенная среда предоставляет услуги незащищенной среде по запросу.
Основной недостаток таких решений заключается в том, что домены слишком крупно детализированы: только безопасные и небезопасные. По мере появления новых сценариев использования, требующих изоляции от операционной системы, увеличивается количество направлений атак, и уязвимости могут привести к взлому всего устройства.
Ещё одно ограничение современных решений заключается в том, что они разработаны для относительно статичного мира, в котором все ресурсы для вариантов использования учитываются и распределяются заранее. Эти решения не подходят для динамических сценариев использования, в которых ресурсы выделяются по запросу.
Кроме того, API, используемые за пределами ОС Android, фрагментированы и ограничивают нашу возможность развертывать варианты использования в масштабе Android, включая такие фундаментальные функции, как Keymint и Gatekeeper.
Чтобы устранить эти ограничения и обеспечить надежную основу для инновационных вариантов использования, в Android 13 была добавлена безопасная виртуализация в виде платформы для виртуализации Android (AVF).
Основная цель AVF – предоставить безопасную и конфиденциальную среду выполнения для сценариев использования нового поколения.