Rust вече е фаворит за разработката на Android

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

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

Прилагането на ръждата е извършен като част от проект за укрепване на сигурността, насърчаване на техники за безопасно кодиране и подобряване на ефективността на идентифициране на проблеми при работа с памет в 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, се откриват в код, написан преди по-малко от година.

Fuente: https://security.googleblog.com


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

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

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