Іржа вже є фаворитом для розробки 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, виявляються в коді, написаному менше року тому.

Фуенте: https://security.googleblog.com


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Мігель Родрігес - сказав він

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