
В прошлом году Google объявила о поддержке Rust в Android Open Source Project (AOSP), а сегодня компания предоставила обновление, подчеркнув снижение уязвимостей безопасности памяти.
Google утверждает, что «количество уязвимостей безопасности памяти значительно сократилось за последние несколько лет/релизов». В частности, число ежегодных уязвимостей безопасности памяти сократилось с 223 до 85 между 2019 и 2022 годами. Сейчас они составляют 35% от общего числа уязвимостей Android по сравнению с 76% четыре года назад. Фактически, «2022 год стал первым годом, когда уязвимости безопасности памяти не представляли большинства уязвимостей Android».
Эта цифра относится к «уязвимостям, о которых сообщается в бюллетене безопасности Android, который включает уязвимости критической/высокой степени серьезности, сообщенные через нашу программу вознаграждений за уязвимости (VRP) и уязвимости, сообщенные внутри компании».
За этот период «количество нового небезопасного по памяти кода, поступающего в Android, сократилось».
Android 13 — это первый релиз Android, в котором большинство нового кода, добавленного в релиз, написано на языке с безопасной памятью.
Rust составляет 21% всего нового нативного кода в Android 13, включая стек Ultra-wideband (UWB), DNS-over-HTTP3, Keystore2, фреймворк виртуализации Android (AVF) и «различные другие компоненты и их зависимости с открытым исходным кодом». Google считает значительным тот факт, что на данный момент «в коде Rust для Android не было обнаружено ни одной уязвимости безопасности памяти» в Android 12 и 13.
Хотя корреляция не обязательно означает причинно-следственную связь, интересно отметить, что процент уязвимостей, вызванных проблемами безопасности памяти, тесно коррелирует с языком разработки, используемым для нового кода. Это соответствует ожиданиям, опубликованным в нашем посте в блоге 2 года назад о возрасте уязвимостей безопасности памяти и о том, почему нам следует сосредоточиться на новом коде, а не на переписывании существующих компонентов.


В сегодняшнем посте в блоге Google также говорится о не связанных с безопасностью памяти уязвимостях, которые менее серьезны, и о будущих планах компании:
Переход от C/C++ сложен, но мы добиваемся прогресса. Использование Rust растет на платформе Android, но это еще не конец истории. Чтобы достичь целей по повышению безопасности, стабильности и качества во всей Android, нам необходимо использовать Rust в любом месте кодовой базы, где требуется нативный код. Мы реализуем HAL пользовательского пространства на Rust. Мы добавляем поддержку Rust в доверенные приложения. Мы перевели прошивку виртуальной машины во фреймворке виртуализации Android на Rust. С поддержкой Rust в Linux 6.1 мы рады привнести безопасность памяти в ядро, начиная с драйверов ядра.