Ongeveer 21% van de nieuw gecompileerde code in Android 13 is geschreven in Rust

Ingenieurs van Google vatten de eerste resultaten samen van de introductie van ondersteuning voor ontwikkeling in de Rust-taal op het Android-platform. In Android 13 is ongeveer 21% van de nieuw toegevoegde gecompileerde code geschreven in Rust en 79% in C/C++. De AOSP-repository (Android Open Source Project), waarin de broncode van het Android-platform wordt ontwikkeld, bevat ongeveer 1.5 miljoen regels Rust-code die zijn gekoppeld aan nieuwe componenten zoals de Keystore2 cryptografische sleutelopslag, een stapel voor UWB-chips (Ultra-Wideband) , implementatie van het DNS-over-HTTP3-protocol, het AVF-virtualisatieframework (Android Virtualization Framework), experimentele stacks voor Bluetooth en Wi-Fi.

Ongeveer 21% van de nieuw gecompileerde code in Android 13 is geschreven in Rust

In overeenstemming met de eerder aangenomen strategie om het risico op kwetsbaarheden veroorzaakt door fouten in het werken met geheugen te verminderen, wordt de Rust-taal momenteel vooral gebruikt bij de ontwikkeling van nieuwe code en om geleidelijk de beveiliging van de meest kwetsbare en vitale softwarecomponenten te versterken. Er is geen algemeen doel om het hele platform naar Rust over te zetten en de oude code blijft in C/C++, en de strijd tegen fouten daarin wordt uitgevoerd door het gebruik van fuzzing-testen, statische analyse en het gebruik bij de ontwikkeling van technieken die vergelijkbaar zijn met met behulp van het MiraclePtr-type (binding over onbewerkte pointers, uitvoeren van extra controles voor toegang tot vrijgekomen geheugengebieden), het Scudo-geheugentoewijzingssysteem (een veilige vervanging voor malloc/free) en foutdetectiemechanismen bij het werken met geheugen HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN en KFENCE.

Wat de statistieken over de aard van de kwetsbaarheden op het Android-platform betreft, wordt opgemerkt dat naarmate de nieuwe code die onveilig met geheugen werkt afneemt, er ook een afname is van het aantal kwetsbaarheden veroorzaakt door fouten bij het werken met geheugen. Zo daalde het aandeel kwetsbaarheden veroorzaakt door geheugenproblemen van 76% in 2019 naar 35% in 2022. In absolute cijfers werden in 2019 223 geheugengerelateerde kwetsbaarheden geïdentificeerd, 2020 in 150, 2021 in 100 en 2022 in 85 (alle genoemde kwetsbaarheden bevonden zich in C/C++-code; in Rust-code zijn er tot nu toe geen vergelijkbare problemen geweest). gevonden). 2022 was het eerste jaar waarin geheugengerelateerde kwetsbaarheden niet langer domineerden.

Ongeveer 21% van de nieuw gecompileerde code in Android 13 is geschreven in Rust

Omdat geheugengerelateerde kwetsbaarheden meestal het gevaarlijkst zijn, laten de algemene statistieken ook een afname zien van het aantal kritieke problemen en problemen die op afstand kunnen worden uitgebuit. Tegelijkertijd is de dynamiek van het identificeren van kwetsbaarheden die geen verband houden met het werken met geheugen de afgelopen vier jaar op ongeveer hetzelfde niveau gebleven: twintig kwetsbaarheden per maand. Het aandeel gevaarlijke problemen onder de kwetsbaarheden die worden veroorzaakt door fouten bij het werken met geheugen blijft ook bestaan ​​(maar aangezien het aantal van dergelijke kwetsbaarheden afneemt, neemt ook het aantal gevaarlijke problemen af).

Ongeveer 21% van de nieuw gecompileerde code in Android 13 is geschreven in Rust

De statistieken volgen ook de correlatie tussen de hoeveelheid nieuwe code die onveilig met het geheugen werkt en het aantal geheugengerelateerde kwetsbaarheden (bufferoverflows, toegang tot reeds vrijgemaakt geheugen, enz.). Deze observatie bevestigt de veronderstelling dat de focus bij het implementeren van veilige programmeertechnieken zou moeten liggen op het verwijderen van nieuwe code in plaats van het herschrijven van bestaande code, aangezien het grootste deel van de geïdentificeerde kwetsbaarheden zich in nieuwe code bevindt.

Ongeveer 21% van de nieuw gecompileerde code in Android 13 is geschreven in Rust


Bron: opennet.ru

Voeg een reactie