Umbes 21% Android 13 uuest koostatud koodist on kirjutatud roostes

Google'i insenerid võtsid kokku esimesed tulemused Rust-keeles arendustoe kasutuselevõtul Androidi platvormil. Android 13-s on umbes 21% uuest lisatud kompileeritud koodist kirjutatud Rust ja 79% C/C++ keeles. Androidi platvormi lähtekoodi arendav AOSP (Android Open Source Project) hoidla sisaldab umbes 1.5 miljonit rida Rust-koodi, mis on seotud selliste uute komponentidega nagu Keystore2 krüptovõtmehoidla, UWB-kiipide virn (ultra-lairiba) , DNS-over-HTTP3 protokolli rakendamine, AVF (Android Virtualization Framework) virtualiseerimisraamistik, Bluetoothi ​​ja Wi-Fi eksperimentaalsed virnad.

Umbes 21% Android 13 uuest koostatud koodist on kirjutatud roostes

Vastavalt varem vastu võetud strateegiale, mille eesmärk on vähendada mäluga töötamise vigadest põhjustatud haavatavuste riski, kasutatakse Rust keelt praegu peamiselt uue koodi väljatöötamisel ning kõige haavatavamate ja elutähtsamate tarkvarakomponentide turvalisuse järkjärguliseks tugevdamiseks. Kogu platvormi Rustile ülekandmise üldist eesmärki ei ole ja vana kood jääb C/C++-sse ning võitlus selles leiduvate vigade vastu käib hägustestimise, staatilise analüüsi ja sarnaste tehnikate väljatöötamisel kasutamisega. kasutades MiraclePtr tüüpi (sidumine töötlemata osutite kaudu, täiendavate kontrollide läbiviimine vabastatud mälualadele juurdepääsuks), Scudo mälujaotussüsteemi (malloc/free ohutu asendus) ja veatuvastusmehhanisme, kui töötate mäluga HWAsan (riistvaraga abistatud aadressi puhastaja), GWP-ASAN ja KFENCE.

Mis puudutab statistikat Androidi platvormi haavatavuste olemuse kohta, siis märgitakse, et uue, mäluga ebaturvaliselt töötava koodi vähenemisega väheneb ka mäluga töötamisel tekkinud vigadest tingitud haavatavuste hulk. Näiteks mäluprobleemidest põhjustatud haavatavuste osakaal vähenes 76%-lt 2019. aastal 35%-ni 2022. aastal. Absoluutarvudes tuvastati 2019. aastal 223 mäluga seotud turvaauku, 2020. aastal 150, 2021. aastal 100 ja 2022. aastal 85 (kõik märgitud haavatavused olid C/C++ koodis; Rust koodis sarnaseid probleeme seni pole olnud leitud). 2022. aasta oli esimene aasta, mil mäluga seotud haavatavused lakkasid domineerimast.

Umbes 21% Android 13 uuest koostatud koodist on kirjutatud roostes

Kuna mäluga seotud haavatavused on tavaliselt kõige ohtlikumad, näitab üldine statistika ka kriitiliste ja eemalt ärakasutavate probleemide arvu vähenemist. Samas on mäluga töötamisega mitteseotud turvaaukude tuvastamise dünaamika püsinud viimased 4 aastat ligikaudu samal tasemel - 20 haavatavust kuus. Mäluga töötamisel tekkinud vigadest põhjustatud turvaaukude seas säilib ka ohtlike probleemide osa (kuid kuna selliste haavatavuste arv väheneb, väheneb ka ohtlike probleemide arv).

Umbes 21% Android 13 uuest koostatud koodist on kirjutatud roostes

Statistika jälgib ka korrelatsiooni uue, mäluga ebaturvaliselt töötava koodi ja mäluga seotud haavatavuste (puhvri ületäitumised, juurdepääs juba vabastatud mälule jne) vahel. See tähelepanek kinnitab eeldust, et turvaliste programmeerimistehnikate rakendamisel tuleks keskenduda uue koodi eemaldamisele, mitte olemasoleva koodi ümberkirjutamisele, kuna suurem osa tuvastatud haavatavustest on uues koodis.

Umbes 21% Android 13 uuest koostatud koodist on kirjutatud roostes


Allikas: opennet.ru

Lisa kommentaar