Rust je već omiljen za razvoj Androida

Google je predstavio nedavno uključivanje programski jezik Rđa među dopuštenim jezicima za razvoj Androida.

Budući da je kompajler Rust uključen u izvorno stablo Androida 2019. godine, ali podrška jezika ostala je eksperimentalna. Neke od prvih komponenata Rust-a koje se isporučuju na Android nove su implementacije Binder interprocess komunikacijskog mehanizma i Bluetooth steka.

Provedba hrđe proveden je u sklopu projekta za jačanje sigurnosti, promoviraju tehnike sigurnog kodiranja i poboljšavaju učinkovitost prepoznavanja problema u radu s memorijom u Androidu. Primjećuje se da je oko 70% svih opasnih ranjivosti identificiranih u Androidu uzrokovano pogreškama u radu s memorijom.

Korištenje jezika Rust, ovo usredotočuje se na sigurno upravljanje memorijom i pruža automatsko upravljanje memorijom, smanjit će rizik od ranjivosti uzrokovanih pogreškama tijekom rukovanja memorijom, poput pristupa memorijskom području nakon što je oslobođeno i prekomjernih ograničenja međuspremnika.

Sigurno rukovanje memorijom osigurano je u Rustu u vrijeme izrade provjerom referenci, praćenjem vlasništva nad objektom i vijekom trajanja (opsega), kao i procjenom ispravnosti pristupa memoriji u vrijeme izvođenja.

Hrđa također pruža sredstva za zaštitu od preljeva cijeli broj, zahtijeva obveznu inicijalizaciju vrijednosti varijabli prije upotrebe, bolje obrađuje pogreške u standardnoj knjižnici, prema zadanim postavkama prihvaća koncept referenci i nepromjenjivih varijabli i nudi snažno statičko pisanje kako bi se minimizirale logičke pogreške.

Na Androidu je osigurano sigurno upravljanje memorijom na jezicima Kotlin i Java već podržan, ali nije prikladan za razvoj komponenata sustava zbog velikih troškova.

Rust omogućuje postizanje performansi bliskih jezicima C i C ++, omogućujući da se koristi za razvoj dijelova platforme i komponenata za povezivanje s hardverom.

Kako bi osigurao sigurnost C i C ++ koda, Android koristi izolaciju pješčanika, statičku analizu i fuzzing testove. Mogućnosti izolacije pješčanika ograničene su i dosegnule su granicu svojih mogućnosti (daljnja fragmentacija procesa nije praktična sa stajališta potrošnje resursa).

Među ograničenjima korištenja pješčanika spominju velike troškove i veću potrošnju memorije uzrokovane potrebom za generiranjem novih procesa, kao i dodatnu latenciju povezanu s upotrebom IPC-a.

Istodobno, pješčanik ne uklanja ranjivosti u kodu, već samo smanjuje rizike i komplicira napad, budući da eksploatacija zahtijeva identifikaciju ne jedne, već nekoliko ranjivosti.

Metode ispitivanja koda su ograničene, jer da biste otkrili pogreške, morate stvoriti uvjete za očitovanje problema. Nije moguće pokriti sve moguće opcije, pa mnoge pogreške ostaju neprimijećene.

Za sistemske procese na Androidu, Google se drži "pravila dvoje", prema koji bilo koji dodani kod ne smije udovoljavati više od dva od tri uvjeta- Radite s neprovjerenim ulaznim podacima, koristite nesigurni programski jezik (C / C ++) i pokrenite bez tvrde izolacije pješčanika (s povišenim privilegijama).

Iz ovog pravila proizlazi da se kod za obradu vanjskih podataka mora svesti na najmanju privilegiju (izolirati) ili napisati na sigurnom programskom jeziku.

Google nema za cilj prepisivanje koda C / C ++ postoji u Rustu, ali planira koristiti ovaj jezik za razvoj novog koda.

Ima smisla koristiti Rust za novi kod, jer se statistički većina pogrešaka pojavljuje u novom ili nedavno izmijenjenom kodu. Konkretno, oko 50% pogrešaka u memoriji otkrivenih u Androidu otkriva se u kodu napisanom prije manje od godinu dana.

izvor: https://security.googleblog.com


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   miguel rodriguez dijo

    Ironija je kada vaš najveći konkurent na kraju usvoji nešto što ste pomogli razviti za svoje potrebe ... Rust je u porastu.