Google продолжает работу по портированию Android на Rust 

Руст-Андроид

Google уже работает над переносом различных компонентов Android на Rust

Вот уже несколько месяцев, Некоторыми новостями мы поделились здесь, в блоге. основные моменты о поддержке и признании, которые он получил Ржавчина в разных проектах и ​​разработках, из которых многие из них являются тяжеловесами, например Linux, Windows и даже Android.

Несмотря на большое признание больших парней, переход на Rust оказался непростым делом, поскольку даже для того, чтобы он был принят в качестве второго языка программирования в ядре Linux, Линусу Торвальдсу пришлось пройти немало испытаний, чтобы попробовать. одобрение.

В случае с Google это не стало исключением и вот уже несколько месяцев Google внедряет Rust во многие свои проекты и Android является одним из них и в котором был проведен достаточно контролируемый этап миграции, поскольку в рамках усилий по усилению безопасности критических программных компонентов платформы, теперь Google объявила, что завершила работу по миграции прошивки «Защищенная виртуальная машина Android Virtualization Framework (pVM)» для Rust.

Эта прошивка Используется для организации работы виртуальных машин, запускаемых гипервизором pVM из Android.. Ранее прошивки были написаны на языке C и реализованы поверх загрузчика U-Boot, в коде которого ранее были обнаружены уязвимости, вызванные проблемами с памятью.

Гипервизор pVM берет на себя управление на ранней стадии запуска y обеспечивает полную изоляцию памяти виртуальной машины от среды хоста, предотвращение доступа хост-системы к защищенным виртуальным машинам, обрабатывающим конфиденциальные данные. Прошивка pvmfm (Protected Virtual Machine Firmware) берет на себя управление сразу после загрузки виртуальной машины, проверяет созданную среду и решает прервать загрузку, если обнаружены проблемы с целостностью, или генерирует загрузочный сертификат для гостевой системы, если цепочка доверия.

Переписывание Rust упрощает и безопаснее соблюдать «правило двух» Google. для обеспечения безопасности компонентов системы Android. Согласно этому правилу, любой добавляемый код должен соответствовать не более чем двум из трёх условий: работать с непроверенными входными данными, использовать небезопасный язык программирования (C/C++) и запускаться с повышенными привилегиями. Это правило подразумевает, что код обработки внешних данных должен быть сведен к минимуму привилегий (изолирован) или написан на безопасном языке программирования. По статистике Google, примерно 70% всех выявленных опасных уязвимостей в Android связаны с ошибками при работе с памятью.

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

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

Стоит отметить, что новая прошивка переписана на Rust. включен в Android 14 а универсальные библиотеки, созданные в процессе разработки прошивки, упаковываются в пакеты и портируются в сообщество Rust. Полученный размер кода по сравнению с предыдущей версией прошивки pVM, которая занимала 220 КБ, новый код занимает 460 КБ, но новые функции добавлены в переписанную версию, благодаря чему удалось избавиться от некоторых других компонентов, используемых при загрузке.

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

В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.


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

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

*

*

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