移動計算設備正在處理越來越多的個人敏感數據。此類敏感數據的存在,加上與外界的持續連接,導致有意利用漏洞來實現其目標的惡意行為者增加了投資。
操作系統在硬件內存管理單元 (MMU) 的幫助下提供抽象,使不相關的進程彼此隔離。僅允許屬於 TCB 一部分的組件直接對這些 MMU 進行編程。
自類 Unix 操作系統推出以來,該模型一直是實現隱私和安全的基礎。然而,這個要求已經成為問題,因為今天的TCB 太大了:它包括大多數設備和總線驅動程序、複雜的調度程序、文件系統、網絡堆棧和協議、緩存、可執行解析器和加載器以及套接字。確保這個複雜系統的每個角落都安全變得非常困難。
Linux內核有超過2000萬行代碼,更改和重寫的速度驚人。這種增長對 Android 和我們的生態系統有巨大的幫助。然而其龐大的TCB使得很難確保不存在可利用的漏洞。
硬件供應商已經開發了解決方案,例如 Arm 的 TrustZone,它允許處理器在安全模式下運行並將內存事務標記為“安全”或“不安全”。在此類系統中,敏感數據存儲在安全世界中並且僅直接可供安全世界使用,安全世界按需向非安全世界提供服務。
此類解決方案的主要限制是域粒度太粗:只有安全和不安全。隨著越來越多需要與操作系統隔離的用例的引入,攻擊面不斷增加,漏洞可能會導致整個設備受到損害。
當今解決方案的另一個限制是它們是為相對靜態的世界而設計的,在這個世界中,所有用例資源都被提前考慮和分配。這些解決方案對於按需分配資源的動態用例來說還不夠好。
此外,在 Android 操作系統之外使用的 API 很分散,限制了我們在 Android 規模上部署用例的能力,包括 Keymint 和 Gatekeeper 等基礎知識。
為了解決這些限制並使 Android 能夠為下一代用例提供堅實的基礎,Android 13 引入了安全虛擬化作為 Android 虛擬化框架 (AVF)。
AVF 的主要目標是為下一代用例提供安全且私密的執行環境。