Perché AVF?

I dispositivi informatici mobili gestiscono quantità sempre maggiori di dati sensibili. La presenza di questi dati sensibili, favorita dal collegamento costante con il mondo esterno, ha portato a un aumento degli investimenti da parte di attori dannosi interessati a sfruttare le vulnerabilità per raggiungere i loro obiettivi.

I sistemi operativi, con l'aiuto delle unità di gestione della memoria hardware (MMU), forniscono astrazioni che isolano i processi non correlati tra loro. Solo i componenti che fanno parte della base di calcolo attendibile (TCB) possono programmare direttamente queste MMU.

Questo modello è stato la base della modalità di implementazione della privacy e della sicurezza dall'introduzione dei sistemi operativi Unix-like. Tuttavia, questo requisito è diventato problematico in quanto il TCB attuale è troppo grande: include la maggior parte dei driver di dispositivi e bus, pianificatori complessi, file system, protocollo e stack di rete, cache, parser ed eseguibili, caricatori e socket. È diventato molto difficile garantire che ogni angolo di questo complesso sistema sia sicuro.

Il kernel di Linux ha oltre 20 milioni di righe di codice e il tasso di modifiche e riscritture è sorprendente. Questa crescita è di grande aiuto per Android e per il nostro ecosistema. Tuttavia, il suo TCB elevato rende difficile garantire l'assenza di vulnerabilità sfruttabili.

I fornitori di hardware hanno sviluppato soluzioni, come TrustZone di Arm, che consentono ai processori di funzionare in modalità sicura e di contrassegnare le transazioni di memoria come "sicure" o "non sicure". In questi sistemi, i dati sensibili vengono archiviati e sono disponibili direttamente solo per il mondo sicuro, che fornisce servizi al mondo non sicuro su richiesta.

Il principale limite di questo tipo di soluzioni è che i domini sono troppo granulari: solo sicuri e non sicuri. Con l'introduzione di più casi d'uso che richiedono l'isolamento dal sistema operativo, la superficie di attacco aumenta e le vulnerabilità possono portare alla compromissione dell'intero dispositivo.

Un altro limite delle soluzioni odierne è che sono progettate per un mondo relativamente statico in cui tutte le risorse dei casi d'uso vengono prese in considerazione e allocate in anticipo. Queste soluzioni non sono sufficienti per i casi d'uso dinamici in cui le risorse sono allocate on demand.

Inoltre, le API utilizzate al di fuori del sistema operativo Android sono frammentate e limitano la nostra capacità di implementare casi d'uso su larga scala su Android, inclusi elementi fondamentali come Keymint e Gatekeeper.

Per risolvere questi problemi e consentire ad Android di fornire una base solida per i casi d'uso di nuova generazione, Android 13 introduce la virtualizzazione sicura come Android Virtualization Framework (AVF).

L'obiettivo principale di AVF è fornire un ambiente di esecuzione sicuro e privato per i casi d'uso di nuova generazione.