Nästan en fjärdedel av Android 13 är skriven i Rust

Rust android 13

Android 13 är den första versionen av Android där det mesta av den nya koden som läggs till versionen är på ett minnessäkert språk.

Genom ett blogginlägg, Google ingenjörer släppte sammanfattningen av de första resultaten av inledningen Rostutvecklingsstöd på Android.

På Android 13, cirka 21 % av den nya koden kompilerad Aggregatet är skrivet i Rust och 79 % i C/C++, vilket är AOSP (Android Open Source Project), som utvecklar källkoden för Android-plattformen, som har cirka 1,5 miljoner rader Rust-kod.

Koden tillhandahålls av AOSP det är relaterat till nya komponenter som Keystore2 kryptografiska nyckellager, stacken för UWB (Ultra-Wideband) chips, implementering av DNS-protokollet över HTTP3, AVF virtualiseringsramverk (Android Virtualization Framework), experimentella stackar för Bluetooth och Wi-Fi.

I rad med strategin ovan för att minska risken för minnesfel, Hittills har Rust främst använts för utveckling av ny kod och för att gradvis stärka säkerheten för de mest sårbara och vitala mjukvarukomponenterna.

I takt med att antalet nya minnessäker kod som kommer in i Android har minskat, har också antalet minnessäkerhetssårbarheter minskat. Från 2019 till 2022 sjönk den från 76 % till 35 % av de totala Android-sårbarheterna. 2022 är det första året som minnessäkerhetssårbarheter inte står för majoriteten av Androids sårbarheter.

Det allmänna målet att överföra hela plattformen till Rust är inte satt, och den gamla koden finns kvar i C/C++, och kampen mot buggar i den görs genom att använda fuzzing-tester, statisk analys och användning av liknande tekniker. användning av MiraclePtr-typen (bindning över råpekare, som utför ytterligare kontroller för åtkomst av frigjorda minnesområden), Scudo-minnestilldelningssystemet (en säker ersättning för malloc/free) och feldetekteringsmekanismer vid arbete med HWAsan(Hardware Assisted AddressSanitizer)-minne , GWP-ASAN och KFENCE.

Beträffande statistik om arten av sårbarheterna på Android-plattformen observeras det att som minskar mängden ny kod som fungerar med minnet på osäkra sätt, minskar det också antalet sårbarheter som orsakas av fel när man arbetar med minne.

Till exempel minskade andelen sårbarheter orsakade av minnesproblem från 76 % 2019 till 35 % 2022. I absoluta tal identifierades 223 minnesrelaterade sårbarheter 2019, 150 2020, 100 2021 och 85 2022 de hittades inte). 2022 var det första året som minnesrelaterade sårbarheter upphörde att dominera.

Hittills har inga minnessäkerhetssårbarheter upptäckts i Android Rust-kod.

Vi förväntar oss inte att den siffran kommer att stanna på noll för alltid, men med tanke på volymen av ny Rustkod i två versioner av Android och de säkerhetskänsliga komponenterna där den används är det ett betydande resultat. Det visar att Rust tjänar sitt avsedda syfte att förhindra den vanligaste källan till Android-sårbarheter.

Med tanke på att minnesrelaterade sårbarheter är ofta de farligaste, visar övergripande statistik också en minskning av antalet kritiska problem och problem som kan utnyttjas på distans. Samtidigt har dynamiken för upptäckt av sårbarheter som inte är relaterade till arbete med minne legat på ungefär samma nivå de senaste 4 åren - 20 sårbarheter per månad.

Förhållandet mellan farliga problem och sårbarheter orsakade av minnesfel är också detsamma (men när antalet sårbarheter minskar, minskar också antalet farliga problem).

Statistiken spårar också sambandet mellan mängden ny kod som fungerar med minnet på ett osäkert sätt och antalet minnesrelaterade sårbarheter (buffertspill, tillgång till redan frigjort minne, etc.).

Denna observation bekräfta antagandet om att den huvudsakliga uppmärksamheten i implementering av säkra programmeringstekniker den bör ges till den nya koden och inte för att skriva om den befintliga, eftersom de flesta av de identifierade sårbarheterna finns i den nya koden.

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.