IT之家 10 月 10 日消息,谷歌在去年聲稱(chēng)正在將 Android 原生代碼從 C++ 遷移到 Rust,目前谷歌在博客中發(fā)布文章,展示了當(dāng)前使用 Rust 語(yǔ)言的新進(jìn)展。
據(jù)悉,谷歌正在使用 Rust 語(yǔ)言,重寫(xiě)在 linux 核心之外執(zhí)行的 Android 關(guān)鍵安全組件,從而進(jìn)一步減少安全漏洞。
▲ 圖源 谷歌安全博客
谷歌聲稱(chēng),去年調(diào)查顯示,Android 的安全漏洞,從 2019 年的 223 個(gè)降低到 2022 年的 85 個(gè),經(jīng)過(guò)分析,谷歌認(rèn)為內(nèi)存漏洞減少的情況,主要與 Rust 代碼的比例增加有關(guān)。
IT之家注:Rust 語(yǔ)言考慮了內(nèi)存安全性,在編譯的時(shí)候,Rust 就能夠捕捉到大多數(shù)的內(nèi)存安全問(wèn)題,避免相關(guān)漏洞在生產(chǎn)環(huán)境中出現(xiàn)。
在 Android 13 中,就已經(jīng)有約 21%的新原生代碼以 Rust 開(kāi)發(fā),官方提到,這些組件大多數(shù)是在用戶層面的系統(tǒng)服務(wù)(即 Linux 中運(yùn)行),但目前還有許多組件依然使用 C++ 進(jìn)行編寫(xiě),而其中許多安全關(guān)鍵組件,都在 Linux 核心之外的裸機(jī)環(huán)境中運(yùn)行,當(dāng)下谷歌為了強(qiáng)化 Android 設(shè)備的安全性,正逐漸提高在裸機(jī)環(huán)境使用 Rust 的比例。
谷歌聲稱(chēng),相關(guān)開(kāi)發(fā)人員在 Rust 中重寫(xiě)了 Android 虛擬化框架的受保護(hù)虛擬機(jī) (pVM) 固件,從而為 pVM 信任根提供了安全基礎(chǔ)。
▲ 圖源 谷歌安全博客
據(jù)悉,pVM 的作用與 Bootloader 類(lèi)似,其建立在開(kāi)源項(xiàng)目 U-Boot 之上,不過(guò) U-Boot 在設(shè)計(jì)時(shí)有所缺憾,有許多研究人員已經(jīng)發(fā)現(xiàn) U-Boot 存在整數(shù)下溢(Integer Underflow)和內(nèi)存損壞等安全漏洞,特別是 VirtIO 驅(qū)動(dòng)程序,在“邊界檢查”方面,其存在許多問(wèn)題。
谷歌表示,他們已經(jīng)修復(fù)了在 U-Boot 中發(fā)現(xiàn)的問(wèn)題,而通過(guò)轉(zhuǎn)用 Rust,還可以在未來(lái)避免出現(xiàn)更多類(lèi)似的內(nèi)存安全漏洞。
▲ 圖源 谷歌安全博客
由于谷歌要支持 Rust 語(yǔ)言在裸機(jī)環(huán)境中使用,也因此貢獻(xiàn)一系列新的項(xiàng)目,像是在 pVM 固件的 VirtIO 驅(qū)動(dòng)程序方面,谷歌便修復(fù)了現(xiàn)有 virtio-drivers 中的一系列錯(cuò)誤問(wèn)題,還添加了新功能。
谷歌還計(jì)劃發(fā)布更多的 Rust 軟件包,并支持各平臺(tái)的裸機(jī)程序開(kāi)發(fā),谷歌提到,雖然在裸機(jī)上應(yīng)用 Rust 還有許多限制,但是相對(duì)于 C 或 C++ 語(yǔ)言,Rust 可以提供更高的安全性和生產(chǎn)力,谷歌未來(lái)還會(huì)繼續(xù)擴(kuò)大 Rust 的使用。