12 月 4 日消息,去年,谷歌將 Rust 作為安卓開源項目(AOSP)中新代碼的默認代碼,這一舉措似乎正在得到回報,谷歌稱安卓系統(tǒng)中的內(nèi)存安全漏洞已經(jīng)減少了一半以上。

圖源 Pexels
谷歌表示,“在過去幾年 / 版本中,內(nèi)存安全漏洞的數(shù)量大幅下降”。具體而言,2019 年至 2022 年期間,每年的內(nèi)存安全漏洞數(shù)量從 223 個下降到 85 個。內(nèi)存安全漏洞現(xiàn)在是安卓系統(tǒng)總漏洞的 35%,而四年前是 76%。事實上,“2022 年是內(nèi)存安全漏洞不占安卓系統(tǒng)漏洞的大多數(shù)的第一年”。

安卓 13 是第一個在其中加入的大部分新代碼都是使用內(nèi)存安全語言的安卓版本,在這個版本中,Rust 語言占了所有新的本地代碼的 21%,包括超寬帶(UWB)堆棧、DNS-over-HTTP3、Keystore2、安卓的虛擬化框架(AVF),以及“各種其它組件及其開源依賴”。

IT之家了解到,除了 Rust,谷歌用于安卓的其它內(nèi)存安全語言包括 Java 和與 Java 兼容的 Kotlin。C 和 C++ 仍然是 AOSP 中的主流語言,但安卓 13 是第一個大部分新代碼來自內(nèi)存安全語言的版本。
安卓安全軟件工程師 Jeffrey Vander Stoep 指出,安卓團隊計劃加強對 Rust 的使用,盡管沒有計劃在系統(tǒng)編程中徹底棄用 C 和 C++。他在一條推文中指出:“Rust 并不能解決所有問題,在某些領域,C / C++ 將繼續(xù)是最實用的開發(fā)選擇,至少在一段時間內(nèi)是這樣。”他還稱,“我們將努力隨著時間的推移減少這種情況,同時繼續(xù)擴大我們的 Rust 使用規(guī)模,并繼續(xù)投資和部署對 C / C++ 的改進。”
Vander Stoep 指出,相關性并不等同于因果關系,但內(nèi)存安全漏洞的百分比確實與新代碼使用的語言密切相關。
他繼續(xù)指出,在安卓 13 中,共有 150 萬行 Rust 代碼,約占所有新代碼的 21%。到目前為止,谷歌還沒有在安卓的 Rust 代碼中發(fā)現(xiàn)任何內(nèi)存安全漏洞。Vander Stoep 指出,“這表明,Rust 正在實現(xiàn)其預期的目的,即防止出現(xiàn) Android 最常見的漏洞。在安卓的許多 C / C++ 組件(如媒體、藍牙、NFC 等)中,歷史漏洞密度大于 1 / kLOC(每千行代碼有一個漏洞)。根據(jù)這一歷史漏洞密度,使用 Rust 很可能已經(jīng)放置了數(shù)百個漏洞的產(chǎn)生。”
谷歌認為擺脫 C / C++ 是一個挑戰(zhàn),但正在為安卓系統(tǒng)推進該項目。然而,其并沒有在 Chrome 上使用 Rust 語言。















