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

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

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

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