Rust je již oblíbený pro vývoj systému Android

Google představen nedávno sklon programovací jazyk Rez mezi povolenými jazyky pro vývoj systému Android.

Vzhledem k tomu, že kompilátor Rust byl zahrnut do zdrojového stromu Androidu v roce 2019, jazyková podpora však zůstala experimentální. Některé z prvních komponentů Rust dodávaných do systému Android jsou nové implementace meziprocesového komunikačního mechanismu Binder a zásobníku Bluetooth.

Realizace Rust byla provedena v rámci projektu na posílení bezpečnosti, propagovat techniky bezpečného kódování a zlepšit efektivitu identifikace problémů při práci s pamětí v systému Android. Je pozorováno, že přibližně 70% všech nebezpečných zranitelností identifikovaných v systému Android je způsobeno chybami při práci s pamětí.

Používání jazyka Rust, že se zaměřuje na bezpečnou správu paměti a poskytuje automatickou správu paměti, sníží riziko zranitelnosti způsobené chybami během zpracování paměti, jako je přístup do oblasti paměti po jejím uvolnění a překročení limitů vyrovnávací paměti.

Zabezpečené zpracování paměti je v Rustu zajištěno v době sestavování kontrolou odkazů, sledováním vlastnictví objektu a životem (rozsahem) objektu a také hodnocením správnosti přístupu k paměti za běhu.

Rez také poskytuje prostředky na ochranu proti přetečení integer, vyžaduje před použitím povinnou inicializaci hodnot proměnných, lépe zpracovává chyby ve standardní knihovně, standardně přijímá koncept odkazů a neměnných proměnných a nabízí silné statické zápisy, které minimalizují logické chyby.

V systému Android je zabezpečená správa paměti poskytována v jazycích Kotlin a Java již podporováno, ale není vhodné pro vývoj systémových komponent z důvodu vysoké režie.

Rust umožňuje dosáhnout výkonu blízkého jazykům C a C ++, což umožňuje jeho použití k vývoji nízkoúrovňových částí platformy a komponent pro propojení s hardwarem.

Aby byla zajištěna bezpečnost kódu C a C ++, používá Android izolaci izolovaného prostoru, statickou analýzu a fuzzing testy. Schopnosti izolace izolovaného prostoru jsou omezené a dosáhly hranice svých schopností (další fragmentace procesů není z hlediska spotřeby zdrojů praktická).

Mezi omezeními používání karantény zmiňují vysokou režii a vyšší spotřebu paměti způsobenou nutností generovat nové procesy, jakož i další latenci spojenou s používáním IPC.

Sandbox zároveň neodstraňuje chyby zabezpečení v kódu, ale pouze snižuje rizika a komplikuje útok, protože vykořisťování vyžaduje identifikaci ne jedné, ale několika chyb zabezpečení.

Metody testování kódu jsou omezené, protože k detekci chyb je třeba vytvořit podmínky pro projevení problému. Není možné pokrýt všechny možné možnosti, takže mnoho chyb zůstává bez povšimnutí.

U systémových procesů v systému Android Google dodržuje „pravidlo dvou“Podle který žádný přidaný kód nesmí splňovat více než dvě ze tří podmínek- Pracujte s neověřenými vstupními daty, používejte nezabezpečený programovací jazyk (C / C ++) a spusťte bez izolace tvrdé karantény (se zvýšenými oprávněními).

Z tohoto pravidla vyplývá, že kód pro zpracování externích dat musí být snížen na nejméně privilegovaný (izolovaný) nebo zapsán v zabezpečeném programovacím jazyce.

Google nemá za cíl přepsat kód C / C ++ existující v Rustu, ale plánuje použít tento jazyk k vývoji nového kódu.

Má smysl použít Rust pro nový kód, protože statisticky většina chyb se objeví v novém nebo nedávno upraveném kódu. Zejména přibližně 50% chyb paměti zjištěných v systému Android je detekováno v kódu napsaném před méně než rokem.

zdroj: https://security.googleblog.com


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   miguel rodriguez řekl

    Je ironií, že když váš největší konkurent přijme něco, co jste pomohli vyvinout pro své vlastní účely ... Rust je na vzestupu.