AVF를 사용해야 하는 이유

모바일 컴퓨팅 기기는 점점 더 많은 양의 민감한 개인 정보를 처리합니다. 외부 세계와 지속적으로 연결되는 이러한 민감한 정보의 존재로 인해 취약점을 악용해 목표를 달성하려는 악의적인 행위자의 투자가 늘었습니다.

운영체제는 하드웨어 메모리 관리 단위(MMU)의 도움을 받아 관련 없는 프로세스를 서로 격리할 수 있는 추상화를 제공합니다. TCB에 포함된 구성요소만 이러한 MMU를 직접 프로그래밍할 수 있습니다.

이 모델은 Unix와 유사한 운영체제를 도입한 이후 개인 정보 보호와 보안이 구현된 방식의 기반이 되었습니다. 그러나 이 요구사항은 오늘날의 TCB가 너무 크다는 측면에서 문제가 되었습니다. TCB에는 대부분의 기기 및 버스 드라이버, 복잡한 스케줄러, 파일 시스템, 네트워크 스택 및 프로토콜, 캐시, 실행 가능한 파서 및 로더, 소켓이 포함됩니다. 이렇게 복잡한 시스템의 모든 부분이 안전한지 확인하는 작업은 매우 어려워졌습니다.

Linux 커널에는 2천만 줄이 넘는 코드가 있고 변경 및 재작성 비율도 매우 높습니다. 이러한 성장은 Android 및 Google 생태계에 큰 도움이 됩니다. 그러나 TCB가 크므로 악용 가능한 취약점이 없는지 확인하기가 어렵습니다.

하드웨어 공급업체는 Arm의 TrustZone과 같은 솔루션을 개발했습니다. 이 솔루션을 통해 프로세서는 보안 모드에서 실행되고 메모리 트랜잭션을 '보안' 또는 '비보안'으로 태그할 수 있습니다. 이러한 시스템에서는 민감한 정보가 보안 환경에 저장되고 보안 환경에서만 직접 사용할 수 있습니다. 보안 환경은 요청 시 비보안 환경에 서비스를 제공합니다.

이러한 솔루션 유형의 주요 제한사항은 도메인이 너무 대략적으로 구별된다는 점(보안과 비보안만 있음)입니다. 운영체제로부터 격리해야 하는 사용 사례가 더 많이 도입됨에 따라 공격 표면이 증가하고 취약점으로 인해 전체 기기가 손상될 가능성이 높습니다.

현재 솔루션에 있는 또 다른 제한사항은 모든 사용 사례 리소스가 고려되고 미리 할당되는 비교적 정적인 환경을 위해 설계되었다는 점입니다. 이러한 솔루션은 리소스가 요청 시 할당되는 동적 사용 사례에 충분하지 않습니다.

또한 Android 운영체제 외부에서 사용되는 API는 세분화되어 있으며 Keymint, Gatekeeper와 같은 기본 사항을 포함하여 Android 규모의 사용 사례를 배포하는 기능을 제한합니다.

이러한 제한사항을 해결하고 Android에서 차세대 사용 사례를 위한 견고한 기반을 제공할 수 있도록 Android 13에서는 보안 가상화를 Android 가상화 프레임워크(AVF)로 도입합니다.

AVF의 주요 목표는 차세대 사용 사례를 위한 안전한 비공개 실행 환경을 제공하는 것입니다.