Майже чверть Android 13 написана на Rust

Rust android 13

Android 13 — це перша версія Android, у якій більшість нового коду додано мовою, безпечною для пам’яті.

Через публікацію в блозі інженери Google опублікував зведення перших результатів вступу Підтримка розробки Rust на Android.

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

Код надається AOSP це пов’язано з новими компонентами, такими як криптографічне сховище ключів 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, у 100 році – 2021, у 85 році – 2022. не були знайдені). 2022 рік став першим роком, коли вразливості, пов’язані з пам’яттю, перестали домінувати.

На сьогоднішній день у коді 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. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.