Ingeniører fra Google har offentliggjort de første resultater af implementeringen af Rust-udvikling i Android-platformen. I Android 13 er cirka 21% af den nye kompilerede kode skrevet i Rust, mens 79% er skrevet i C/C++. I AOSP (Android Open Source Project)-lageret, hvor Android-platformens kildekode udvikles, findes der cirka 1,5 millioner linjer kode skrevet i Rust, som relaterer sig til nye komponenter som Keystore2, en løsninger til kryptografiske nøgleopbevaring, Ultra-Wideband chipstakke, DNS-over-HTTP3-protokollen, AVF (Android Virtualization Framework) og eksperimentelle stakke til Bluetooth og Wi-Fi.

I henhold til den tidligere vedtagne strategi for at reducere risikoen for sårbarheder forårsaget af hukommelsesfejl anvendes Rust indtil videre primært til udvikling af ny kode og til gradvist at styrke sikkerheden i de mest udsatte og kritiske softwarekomponenter. Der er ikke et mål om at overføre hele platformen til Rust, og den gamle kode forbliver i C/C++, mens kampen mod fejl i denne kode foregår gennem fuzzing-testning, statisk analyse og anvendelse af teknikker som MiraclePtr (en indpakning over råpekere, der foretager yderligere kontrol af adgang til frigivet hukommelse), Scudo-hukommelsesfordelingssystemet (en sikker erstatning for malloc/free) og mekanismer til opdagelse af hukommelsesfejl som HWA san (Hardware-assisted AddressSanitizer), GWP-ASAN og KFENCE.
Hvad angår statistikken over sårbarhedstyper i Android-platformen bemærkes det, at efterhånden som mængden af ny kode, der arbejder usikkert med hukommelse, falder, ses der også et fald i antallet af sårbarheder forårsaget af hukommelsesfejl. For eksempel faldt andelen af sårbarheder forårsaget af hukommelsesproblemer fra 76% i 2019 til 35% i 2022. I absolutte tal blev der opdaget 223 hukommelsesrelaterede sårbarheder i 2019, 150 i 2020, 100 i 2021, og 85 i 2022 (alle nævnte sårbarheder er i C/C++-koden, og der er ikke fundet lignende problemer i Rust-koden). Året 2022 blev det første år, hvor hukommelsesrelaterede sårbarheder ikke længere dominerede.

Da sårbareheder relateret til hukommelsesstyring ofte er de mest farlige, viser den generelle statistik også et fald i antallet af kritiske problemer og problemer, der kan udnyttes eksternt. Samtidig er dynamikken i opdagelsen af sårbarheder, der ikke er relateret til hukommelsesstyring, de seneste 4 år forblevet på et stabilt niveau — 20 sårbarheder om måneden. Andelen af farlige problemer blandt sårbarheder, der stammer fra fejl i hukommelsesstyring, forbliver også konstant (men da antallet af sådanne sårbarheder falder, falder antallet af farlige problemer også).

Statistikken viser også en korrelation mellem mængden af ny kode, der ikke håndterer hukommelsen sikkert, og antallet af hukommelsesrelaterede sårbarheder (buffer overflow, adgang til allerede frigivet hukommelse osv.). Denne observation bekræfter antagelsen om, at hovedfokus ved implementeringen af sikre programmeringsteknikker bør være på ny kode snarere end genopskrivning af eksisterende kode, da hovedparten af de identificerede sårbarheder findes i ny kode.

Kilde: opennet.ru
