Rust je već omiljen za Android razvoj

Google predstavio nedavno uključenje programski jezik Rđa među dozvoljenim jezicima za Android razvoj.

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

Implementacija Rust-a provedena je u sklopu projekta za jačanje sigurnosti, promoviraju tehnike sigurnog kodiranja i poboljšavaju efikasnost prepoznavanja problema u radu s memorijom u Androidu. Primjećuje se da je oko 70% svih opasnih ranjivosti identificiranih u Androidu uzrokovano greškama u radu s memorijom.

Upotreba jezika Rust, Que fokusira se na sigurno upravljanje memorijom i pruža automatsko upravljanje memorijom, smanjit će rizik od ranjivosti uzrokovanih greškama tijekom rukovanja memorijom, kao što je pristup memorijskom području nakon što je oslobođen i prekoračenje 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.

rđa takođe pruža sredstva za zaštitu od preljeva cijeli broj, zahtijeva obveznu inicijalizaciju vrijednosti varijabli prije upotrebe, bolje rukuje pogreškama u standardnoj knjižnici, po defaultu usvaja 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 pogodan za razvoj sistemskih komponenti zbog velikih troškova.

Rust omogućava postizanje performansi bliskih C i C ++ jezicima, omogućavajući da se koristi za razvoj dijelova platforme na niskom nivou i komponenata za povezivanje sa hardverom.

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

Među ograničenjima korištenja pješčanika, oni 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, jer eksploatacija zahtijeva identifikaciju ne jedne, već nekoliko ranjivosti.

Metode ispitivanja koda su ograničene, jer da biste otkrili greške, morate stvoriti uvjete za ispoljavanje 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 ispunjavati više od dva od tri uvjeta- Radite s neprovjerenim ulaznim podacima, koristite nesigurni programski jezik (C / C ++) i trčite bez tvrde izolacije pješčanika (s povišenim privilegijama).

Iz ovog pravila proizlazi da se kod za obradu vanjskih podataka mora smanjiti 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 grešaka pojavljuje u novom ili nedavno izmijenjenom kodu. Konkretno, oko 50% memorijskih grešaka otkrivenih u Androidu detektira se u kodu napisanom prije manje od godinu dana.

Izvor: https://security.googleblog.com


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   miguel rodriguez rekao je

    Ironija je kad vaš najveći konkurent na kraju usvoji nešto što ste pomogli razviti za svoje potrebe ... Rđa je u porastu.