Prostredníctvom blogového príspevku inžinieri Google zverejnila súhrn prvých výsledkov úvodu Podpora vývoja hrdze v systéme Android.
Android 13, skompilovalo sa asi 21 % nového kódu Agregát je napísaný v jazyku Rust a 79 % v C/C++, pričom ide o repozitár AOSP (Android Open Source Project), ktorý vyvíja zdrojový kód pre platformu Android, ktorá má približne 1,5 milióna riadkov kódu Rust.
Kód poskytuje AOSP súvisí s novými komponentmi, ako sú kryptografické úložisko kľúčov Keystore2, zásobník pre čipy UWB (Ultra-Wideband), implementácia protokolu DNS cez HTTP3, virtualizačný rámec AVF (Android Virtualization Framework), experimentálne zásobníky pre Bluetooth a Wi-Fi.
V rade s vyššie prijatou stratégiou na zníženie rizika zraniteľnosti pamäte, Doteraz sa Rust používal najmä na vývoj nového kódu a na postupné posilňovanie bezpečnosti najzraniteľnejších a životne dôležitých softvérových komponentov.
Keďže počet nových kódov nezabezpečených pamäťou vstupujúcich do systému Android klesol, znížil sa aj počet zraniteľností v oblasti zabezpečenia pamäte. Od roku 2019 do roku 2022 klesol zo 76 % na 35 % celkových zraniteľností systému Android. Rok 2022 je prvým rokom, kedy chyby zabezpečenia pamäte nezodpovedajú väčšine zraniteľností systému Android.
Všeobecný cieľ prenosu celej platformy na Rust nie je stanovený a starý kód zostáva v C/C++ a boj proti chybám v ňom prebieha pomocou fuzzing testov, statickej analýzy a použitia podobných techník. použitie typu MiraclePtr (väzba nad nespracovanými ukazovateľmi, ktorá vykonáva dodatočné kontroly prístupu k uvoľnený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ľnosti na platforme Android sa zistilo, že ako znižuje množstvo nového kódu, ktorý pracuje s pamäťou nezabezpečeným spôsobom, tiež znižuje 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 223 identifikovaných 2019 zraniteľností súvisiacich s pamäťou, 150 v roku 2020, 100 v roku 2021 a 85 v roku 2022. neboli nájdené). Rok 2022 bol prvým rokom, kedy zraniteľnosti súvisiace s pamäťou prestali dominovať.
K dnešnému dňu neboli v kóde Android Rust objavené žiadne slabé miesta zabezpečenia pamäte.
Neočakávame, že toto číslo zostane navždy na nule, ale vzhľadom na objem nového kódu Rust v dvoch verziách Androidu a na bezpečnostné komponenty, kde sa používa, je to významný výsledok. Ukazuje, že Rust slúži svojmu zamýšľanému účelu, ktorým je predchádzanie najbežnejšiemu zdroju zraniteľností systému Android.
vzhľadom na to, že zraniteľnosti súvisiace s pamäťou sú často najnebezpečnejšiecelkové štatistiky tiež ukazujú pokles počtu kritických problémov a problémov, ktoré je možné zneužiť na diaľku. Zároveň dynamika detekcie zraniteľností nesúvisiacich s prácou s pamäťou je posledné 4 roky približne na rovnakej úrovni – 20 zraniteľností za mesiac.
Pomer nebezpečných problémov k zraniteľnostiam spôsobeným chybami pamäte je tiež rovnaký (ale so znižovaním počtu zraniteľností klesá aj počet nebezpečných problémov).
Štatistiky tiež sledujú koreláciu medzi množstvom nového kódu, ktorý pracuje s pamäťou nezabezpečeným spôsobom, 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 potvrdiť predpoklad že hlavná pozornosť v implementácia techník bezpečného programovania mala by sa dať novému kódu a nie prepisovať existujúci, keďže väčšina zistených zraniteľností je v novom kóde.
Fuente: https://security.googleblog.com/