На этой странице приведены распространенные примеры использования AVF.
Изолированная компиляция
Защищенная виртуальная машина (ВМ) – это программно защищенный анклав, который обеспечивает безопасную среду для компиляции кода, связанного с безопасностью.
Эта среда позволяет перенести компиляцию JAR-файлов bootclasspath и системного сервера (запускаемую обновлением APEX) с ранней загрузки на этап перед перезагрузкой и значительно сократить время загрузки после обновления APEX.
Реализация находится в APEX-пакете com.android.compos. Этот компонент необязателен. Его можно добавить с помощью makefile.
Цель безопасности – честно скомпилировать проверенные входные данные и изолированно создать выходные данные. Ненадежный клиент Android не может изменить выходные данные компиляции, кроме как вызвать сбой (когда Android возвращается к компиляции во время загрузки).
Сервис компиляции в виртуальной машине создает подпись, только если во время компиляции не возникает ошибок. Android может получить открытый ключ из виртуальной машины для проверки подписи.
Ключ ВМ генерируется на основе профиля DICE ВМ, который определяется APEX-файлами и APK-файлами, подключенными к ВМ, а также другими параметрами ВМ, например возможностью отладки.
Чтобы определить, не принадлежит ли открытый ключ неизвестной виртуальной машине, Android запускает виртуальную машину и проверяет ключ. Виртуальная машина запускается на раннем этапе загрузки после каждого обновления APEX.
При использовании функции "Проверка при запуске защищенной ВМ" сервис компиляции запускает только проверенный код. В результате код может принимать только те входные данные, которые соответствуют определенным условиям, например принимать входной файл, только если его имя и дайджест fs-verity определены в белом списке.
Любые открытые API виртуальной машины – это направления атак. Все входные файлы и параметры считаются полученными от ненадежного клиента и должны быть проверены и одобрены перед обработкой.
Целостность входных и выходных файлов проверяется виртуальной машиной. Файлы хранятся на устройстве Android, которое выступает в роли ненадежного файлового сервера. Проверка выполняется следующим образом:
- Перед использованием содержимое входного файла необходимо проверить с помощью алгоритма
fs-verity. Чтобы входной файл стал доступен на виртуальной машине, его корневой хеш должен быть указан в контейнере (APK), который входит в профиль DICE виртуальной машины. Благодаря хешу доверенного корневого сертификата злоумышленник не сможет незаметно изменить входные данные. - Целостность выходного файла должна быть сохранена в виртуальной машине. Даже если выходной файл хранится на устройстве Android, во время генерации целостность поддерживается с помощью того же формата дерева
fs-verity, но может динамически обновляться. Конечный выходной файл можно идентифицировать с помощью корневого хеша, который изолирован на виртуальной машине. Сервис в виртуальной машине защищает выходные файлы с помощью подписи.
Среда разработки Linux
Android – единственная крупная операционная система, которая не позволяет пользователям разрабатывать приложения на самой платформе. Среда разработки Linux предназначена для разработчиков, которые используют Android. В будущем мы планируем расширить возможности, чтобы наши партнеры могли реализовывать инновационные варианты использования виртуальных машин, например запускать приложения с графическим интерфейсом пользователя и даже игры.
Среда разработки Linux доступна на некоторых устройствах и работает на незащищенной виртуальной машине.
Общий принцип работы:
- Чтобы использовать среду разработки Linux, включите режим разработчика.
- После включения параметров для разработчиков приложение "Терминал" появится на панели запуска.
- Запустите приложение "Терминал" с главного экрана.
- При необходимости приложение "Терминал" скачивает образ ОС из Google Play.
- Приложение "Терминал" использует платформу для виртуализации Android (AVF), чтобы создать виртуальную машину (ВМ).
- Затем AVF запускает ВМ с образом ОС.
- Виртуальная машина загружает ОС из образа.
- После загрузки ВМ WebView в приложении "Терминал" подключается к веб-сервису на виртуальной машине. Этот сервис предоставляет доступ к терминалу по протоколу HTTP.
- Вы взаимодействуете с терминалом, вводя команды и просматривая выходные данные в приложении.
Основные компоненты ВМ Linux:
- Приложение "Терминал". Приложение для Android, предоставляющее интерфейс терминала. Для взаимодействия с веб-сервисом, запущенным на ВМ, используется WebView. По умолчанию это приложение отключено. Включите ее в настройках для разработчиков.
- Платформа для виртуализации Android (AVF). Существующая подсистема Android для создания виртуальных машин и управления ими. Для поддержки этой функции требуется минимальное изменение пользовательских образов ОС.
- Виртуальная машина. Виртуальная машина, созданная AVF. В нем размещается служба терминала, и AVF создает его специально для функций приложения "Терминал".
- Образ ОС. Немного измененный образ ОС на основе Debian от upstream Debian. Приложение "Терминал" скачивает этот образ с внешнего сервера Google. Он служит основой для работы виртуальной машины.
- Гостевой агент. Новое ПО на виртуальной машине. Он сообщает AVF о состоянии ОС и позволяет управлять виртуальной машиной.
- ttyd – ПО с открытым исходным кодом, которое работает на виртуальной машине и эмулирует терминал по протоколу HTTP. WebView приложения "Терминал" подключается к нему.
- Менеджер режима модема – существующая подсистема Android. Она предоставляет виртуальной машине доступ к сети, подключая ее к устройству Android.
Безопасность контента на устройстве
Content Safety On-device – это решение для обеспечения безопасности контента, разработанное командой Content Safety On-device с учетом требований конфиденциальности. Она классифицирует контент по безопасности для различных продуктов Google на устройствах Google и сторонних производителей и защищает более миллиарда пользователей от недопустимого контента, не отправляя пользовательские данные на серверы Google. Она разработана в соответствии с принципами Private Compute Core (PCC), чтобы обеспечивать прозрачный и конфиденциальный обмен данными между клиентом и виртуальной машиной, а также предотвращать утечку пользовательских данных. Его можно использовать, например, для включения на устройствах функции обнаружения нарушений, такой как обнаружение угроз в реальном времени в Play Защите.
В этом варианте использования система использует защищенные виртуальные машины для классификации моделей, чтобы обнаруживать угрозы в реальном времени с помощью Play Защиты. Это значительно повышает безопасность моделей и средств защиты. Это предотвращает обратное проектирование и манипуляции со стороны злоумышленников, даже на устройствах с root-доступом, поскольку проверяется только одобренный код, а его операции скрыты от внешних процессов.
Общие принципы работы:
- Обнаружение угроз в реальном времени отправляет сервисам конфиденциальных вычислений запрос на запуск виртуальной машины. Сервисы конфиденциальных вычислений – это посредник между ядром конфиденциальных вычислений и облачным сервером, который обеспечивает конфиденциальность.
- Сервисы конфиденциальных вычислений запускают виртуальную машину и получают от нее открытый ключ.
- Сервисы конфиденциальных вычислений передают право собственности на виртуальную машину функции обнаружения угроз в реальном времени Google Play Защиты.
- Сервисы конфиденциальных вычислений отправляют на сервер подтверждение и открытый ключ
- Сервер проверяет подтверждение и шифрует защиту с помощью открытого ключа ВМ
- Сервер отправляет зашифрованные средства защиты обратно на устройство.
- После этого функция обнаружения угроз в реальном времени на устройстве сможет использовать зашифрованную защиту в виртуальной машине. ВМ – единственный объект с закрытым ключом, который может расшифровать защиту.
Ниже перечислены основные компоненты.
- Сервер: шифрует и доставляет зашифрованные средства защиты на виртуальную машину.
- Сервисы конфиденциальных вычислений используются для запуска виртуальной машины и управления обменом данными с ней. Они обеспечивают прозрачность, показывая, что пользовательские данные не передаются через Astrea на сервер.
- Обнаружение угроз в реальном времени от Play Защиты:
- Содержит и использует классификаторы моделей, предоставленные Content Safety на устройстве.
- Принимает право собственности на виртуальную машину и удерживает его для использования в целях классификации.
- Запускает и останавливает ВМ по мере необходимости.
OEM-производители
OEM-производитель может использовать AVF для собственных целей. Например, компания OPPO использует AVF, чтобы создать частное вычислительное пространство на основе ИИ. Первое приложение в этом пространстве – это решение для контроля рисков на устройстве, предназначенное для клиентов приложений и работающее на виртуальной машине. Система противодействует угрозам, связанным с незаконной деятельностью, и обеспечивает защиту от различных опасностей.