LINUXTALKS.CO

Около 21% нового компилируемого кода в Android 13 написано на языке Rust

 

L


0

1

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

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

Что касается статистики по характеру уязвимостей в платформе Android, отмечается, что по мере уменьшения нового кода, небезопасно работающего с памятью, наблюдается и снижение количества уязвимостей, вызванных ошибками при работе с памятью. Например, доля вызванных проблемами с памятью уязвимостей сократилось с 76% в 2019 году до 35% в 2022 году. В абсолютных числах в 2019 году было выявлено 223 уязвимостей, связанных с работой с памятью, в 2020 - 150, в 2021 - 100, а в 2022 - 85 (все отмеченные уязвимости в коде на C/C++, в коде на Rust подобных проблем пока не было найдено). 2022 год стал первым годом, в котором связанные с памятью уязвимости перестали доминировать.

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

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

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

>>> Подробности

★★☆☆☆
Ответ на: комментарий от Kaschenko

эт понятно. но пример-то брать надо! openbsdшники вообще сказали, что раст в гробу видали.

crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

openbsdшники вообще сказали, что раст в гробу видали.

Они сами в гробу, что они ещё видеть могут лол

Kaschenko    
★★★★★
Android / Yandex
Ответ на: комментарий от Kaschenko

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

crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от Kaschenko

если проект регулярно релизится, то он жив, а твои критерии мне не понятны. в рамках openbsd также развивается sshd и еще несколько софтин.

netbsd такой живостью похвастаться не может. dragonfly bsd - проект одного человека, так что масштаб не тот.

crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от crypt

если проект регулярно релизится, то он жив

Все актуальные *BSD релизятся регулярно.

dragonfly bsd - проект одного человека

С чего это? Там полно разрабов.

Minona    
★★★★★
Windows / Yandex
Ответ на: комментарий от crypt

Коммиты от 3 авторов.
3 больше 1?
А если посмотреть глубже можно насчитать ещё 6 человек.

Minona    
★★★★★
Windows / Yandex
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90