Почти четверть 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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.