Android 가상화 프레임워크(AVF) 개요

Android 가상화 프레임워크(AVF)는 코드 실행을 위한 안전한 비공개 실행 환경을 제공합니다. AVF는 Android의 앱 샌드박스에서 제공되는 것보다 강력하면서도 보다 공식적으로 검증된 격리 보장이 필요한 보안 지향 사용 사례에 이상적입니다. Android는 AVF를 구현하는 데 필요한 모든 구성요소의 참조 구현을 제공합니다. 현재 AVF는 ARM64 기기에서만 지원됩니다. 그림 1은 AVF의 아키텍처를 보여줍니다.

AVF 아키텍처

그림 1. AVF 아키텍처

다음은 그림 1에서 가장 중요한 용어의 정의입니다.

apexd 및 zipfuse
호스트에서 가져온 APEX 및 APK를 안전하게 마운트합니다.
authfs
Android와 pVM(호스트 및 게스트) 간에 여러 파일을 공유하는 보안용 퓨즈 파일 시스템입니다.
binder
VM 간 통신의 주요 수단입니다.
crosvm
rust로 작성된 가상 머신 모니터입니다. crosvm은 VM 메모리를 할당하고 가상 CPU 스레드를 생성하며 가상 기기의 백엔드를 구현합니다.
GKI(Generic Kernel Image)
Google에서 인증한 부팅 이미지로 ACK(Android Common Kernel) 소스 트리에서 빌드한 GKI 커널을 포함하며 Android 기기의 부팅 파티션에 플래시하는 데 적합합니다. 자세한 내용은 커널 개요를 참고하세요.
hypervisor
AVF에 사용되는 가상화 기술로, pKVM이라고도 합니다. hypervisor는 Android 또는 다른 pVM이 손상되더라도 실행된 코드의 무결성과 pVM 애셋의 기밀성을 보존합니다.
Java API
VirtualizationService Java API로, AVF를 지원하는 기기에만 있습니다. 이 API는 선택사항이며 thebootclasspath의 일부는 아닙니다.
Microdroid
pVM에서 실행되는 Google 제공 미니 Android OS입니다.
Microdroid Manager
pVM 내부의 pVM 수명 주기와 인스턴스 디스크를 관리합니다.
Native API
Android NDK(Native Developers Kit)의 하위 집합입니다.
보호된 커널 기반 가상 머신(pKVM)
Hypervisor를 참고하세요.
pVM 펌웨어(pvmfw)
pVM에서 실행되는 첫 번째 코드인 pvmfw는 페이로드를 확인하고 VM별 보안 비밀을 파생합니다.
보호된 가상 머신(pVM)

기본 Android 운영체제('호스트')와 함께 실행되는, 상호 분리되어 있으며 신뢰할 수 없는 실행 환경('게스트')입니다. pVM은 pKVM에서 관리됩니다.

기존의 신뢰할 수 있는 실행 환경(TEE)과 비교할 때 pVM은 Microdroid라는 미니 Android 배포를 포함한 보다 풍부한 환경을 제공합니다. pVM은 동적으로 사용할 수 있으며, pVM을 지원하는 모든 기기에서 사용 가능한 표준 API 세트를 제공합니다.

VirtualizationService

pVM의 수명 주기를 관리하는 Android 서비스

다음 단계는 무엇일까요?

  • AVF의 필요성에 관해 더 자세히 알아보려면 AVF를 사용해야 하는 이유를 참고하세요.
  • 격리된 컴파일에 AVF를 사용하는 방법을 알아보려면 사용 사례를 참고하세요.
  • AVF 참조 구현의 아키텍처에 관한 자세한 설명은 AVF 아키텍처를 참고하세요.
  • Microdroid에 관해 알아보려면 Microdroid를 참고하세요.
  • AVF에서 보안이 처리되는 방법에 관심이 있다면 보안을 참고하세요.
  • 가상화 서비스의 역할을 이해하려면 VirtualizationService를 참고하세요.
  • AVF의 소스 코드 또는 개별 구성요소에 관한 자세한 설명은 AOSP 저장소를 참고하세요.