Cirka 21 % av den nya kompilerade koden i Android 13 är skriven i Rust

Ingenjörer från Google sammanfattade de första resultaten av att introducera stöd för utveckling i språket Rust i Android-plattformen. I Android 13 är ungefär 21 % av den nya kompilerade koden som lagts till skriven i Rust och 79 % i C/C++. AOSP-förrådet (Android Open Source Project), som utvecklar källkoden för Android-plattformen, innehåller cirka 1.5 miljoner rader Rustkod förknippade med sådana nya komponenter som Keystore2 kryptografiska nyckellager, en stack för UWB-chips (Ultra-Wideband) , implementering av DNS-over-HTTP3-protokollet, AVF (Android Virtualization Framework) virtualiseringsramverk, experimentella stackar för Bluetooth och Wi-Fi.

Cirka 21 % av den nya kompilerade koden i Android 13 är skriven i Rust

I enlighet med den tidigare antagna strategin att minska risken för sårbarheter orsakade av fel i arbetet med minne, används Rust-språket för närvarande främst i utvecklingen av ny kod och för att successivt stärka säkerheten för de mest sårbara och vitala mjukvarukomponenterna. Det finns inget generellt mål att överföra hela plattformen till Rust och den gamla koden finns kvar i C/C++, och kampen mot fel i den utförs genom användning av fuzzing-testning, statisk analys och användning i utveckling av tekniker liknande använder MiraclePtr-typen (bindning över råpekare, utför ytterligare kontroller för åtkomst av frigjorda minnesområden), Scudo-minnestilldelningssystemet (en säker ersättning för malloc/free) och feldetekteringsmekanismer när man arbetar med minne HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN och KFENCE.

När det gäller statistik om karaktären av sårbarheter i Android-plattformen, noteras att i takt med att ny kod som fungerar osäkert med minne minskar, minskar 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 2019 minnesrelaterade sårbarheter 223, 2020 150, 2021 100 och 2022 85 (alla noterade sårbarheter fanns i C/C++-kod; i Rust-kod finns det inga liknande problem hittills. hittades). 2022 var det första året då minnesrelaterade sårbarheter upphörde att dominera.

Cirka 21 % av den nya kompilerade koden i Android 13 är skriven i Rust

Eftersom minnesrelaterade sårbarheter vanligtvis är de farligaste visar den övergripande statistiken också en minskning av antalet kritiska problem och problem som kan utnyttjas på distans. Samtidigt har dynamiken i att identifiera sårbarheter som inte är relaterade till att arbeta med minne legat på ungefär samma nivå de senaste 4 åren - 20 sårbarheter per månad. Andelen farliga problem bland sårbarheter orsakade av fel vid arbete med minne kvarstår också (men eftersom antalet sådana sårbarheter minskar minskar också antalet farliga problem).

Cirka 21 % av den nya kompilerade koden i Android 13 är skriven i Rust

Statistiken spårar även sambandet mellan mängden ny kod som fungerar osäkert med minnet och antalet minnesrelaterade sårbarheter (buffertspill, tillgång till redan frigjort minne, etc.). Denna observation bekräftar antagandet att fokus vid implementering av säkra programmeringstekniker bör ligga på att ta bort ny kod snarare än att skriva om befintlig kod, eftersom huvuddelen av identifierade sårbarheter finns i ny kod.

Cirka 21 % av den nya kompilerade koden i Android 13 är skriven i Rust


Källa: opennet.ru

Lägg en kommentar