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