Približne 21 % nového skompilovaného kódu v systéme Android 13 je napísaných v jazyku Rust

Inžinieri z Google zhrnuli prvé výsledky zavedenia podpory vývoja v jazyku Rust do platformy Android. V systéme Android 13 je približne 21 % pridaného nového skompilovaného kódu napísaných v jazyku Rust a 79 % v jazyku C/C++. Úložisko AOSP (Android Open Source Project), ktoré vyvíja zdrojový kód platformy Android, obsahuje približne 1.5 milióna riadkov kódu Rust spojeného s takými novými komponentmi, ako je úložisko kryptografických kľúčov Keystore2, zásobník pre čipy UWB (Ultra-Wideband) , implementácia protokolu DNS-over-HTTP3, virtualizačný rámec AVF (Android Virtualization Framework), experimentálne zásobníky pre Bluetooth a Wi-Fi.

Približne 21 % nového skompilovaného kódu v systéme Android 13 je napísaných v jazyku Rust

V súlade s už skôr prijatou stratégiou znižovania rizika zraniteľností spôsobených chybami pri práci s pamäťou sa jazyk Rust v súčasnosti využíva najmä pri vývoji nového kódu a postupnom posilňovaní bezpečnosti najzraniteľnejších a životne dôležitých softvérových komponentov. Neexistuje žiadny všeobecný cieľ preniesť celú platformu do Rustu a starý kód zostáva v C/C++ a boj proti chybám v ňom sa vykonáva pomocou fuzzing testovania, statickej analýzy a použitia pri vývoji techník podobných pomocou typu MiraclePtr (naviazanie na nespracované ukazovatele, vykonávanie dodatočných kontrol pre prístup k voľným pamäťovým oblastiam), systému prideľovania pamäte Scudo (bezpečná náhrada za malloc/free) a mechanizmov detekcie chýb pri práci s pamäťou HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN a KFENCE.

Čo sa týka štatistík o povahe zraniteľností na platforme Android, je potrebné poznamenať, že s ubúdajúcim novým kódom, ktorý nepracuje bezpečne s pamäťou, klesá aj počet zraniteľností spôsobených chybami pri práci s pamäťou. Napríklad podiel zraniteľností spôsobených problémami s pamäťou klesol zo 76 % v roku 2019 na 35 % v roku 2022. V absolútnych číslach bolo v roku 2019 identifikovaných 223 zraniteľností súvisiacich s pamäťou, 2020 v roku 150, 2021 v roku 100 a 2022 v roku 85 (všetky zaznamenané zraniteľnosti boli v kóde C/C++; v kóde Rust zatiaľ nie sú žiadne podobné problémy. nájdené). Rok 2022 bol prvým rokom, v ktorom prestali dominovať zraniteľnosti súvisiace s pamäťou.

Približne 21 % nového skompilovaného kódu v systéme Android 13 je napísaných v jazyku Rust

Keďže zraniteľnosti súvisiace s pamäťou sú zvyčajne najnebezpečnejšie, celkové štatistiky tiež ukazujú pokles počtu kritických problémov a problémov, ktoré je možné zneužiť na diaľku. Dynamika identifikácie zraniteľností nesúvisiacich s prácou s pamäťou zároveň zostáva posledné 4 roky na približne rovnakej úrovni – 20 zraniteľností za mesiac. Podiel nebezpečných problémov medzi zraniteľnosťami spôsobenými chybami pri práci s pamäťou tiež zostáva (ale keďže počet takýchto zraniteľností klesá, klesá aj počet nebezpečných problémov).

Približne 21 % nového skompilovaného kódu v systéme Android 13 je napísaných v jazyku Rust

Štatistiky tiež sledujú koreláciu medzi množstvom nového kódu, ktorý nepracuje bezpečne s pamäťou, a počtom zraniteľností súvisiacich s pamäťou (pretečenie vyrovnávacej pamäte, prístup k už uvoľnenej pamäti atď.). Toto pozorovanie potvrdzuje predpoklad, že pri implementácii techník bezpečného programovania by sa malo zamerať skôr na odstraňovanie nového kódu ako na prepisovanie existujúceho kódu, keďže väčšina identifikovaných zraniteľností je v novom kóde.

Približne 21 % nového skompilovaného kódu v systéme Android 13 je napísaných v jazyku Rust


Zdroj: opennet.ru

Pridať komentár