Oko 21% novog kompajliranog koda u Androidu 13 je napisano u Rustu

Inženjeri iz Google-a sumirali su prve rezultate uvođenja podrške za razvoj na Rust jeziku u Android platformu. U Androidu 13, otprilike 21% dodanog novog kompajliranog koda je napisano u Rustu, a 79% u C/C++. AOSP (Android Open Source Project) spremište, koje razvija izvorni kod Android platforme, sadrži približno 1.5 miliona linija Rust koda povezanih sa takvim novim komponentama kao što je Keystore2 skladište kriptografskih ključeva, stog za UWB čipove (Ultra-Wideband) , implementacija DNS-over-HTTP3 protokola, AVF (Android Virtualization Framework) okvir za virtuelizaciju, eksperimentalni stekovi za Bluetooth i Wi-Fi.

Oko 21% novog kompajliranog koda u Androidu 13 je napisano u Rustu

U skladu sa ranije usvojenom strategijom smanjenja rizika od ranjivosti uzrokovanih greškama u radu sa memorijom, Rust jezik se trenutno koristi uglavnom u razvoju novog koda i za postepeno jačanje sigurnosti najranjivijih i vitalnih softverskih komponenti. Ne postoji generalni cilj prenošenja cele platforme na Rust i stari kod ostaje u C/C++, a borba protiv grešaka u njemu vodi se upotrebom fuzzing testiranja, statičke analize i upotrebom u razvoju tehnika sličnih koristeći MiraclePtr tip (vezivanje preko neobrađenih pokazivača, obavljanje dodatnih provjera za pristup oslobođenim memorijskim područjima), Scudo sistem dodjele memorije (sigurna zamjena za malloc/free) i mehanizme za otkrivanje grešaka pri radu s memorijom HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN i KFENCE.

Što se tiče statistike o prirodi ranjivosti na Android platformi, napominje se da kako se smanjuje novi kod koji nesigurno radi sa memorijom, tako se smanjuje i broj ranjivosti uzrokovanih greškama pri radu s memorijom. Na primjer, udio ranjivosti uzrokovanih problemima s memorijom smanjen je sa 76% u 2019. na 35% u 2022. godini. U apsolutnim brojevima, 2019 ranjivosti vezane za memoriju identifikovane su 223. godine, 2020 u 150., 2021 u 100. i 2022 u 85. (sve uočene ranjivosti su bile u C/C++ kodu; u Rust kodu nema sličnih problema do sada nije bilo pronađeno). 2022. je bila prva godina u kojoj su ranjivosti vezane za pamćenje prestale dominirati.

Oko 21% novog kompajliranog koda u Androidu 13 je napisano u Rustu

Budući da su ranjivosti vezane za memoriju obično najopasnije, ukupna statistika također pokazuje smanjenje broja kritičnih problema i problema koji se mogu iskoristiti na daljinu. Istovremeno, dinamika identifikacije ranjivosti koje se ne odnose na rad sa memorijom ostala je na približno istom nivou u posljednje 4 godine - 20 ranjivosti mjesečno. Ostaje i udio opasnih problema među ranjivostima uzrokovanim greškama u radu s memorijom (ali kako se broj takvih ranjivosti smanjuje, smanjuje se i broj opasnih problema).

Oko 21% novog kompajliranog koda u Androidu 13 je napisano u Rustu

Statistike također prate korelaciju između količine novog koda koji nesigurno radi s memorijom i broja ranjivosti vezanih za memoriju (prepunjavanje bafera, pristup već oslobođenoj memoriji, itd.). Ovo zapažanje potvrđuje pretpostavku da bi fokus prilikom implementacije tehnika sigurnog programiranja trebao biti na uklanjanju novog koda, a ne na ponovnom pisanju postojećeg koda, budući da je većina identifikovanih ranjivosti u novom kodu.

Oko 21% novog kompajliranog koda u Androidu 13 je napisano u Rustu


izvor: opennet.ru

Dodajte komentar