Почти четверть Android 13 написана на Rust

ржавчина андроид 13

Android 13 — это первая версия Android, в которой большая часть нового кода, добавленного в версию, написана на безопасном для памяти языке.

Через сообщение в блоге инженеры Google выпустили сводку первых результатов введения Поддержка разработки Rust на Android.

Андроид 13, около 21% нового кода скомпилировано Совокупность написана на Rust и на 79% на C/C++, являясь репозиторием AOSP (Android Open Source Project), который разрабатывает исходный код для платформы Android, содержащий примерно 1,5 миллиона строк кода Rust.

Код предоставлено АОСП это связано с новыми компонентами, такими как криптографическое хранилище ключей Keystore2, стек для чипов UWB (Ultra-Wideband), реализация протокола DNS через HTTP3, инфраструктура виртуализации AVF (Android Virtualization Framework), экспериментальные стеки для Bluetooth и Wi-Fi.

В линии со стратегией, принятой выше, чтобы снизить риск уязвимостей ошибок памяти, До сих пор Rust использовался в основном для разработки нового кода и постепенного усиления безопасности наиболее уязвимых и жизненно важных компонентов программного обеспечения.

По мере того, как количество нового кода, небезопасного для памяти, входящего в Android, уменьшилось, количество уязвимостей безопасности памяти также уменьшилось. С 2019 по 2022 год она упала с 76% до 35% от общего числа уязвимостей Android. 2022 год стал первым годом, когда уязвимости безопасности памяти не составляют большую часть уязвимостей Android.

Общая цель перевода всей платформы на Rust не ставится, а старый код остается на C/C++, а борьба с ошибками в нем ведется с помощью фаззинг-тестов, статического анализа и применения подобных методик. использование типа MiraclePtr (привязка по необработанным указателям, выполняющая дополнительные проверки доступа к освобождаемым областям памяти), системы выделения памяти Scudo (безопасная замена malloc/free) и механизмов обнаружения ошибок при работе с памятью HWAsan(Hardware Assisted AddressSanitizer) , GWP-ASAN и KFENCE.

Что касается статистики о характере уязвимости на платформе Android наблюдается, что как уменьшает количество нового кода, который работает с памятью небезопасным образом, также уменьшается количество уязвимостей, вызванных ошибками при работе с памятью.

Например, доля уязвимостей, вызванных проблемами с памятью, снизилась с 76% в 2019 г. до 35% в 2022 г. В абсолютных цифрах в 223 г. было выявлено 2019 уязвимости, связанных с памятью, в 150 г. не были обнаружены). 2020 год стал первым годом, когда уязвимости, связанные с памятью, перестали доминировать.

На сегодняшний день в коде Android Rust не обнаружено уязвимостей безопасности памяти.

Мы не ожидаем, что это число навсегда останется равным нулю, но, учитывая объем нового кода Rust в двух версиях Android и компоненты, чувствительные к безопасности, в которых он используется, это значительный результат. Это показывает, что Rust служит своей цели по предотвращению наиболее распространенных источников уязвимостей Android.

При условии уязвимости, связанные с памятью, часто являются наиболее опасными, общая статистика также показывает уменьшение количества критических проблем и проблем, которые можно использовать удаленно. При этом динамика обнаружения уязвимостей, не связанных с работой с памятью, последние 4 года находится примерно на одном уровне — 20 уязвимостей в месяц.

Соотношение опасных проблем и уязвимостей, вызванных ошибками памяти, также одинаково (но по мере уменьшения количества уязвимостей уменьшается и количество опасных проблем).

В статистике также отслеживается корреляция между количеством нового кода, небезопасно работающего с памятью, и количеством уязвимостей, связанных с памятью (переполнение буфера, доступ к уже освобожденной памяти и т. д.).

Это наблюдение подтвердить предположение о что основное внимание в внедрение методов безопасного программирования его следует отдать новому коду, а не переписывать существующий, так как большинство выявленных уязвимостей находится в новом коде.

источник: https://security.googleblog.com/


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.