Apmēram 21% no jaunā apkopotā koda operētājsistēmā Android 13 ir rakstīts Rust valodā

Google inženieri apkopoja pirmos rezultātus, ieviešot atbalstu attīstībai Rust valodā Android platformā. Operētājsistēmā Android 13 aptuveni 21% no pievienotā jaunā kompilētā koda ir rakstīts Rust valodā un 79% C/C++. AOSP (Android Open Source Project) krātuve, kurā tiek izstrādāts Android platformas pirmkods, satur aptuveni 1.5 miljonus Rust koda rindu, kas saistītas ar tādiem jauniem komponentiem kā Keystore2 kriptogrāfisko atslēgu krātuve, UWB mikroshēmu steks (Ultra-Wideband) , DNS-over-HTTP3 protokola ieviešana, AVF (Android virtualizācijas ietvara) virtualizācijas sistēma, eksperimentālie Bluetooth un Wi-Fi skursteņi.

Apmēram 21% no jaunā apkopotā koda operētājsistēmā Android 13 ir rakstīts Rust valodā

Saskaņā ar iepriekš pieņemto stratēģiju, lai samazinātu ievainojamību risku, ko rada kļūdas darbā ar atmiņu, Rust valoda šobrīd tiek izmantota galvenokārt jauna koda izstrādē un pakāpeniski ievainojamāko un svarīgāko programmatūras komponentu drošības stiprināšanai. Nav vispārēja mērķa pārsūtīt visu platformu uz Rust, un vecais kods paliek C/C++, un cīņa pret kļūdām tajā tiek veikta, izmantojot izplūdušo testēšanu, statisko analīzi un izmantojot līdzīgas metodes. izmantojot MiraclePtr tipu (saistīšana virs neapstrādātām norādēm, papildu pārbaudes, lai piekļūtu atbrīvotajiem atmiņas apgabaliem), Scudo atmiņas piešķiršanas sistēmu (drošs malloc/free aizstājējs) un kļūdu noteikšanas mehānismus, strādājot ar atmiņu HWAsan (aparatūras adrešu sanitizētājs), GWP-ASAN un KFENCE.

Runājot par statistiku par Android platformas ievainojamību būtību, tiek atzīmēts, ka, samazinoties jaunam kodam, kas nedroši strādā ar atmiņu, samazinās ievainojamību skaits, ko rada kļūdas, strādājot ar atmiņu. Piemēram, atmiņas problēmu izraisīto ievainojamību īpatsvars samazinājās no 76% 2019. gadā līdz 35% 2022. gadā. Absolūtos skaitļos 2019. gadā tika identificētas 223 ar atmiņu saistītas ievainojamības, 2020. gadā – 150, 2021. gadā – 100 un 2022. gadā – 85 (visas konstatētās ievainojamības bija C/C++ kodā; Rust kodā līdzīgu problēmu līdz šim nav bijis atrasts). 2022. gads bija pirmais gads, kad ar atmiņu saistītās ievainojamības pārstāja dominēt.

Apmēram 21% no jaunā apkopotā koda operētājsistēmā Android 13 ir rakstīts Rust valodā

Tā kā ar atmiņu saistītas ievainojamības parasti ir visbīstamākās, kopējā statistika liecina arī par kritisko problēmu un attālināti izmantojamo problēmu skaita samazināšanos. Tajā pašā laikā ar darbu ar atmiņu nesaistītu ievainojamību noteikšanas dinamika pēdējos 4 gadus saglabājusies aptuveni tādā pašā līmenī - 20 ievainojamības mēnesī. Saglabājas arī bīstamo problēmu īpatsvars ievainojamību vidū, ko izraisa kļūdas darbā ar atmiņu (bet, tā kā šādu ievainojamību skaits samazinās, samazinās arī bīstamo problēmu skaits).

Apmēram 21% no jaunā apkopotā koda operētājsistēmā Android 13 ir rakstīts Rust valodā

Statistika arī izseko korelāciju starp jaunā koda daudzumu, kas nedroši darbojas ar atmiņu, un ar atmiņu saistīto ievainojamību skaitu (bufera pārpildes, piekļuve jau atbrīvotajai atmiņai utt.). Šis novērojums apstiprina pieņēmumu, ka, ieviešot drošas programmēšanas metodes, galvenā uzmanība jāpievērš jauna koda noņemšanai, nevis esošā koda pārrakstīšanai, jo lielākā daļa identificēto ievainojamību ir jaunā kodā.

Apmēram 21% no jaunā apkopotā koda operētājsistēmā Android 13 ir rakstīts Rust valodā


Avots: opennet.ru

Pievieno komentāru