谷歌:Android 內存安全漏洞比例下降與使用 Rust 相關

infoq 發佈 2022-12-09T02:51:36.880618+00:00

作者 | 褚杏娟根據谷歌安全消息,十多年來,內存安全漏洞一直占整個產品和整個行業漏洞的 65% 以上。但近期在 Android 上,內存安全漏洞顯著減少,並且相關的漏洞嚴重性也有所下降。

作者 | 褚杏娟

根據谷歌安全消息,十多年來,內存安全漏洞一直占整個產品和整個行業漏洞的 65% 以上。但近期在 Android 上,內存安全漏洞顯著減少,並且相關的漏洞嚴重性也有所下降。


「從 2019 年到 2022 年,內存安全漏洞的年度數量從 223 個下降到 85 個,」Android 安全工程師 Jeffrey Vander Stoep 在博客文章中說道。Jeffrey 表示,這種下降與放棄內存不安全程式語言的努力相吻合,這裡的「內存不安全程式語言」指的是 C/C++。



從去年的 Android 12 開始,Rust 成為了 Android 平台語言。Jeffrey 表示,現在在 Android 13 中,添加到該版本中的大部分新代碼都是用內存安全語言——Rust、Java 或 Kotlin 編寫的。


隨著 Android 內存不安全代碼越來越少,內存安全漏洞占 Android 漏洞的比例從 2019 年的 76% 下降到 2022 年的 35%。2022 年是內存安全漏洞不再是 Android 大部分漏洞代表的第一年。


「雖然有相關性並不一定意味著有因果關係,但值得注意的是,由內存安全問題引起的漏洞的百分比似乎與用於新代碼的開發語言密切相關。」Jeffrey 說道。


據悉,在 Android 13 中,大約 21% 的新原生代碼(C/C++/Rust)是 Rust。AOSP 中大約有 150 萬行 Rust 代碼,涵蓋了各種新功能和組件,例如 Keystore2、新的超寬帶 (UWB) 堆棧、DNS-over-HTTP3、Android 的虛擬化框架 (AVF) 以及各種其他組件及其開源依賴項。這些是需要系統語言的低級組件,否則這些組件將在 C++ 中實現。迄今為止,在 Android 的 Rust 代碼中發現的內存安全漏洞為零。


不過,Jeffrey 也表示,谷歌的目標不是將現有的 C/C++ 轉換為 Rust,而是隨著時間的推移,將新代碼的開發轉移到內存安全語言。


谷歌並不是唯一一家認識到內存安全代碼好處的大型科技公司。Meta 層表達過對 Rust 的讚賞。幾個月前,微軟 CTO Mark Russinovich 宣布不應再使用 C/C++ 來啟動新項目,並表示應該在需要沒有垃圾收集的語言的地方部署 Rust。


參考連結:

https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html

關鍵字: