Rust är redan en favorit för Android-utveckling

Google presenteras nyligen lutningen programmeringsspråk Rost bland tillåtna språk för Android-utveckling.

Sedan Rust-kompilatorn ingick i Android-källträdet 2019, men språkstödet förblev experimentellt. Några av de första Rust-komponenterna som skickas till Android är nya implementeringar av Binder inter-processkommunikationsmekanismen och Bluetooth-stacken.

Rostimplementeringen genomfördes som en del av ett projekt för att stärka säkerheten, främja säkra kodningstekniker och förbättra effektiviteten för att identifiera problem när du arbetar med minne i Android. Det observeras att cirka 70% av alla farliga sårbarheter som identifierats i Android orsakas av fel när man arbetar med minne.

Användningen av Rust-språket, que fokuserar på säker minneshantering och ger automatisk minneshantering, kommer det att minska risken för sårbarheter orsakade av fel under minneshantering, t.ex. åtkomst till ett minnesområde efter att det har frigjorts och överskrider buffertgränserna.

Säker minneshantering säkerställs i Rust vid kompileringstid genom att kontrollera referenser, spåra objektägande och objektliv (omfattning), samt utvärdera riktigheten av åtkomst till minne vid körningstid.

Rust ger också medel för att skydda mot överflöd heltal, kräver obligatorisk initialisering av variabla värden före användning, hanterar bättre fel i standardbiblioteket, antar begreppet referenser och oföränderliga variabler som standard och erbjuder stark statisk skrivning för att minimera logiska fel.

På Android tillhandahålls säker minneshantering på Kotlin- och Java-språken redan stöds, men inte lämpligt för att utveckla systemkomponenter på grund av tunga omkostnader.

Rust gör det möjligt att uppnå en prestanda nära C- och C ++ -språken, så att den kan användas för att utveckla delar på plattformen på låga nivåer och komponenter för att gränssnitt med hårdvaran.

För att säkerställa säkerheten för C- och C ++ -koden använder Android sandlådaisolering, statisk analys och fuzzing-tester. Sandbox isoleringsfunktioner är begränsade och har nått gränsen för deras kapacitet (ytterligare fragmentering i processer är inte praktiskt ur resursförbrukningssynpunkt).

Bland begränsningarna med att använda sandlåda nämner de den höga omkostnadskostnaden och den högre minnesförbrukningen som orsakas av behovet av att generera nya processer, liksom den ytterligare latens som är förknippad med användningen av IPC.

Samtidigt eliminerar inte sandlådan sårbarheter i koden, utan minskar bara riskerna och komplicerar attacken, eftersom utnyttjandet kräver identifiering av inte en, utan flera sårbarheter.

Kodtestmetoder är begränsade eftersom du, för att upptäcka fel, måste skapa förutsättningar för manifestationen av problemet. Det är inte möjligt att täcka alla möjliga alternativ, så många fel går obemärkt förbi.

För systemprocesser på Android, Google följer "regeln om två", enligt vilken tillagd kod inte får uppfylla mer än två av tre villkor- Arbeta med icke-verifierad indata, använd ett osäkert programmeringsspråk (C / C ++) och kör utan hård sandlådaisolering (med förhöjda behörigheter).

Det följer av denna regel att koden för att bearbeta extern data måste reduceras till minst privilegium (isolerad) eller skrivas på ett säkert programmeringsspråk.

Google strävar inte efter att skriva om koden C / C ++ finns i Rust, men han planerar att använda detta språk för att utveckla ny kod.

Det är vettigt att använda Rust för ny kod, eftersom statistiskt sett de flesta fel visas i ny eller nyligen modifierad kod. I synnerhet upptäcks cirka 50% av minnesfelen som upptäcks i Android i kod som skrevs för mindre än ett år sedan.

Fuente: https://security.googleblog.com


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Miguel Rodriguez sade

    Ironin, när din största konkurrent slutar anta något som du hjälpte till att utveckla för dina egna ändamål ... Rost ökar.