IT之家 10 月 10 日消息,谷歌在去年聲稱正在將 Android 原生代碼從 C++ 遷移到 Rust,目前谷歌在博客中發布文章,展示了當前使用 Rust 語言的新進展。
據悉,谷歌正在使用 Rust 語言,重寫在 linux 核心之外執行的 Android 關鍵安全組件,從而進一步減少安全漏洞。

▲ 圖源 谷歌安全博客
谷歌聲稱,去年調查顯示,Android 的安全漏洞,從 2019 年的 223 個降低到 2022 年的 85 個,經過分析,谷歌認為內存漏洞減少的情況,主要與 Rust 代碼的比例增加有關。
IT之家注:Rust 語言考慮了內存安全性,在編譯的時候,Rust 就能夠捕捉到大多數的內存安全問題,避免相關漏洞在生產環境中出現。
在 Android 13 中,就已經有約 21%的新原生代碼以 Rust 開發,官方提到,這些組件大多數是在用戶層面的系統服務(即 Linux 中運行),但目前還有許多組件依然使用 C++ 進行編寫,而其中許多安全關鍵組件,都在 Linux 核心之外的裸機環境中運行,當下谷歌為了強化 Android 設備的安全性,正逐漸提高在裸機環境使用 Rust 的比例。
谷歌聲稱,相關開發人員在 Rust 中重寫了 Android 虛擬化框架的受保護虛擬機 (pVM) 固件,從而為 pVM 信任根提供了安全基礎。

▲ 圖源 谷歌安全博客
據悉,pVM 的作用與 Bootloader 類似,其建立在開源項目 U-Boot 之上,不過 U-Boot 在設計時有所缺憾,有許多研究人員已經發現 U-Boot 存在整數下溢(Integer Underflow)和內存損壞等安全漏洞,特別是 VirtIO 驅動程序,在“邊界檢查”方面,其存在許多問題。
谷歌表示,他們已經修復了在 U-Boot 中發現的問題,而通過轉用 Rust,還可以在未來避免出現更多類似的內存安全漏洞。

▲ 圖源 谷歌安全博客
由于谷歌要支持 Rust 語言在裸機環境中使用,也因此貢獻一系列新的項目,像是在 pVM 固件的 VirtIO 驅動程序方面,谷歌便修復了現有 virtio-drivers 中的一系列錯誤問題,還添加了新功能。
谷歌還計劃發布更多的 Rust 軟件包,并支持各平臺的裸機程序開發,谷歌提到,雖然在裸機上應用 Rust 還有許多限制,但是相對于 C 或 C++ 語言,Rust 可以提供更高的安全性和生產力,谷歌未來還會繼續擴大 Rust 的使用。






