Как стать автором
Обновить

Google рассказала об итогах внедрения в платформу Android 13 поддержки разработки на Rust

Время на прочтение2 мин
Количество просмотров2.8K

Инженеры Google поделились первыми итогами внедрения в платформу Android поддержки разработки на языке Rust. По их словам, около 21% от добавленного нового компилируемого кода написано на Rust, а 79% — на C/C++. 

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

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

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

Инженеры отметили снижение числа уязвимостей из-за ошибок при работе с памятью по мере внедрения нового кода. Доля вызванных проблемами с памятью уязвимостей сократилось с 76% в 2019 году до 35% в 2022 году. Если в 2019 году было выявлено 223 таких уязвимостей, то в 2020 — уже 150, в 2021 — 100, а в 2022 — 85. Все уязвимости были найдены в коде на C/C++. В этом году связанные с памятью уязвимости впервые перестали доминировать.

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

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

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

В 2021 году Google, Microsoft, Huawei, Mozilla и AWS основали некоммерческую организацию Rust Foundation, которая занимается развитием языка Rust.

Теги:
Хабы:
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Другие новости

Истории

Работа

Программист С
43 вакансии
Rust разработчик
10 вакансий

Ближайшие события