Ingenjörer frÄn Google har sammanstÀllt sina första resultat av att implementera stöd för utveckling i programsprÄket Rust pÄ Android-plattformen. I Android 13 Àr cirka 21 % av den nya kompilera koden skriven i Rust, medan 79 % Àr skriven i C/C++. I AOSP (Android Open Source Project) finns det ungefÀr 1,5 miljoner rader kod i Rust, relaterad till nya komponenter sÄsom Keystore2 för kryptografiska nycklar, stacken för UWB-chip (Ultra-Wideband), implementeringen av protokollet DNS-over-HTTP3, AVF (Android Virtualization Framework), och experimentella stackar för Bluetooth och Wi-Fi.

I enlighet med den strategin för att minska risken för sÄrbarheter orsakade av minneshanteringsfel, anvÀnds Rust hittills frÀmst för att utveckla ny kod och för att gradvis stÀrka sÀkerheten hos de mest oskyddade och kritiska programkomponenterna. Det finns ingen övergripande mÄlsÀttning att översÀtta hela plattformen till Rust, och gammal kod förblir pÄ C/C++, medan bekÀmpningen av fel i den sker genom fuzzing-testning, statisk analys och anvÀndning av tekniker som MiraclePtr (en inpackning över rÄpekare som utför ytterligare kontroller av Ätkomst till frigjorda minnesomrÄden), Scudo-minneshanteringssystemet (en sÀker ersÀttning för malloc/free) och mekanismer för att upptÀcka minnesfel sÄsom HWA-san (Hardware-assisted AddressSanitizer), GWP-ASAN och KFENCE.
NÀr det gÀller statistiken om sÄrbarheter pÄ Android-plattformen har det observerats att i takt med att den nya koden som arbetar osÀkert med minne minskar, sÄ minskar antalet sÄrbarheter orsakade av minnesfel. Till exempel har andelen sÄrbarheter kopplade till minnesproblem minskat frÄn 76 % Är 2019 till 35 % Är 2022. I absoluta tal upptÀcktes det 223 sÄrbarheter kopplade till minne Är 2019, 150 Är 2020, 100 Är 2021 och 85 Är 2022 (alla noterade sÄrbarheter i koden i C/C++, i koden i Rust har liknande problem Ànnu inte hittats). à r 2022 blev det första Äret dÄ minnesrelaterade sÄrbarheter slutade dominera.

Eftersom sÄrbarheter relaterade till minneshantering vanligtvis Àr de mest farliga, har den övergripande statistiken ocksÄ noterat en minskning av antalet kritiska problem och problem som kan exploateras pÄ distans. Under de senaste fyra Ären har dock dynamiken för upptÀckten av sÄrbarheter som inte Àr relaterade till minneshantering hÄllits pÄ en ungefÀrlig nivÄ av 20 sÄrbarheter per mÄnad. Andelen farliga problem bland sÄrbarheter orsakade av fel i minneshantering förblir ocksÄ konstant (men eftersom antalet sÄdana sÄrbarheter minskar, minskar Àven antalet farliga problem).

Statistiken visar ocksÄ pÄ en korrelation mellan mÀngden ny kod som hanterar minne osÀkert och antalet sÄrbarheter relaterade till minne (buffertöverskridande, Ätkomst till redan frigjord minne osv.). Denna observation bekrÀftar antagandet att fokus vid införandet av tekniker för sÀkert programmerande bör ligga pÄ ny kod snarare Àn pÄ omskrivning av befintlig kod, eftersom den största delen av de upptÀckta sÄrbarheterna kommer frÄn ny kod.

KĂ€lla: opennet.ru
