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

Google представил в последнее время включение язык программирования Ржавчина среди разрешенных языков для разработки под Android.

Поскольку компилятор Rust был включен в дерево исходных кодов Android в 2019 году, поддержка языка оставалась экспериментальной. Некоторые из первых компонентов Rust для Android - это новые реализации механизма межпроцессного взаимодействия Binder и стека Bluetooth.

Реализация Rust проводился в рамках проекта по усилению безопасности, продвигайте методы безопасного кодирования и повышайте эффективность выявления проблем при работе с памятью в Android. Замечено, что около 70% всех опасных уязвимостей, выявленных в Android, вызваны ошибками при работе с памятью.

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

Безопасная обработка памяти обеспечивается в Rust во время сборки путем проверки ссылок, отслеживания владения объектами и жизни объекта (области действия), а также оценки правильности доступа к памяти во время выполнения.

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

В Android безопасное управление памятью обеспечивается на языках Kotlin и Java. уже поддерживается, но не подходит для разработки системных компонентов из-за больших накладных расходов.

Rust позволяет достичь производительности, близкой к языкам C и C ++., что позволяет использовать его для разработки низкоуровневых частей платформы и компонентов для взаимодействия с оборудованием.

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

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

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

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

Для системных процессов на Android, Google придерживается правила двухПо который любой добавленный код не должен соответствовать более чем двум из трех условий- Работайте с непроверенными входными данными, используйте небезопасный язык программирования (C / C ++) и запускайте без жесткой изоляции песочницы (с повышенными привилегиями).

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

Google не стремится переписывать код C / C ++, существующий в Rust, но он планирует использовать этот язык для разработки нового кода.

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

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


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

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

*

*

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

  1.   Мигель Родригес сказал

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