為什麼要使用 AVF?

行動運算裝置處理的個人敏感資料量越來越大。由於這類私密資料的存在,加上與外界持續連線,因此惡意人士為了達成目標,對利用漏洞的投資也日益增加。

作業系統可利用硬體記憶體管理單元 (MMU) 提供的抽象概念,將不相關的程序隔離開來。只有信任的電腦基礎 (TCB) 元件才能直接編寫這些 MMU。

自從類 Unix 作業系統問世以來,這個模型一直是實施隱私權和安全性的重要基礎。不過,由於現今的 TCB 過大,這項規定已成為問題:它包含大多數裝置和匯流排驅動程式、複雜的排程器、檔案系統、網路堆疊和通訊協定、快取、可執行的剖析器和載入器,以及通訊端。因此,要確保這個複雜系統的每個層面都安全無虞,已經變得非常困難。

Linux 核心有超過 2,000 萬行程式碼,變更和重寫的速度也相當驚人。這項成長對 Android 和我們的生態系統來說,都是極大的助力。不過,由於 TCB 的規模龐大,因此很難確保沒有可供利用的漏洞。

硬體廠商已開發出解決方案,例如 Arm 的 TrustZone,可讓處理器在安全模式下執行,並將記憶體交易標記為「安全」或「不安全」。在這種系統中,機密資料會儲存在安全世界中,且只有安全世界可直接存取,而安全世界會視需要為非安全世界提供服務。

這類解決方案的主要限制是網域太粗糙:只有安全和不安全。隨著需要與作業系統隔離的用途增加,攻擊面也會增加,安全漏洞可能會導致整部裝置遭到入侵。

現有解決方案的另一個限制是,它們是為相對靜態的世界而設計,在這種世界中,所有用途資源都會事先計算和分配。這些解決方案不適合用於動態使用案例,因為在這種情況下,資源會視需求分配。

此外,在 Android 作業系統外使用的 API 相當零散,因此限制了我們在 Android 規模上部署用途的能力,包括 Keymint 和 Gatekeeper 等基本功能。

為解決這些限制,並讓 Android 為下一代用途提供穩健的基礎,Android 13 推出安全虛擬化功能,做為 Android 虛擬化架構 (AVF)。

Android 虛擬化架構的主要目標,是為下一代用途提供安全且私密的執行環境。