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

Inženjeri iz Googlea 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 napisano je u Rustu, a 79% u C/C++. AOSP (Android Open Source Project) repozitorij, koji razvija izvorni kod Android platforme, sadrži približno 1.5 milijuna linija Rust koda povezanih s takvim novim komponentama kao što je Keystore2 pohrana kriptografskih ključeva, stog za UWB čipove (Ultra-Wideband) , implementacija DNS-over-HTTP3 protokola, AVF (Android Virtualization Framework) virtualizacijski okvir, eksperimentalni skupovi za Bluetooth i Wi-Fi.

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

Sukladno prethodno usvojenoj strategiji smanjenja rizika od ranjivosti uzrokovanih pogreškama u radu s memorijom, Rust jezik trenutno se koristi uglavnom u razvoju novog koda i za postupno jačanje sigurnosti najranjivijih i vitalnih softverskih komponenti. Ne postoji opći cilj prijenosa cijele platforme na Rust i stari kod ostaje u C/C++, a borba protiv grešaka u njemu se provodi korištenjem fuzzing testiranja, statičke analize i korištenjem u razvoju tehnika sličnih pomoću tipa MiraclePtr (vezivanje preko sirovih pokazivača, izvođenje dodatnih provjera za pristup oslobođenim memorijskim područjima), Scudo sustav dodjele memorije (sigurna zamjena za malloc/free) i mehanizama otkrivanja grešaka pri radu s memorijom HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN i KFENCE.

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

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

Budući da su ranjivosti povezane s memorijom obično najopasnije, ukupna statistika također pokazuje smanjenje broja kritičnih problema i problema koji se mogu iskoristiti na daljinu. Istodobno, dinamika identificiranja ranjivosti koje nisu povezane s radom s memorijom ostala je na približno istoj razini u posljednje 4 godine - 20 ranjivosti mjesečno. Ostaje i udio opasnih problema među ranjivostima uzrokovanim pogreškama pri radu s memorijom (ali kako se broj takvih ranjivosti smanjuje, smanjuje se i broj opasnih problema).

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

Statistika također prati korelaciju između količine novog koda koji nesigurno radi s memorijom i broja ranjivosti povezanih s memorijom (preljevi međuspremnika, pristup već oslobođenoj memoriji itd.). Ovo opažanje potvrđuje pretpostavku da bi fokus pri implementaciji tehnika sigurnog programiranja trebao biti na uklanjanju novog koda, a ne ponovnom pisanju postojećeg koda, budući da je većina identificiranih ranjivosti u novom kodu.

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


Izvor: opennet.ru

Dodajte komentar