Rust er allerede en favoritt for Android-utvikling

Google avduket nylig tilbøyeligheten programmeringsspråk Rust blant tillatte språk for Android-utvikling.

Siden Rust-kompilatoren ble inkludert i Android-kildetreet i 2019, men språkstøtten forble eksperimentell. Noen av de første Rust-komponentene som sendes til Android er nye implementeringer av Binder interprocess-kommunikasjonsmekanismen og Bluetooth-stakken.

Rustimplementeringen ble gjennomført som en del av et prosjekt for å styrke sikkerheten, fremme sikre kodingsteknikker og forbedre effektiviteten ved å identifisere problemer når du arbeider med minne i Android. Det observeres at rundt 70% av alle farlige sårbarheter identifisert i Android er forårsaket av feil når du arbeider med minne.

Bruken av Rust-språket, que fokuserer på sikker minnehåndtering og gir automatisk minnehåndtering, vil det redusere risikoen for sårbarheter forårsaket av feil under minnehåndtering, for eksempel tilgang til et minneområde etter at det er frigjort og overfylte buffergrensene.

Sikker minnehåndtering er sikret i Rust på kompileringstidspunktet ved å sjekke referanser, spore gjenstandseiendom og objektlevetid (omfang), samt evaluere riktigheten av tilgang til minne på kjøretid.

Rust gir også midler for å beskytte mot overløp heltall, krever obligatorisk initialisering av variable verdier før bruk, håndterer bedre feil i standardbiblioteket, vedtar begrepet referanser og uforanderlige variabler som standard, og tilbyr sterk statisk skriving for å minimere logiske feil.

På Android tilbys sikker minneadministrasjon på Kotlin- og Java-språk allerede støttet, men ikke egnet til å utvikle systemkomponenter på grunn av tung overhead.

Rust gjør det mulig å oppnå en forestilling nær språkene C og C ++, slik at den kan brukes til å utvikle deler på plattformen på lave nivåer og komponenter for å grensesnitt med maskinvaren.

For å sikre sikkerheten til C- og C ++ -koden bruker Android sandkasseisolasjon, statisk analyse og fuzzing-tester. Sandbox isolasjonsevner er begrensede og har nådd grensen for deres evner (ytterligere fragmentering i prosesser er ikke praktisk sett fra et ressursforbruk synspunkt).

Blant begrensningene ved bruk av sandkasse, nevner de det høye overhead- og høyere minneforbruket forårsaket av behovet for å generere nye prosesser, samt den ekstra ventetiden som er forbundet med bruken av IPC.

Samtidig eliminerer ikke sandkassen sårbarheter i koden, men reduserer bare risikoen og kompliserer angrepet, siden utnyttelsen krever identifisering av ikke en, men flere sårbarheter.

Kodetestemetoder er begrenset fordi du, for å oppdage feil, må lage betingelser for manifestasjonen av problemet. Det er ikke mulig å dekke alle mulige alternativer, så mange feil blir ubemerket.

For systemprosesser på Android, Google følger "regelen om to", según som enhver tilleggskode ikke må oppfylle mer enn to av tre betingelser- Arbeid med ubekreftede inndata, bruk et usikkert programmeringsspråk (C / C ++), og kjør uten hard sandkasseisolasjon (med forhøyede privilegier).

Det følger av denne regelen at koden for å behandle eksterne data må reduseres til minst privilegium (isolert) eller skrives på et sikkert programmeringsspråk.

Google har ikke som mål å omskrive koden C / C ++ eksisterende i Rust, men han planlegger å bruke dette språket for å utvikle ny kode.

Det er fornuftig å bruke Rust for ny kode, siden statistisk sett vises de fleste feil i ny eller nylig modifisert kode. Spesielt oppdages rundt 50% av minnefeilene som er oppdaget i Android i kode skrevet for mindre enn et år siden.

Fuente: https://security.googleblog.com


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   miguel rodriguez sa

    Ironien når den største konkurrenten din ender med å vedta noe du hjalp til med å utvikle for dine egne formål ... Rust øker.