Omtrent 21 % av den nye kompilerte koden i Android 13 er skrevet i Rust

Ingeniører fra Google oppsummerte de første resultatene av å introdusere støtte for utvikling i Rust-språket i Android-plattformen. I Android 13 er omtrent 21 % av den nye kompilerte koden som er lagt til skrevet i Rust, og 79 % i C/C++. AOSP (Android Open Source Project)-depotet, som utvikler kildekoden til Android-plattformen, inneholder omtrent 1.5 millioner linjer med rustkode assosiert med nye komponenter som Keystore2 kryptografiske nøkkellager, en stabel for UWB-brikker (Ultra-Wideband) , implementering av DNS-over-HTTP3-protokollen, AVF (Android Virtualization Framework) virtualiseringsrammeverk, eksperimentelle stabler for Bluetooth og Wi-Fi.

Omtrent 21 % av den nye kompilerte koden i Android 13 er skrevet i Rust

I samsvar med den tidligere vedtatte strategien for å redusere risikoen for sårbarheter forårsaket av feil i arbeid med minne, brukes Rust-språket i dag hovedsakelig i utviklingen av ny kode og for gradvis å styrke sikkerheten til de mest sårbare og vitale programvarekomponentene. Det er ingen generell målsetting om å overføre hele plattformen til Rust og den gamle koden forblir i C/C++, og kampen mot feil i den utføres gjennom bruk av fuzzing-testing, statisk analyse og bruk i utvikling av teknikker som ligner på ved å bruke MiraclePtr-typen (binding over råpekere, utføre ytterligere kontroller for tilgang til frigjorte minneområder), Scudo-minnetildelingssystemet (en sikker erstatning for malloc/free) og feildeteksjonsmekanismer når du arbeider med minne HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN og KFENCE.

Når det gjelder statistikk om arten av sårbarheter i Android-plattformen, bemerkes det at ettersom ny kode som fungerer usikkert med minne reduseres, er det en nedgang i antall sårbarheter forårsaket av feil ved arbeid med minne. For eksempel sank andelen sårbarheter forårsaket av minneproblemer fra 76 % i 2019 til 35 % i 2022. I absolutte tall ble 2019 minnerelaterte sårbarheter identifisert i 223, 2020 i 150, 2021 i 100 og 2022 i 85 (alle bemerkede sårbarheter var i C/C++-kode; i Rust-kode er det ingen lignende problemer så langt var det ikke. funnet). 2022 var det første året der minnerelaterte sårbarheter sluttet å dominere.

Omtrent 21 % av den nye kompilerte koden i Android 13 er skrevet i Rust

Siden minnerelaterte sårbarheter vanligvis er de farligste, viser den samlede statistikken også en nedgang i antall kritiske problemer og problemer som kan utnyttes eksternt. Samtidig har dynamikken for å identifisere sårbarheter som ikke er relatert til arbeid med hukommelse holdt seg på omtrent samme nivå de siste 4 årene – 20 sårbarheter per måned. Andelen farlige problemer blant sårbarheter forårsaket av feil ved arbeid med minne består også (men siden antallet slike sårbarheter reduseres, reduseres også antallet farlige problemer).

Omtrent 21 % av den nye kompilerte koden i Android 13 er skrevet i Rust

Statistikken sporer også sammenhengen mellom mengden ny kode som fungerer usikkert med minnet og antall minnerelaterte sårbarheter (bufferoverflyt, tilgang til allerede frigjort minne, etc.). Denne observasjonen bekrefter antagelsen om at hovedfokuset ved implementering av sikre programmeringsteknikker bør være å fjerne ny kode, i stedet for å omskrive eksisterende kode, siden hoveddelen av identifiserte sårbarheter er i ny kode.

Omtrent 21 % av den nye kompilerte koden i Android 13 er skrevet i Rust


Kilde: opennet.ru

Legg til en kommentar