Přibližně 21 % nového kompilovaného kódu v Androidu 13 je napsáno v jazyce Rust

Inženýři společnosti Google shrnuli první výsledky implementace podpory vývoje v jazyce Rust na platformě Android. V Androidu 13 je přibližně 21 % nového kompilovaného kódu napsáno v Rustu a 79 % v C/C++. V repozitáři AOSP (Android Open Source Project), kde se vyvíjejí zdrojové kódy platformy Android, je přibližně 1,5 milionu řádků kódu v Rustu, které se týkají takových nových komponent, jako jsou úložiště kryptografických klíčů Keystore2, zásobník pro UWB čipy (Ultra-Wideband), implementace protokolu DNS-over-HTTP3, rámec virtualizace AVF (Android Virtualization Framework) a experimentální zásobníky pro Bluetooth a Wi-Fi.

Přibližně 21 % nového kompilovaného kódu v Androidu 13 je napsáno v jazyce Rust

V souladu s dříve přijatou strategií snižování rizika vzniku zranitelností způsobených chybami při práci s pamětí se jazyk Rust prozatím používá převážně při vývoji nového kódu a pro postupné posílení bezpečnosti nejméně chráněných a životně důležitých softwarových komponent. Celkový cíl převodu celé platformy na Rust není stanoven a starý kód zůstává v C/C++, přičemž se potíže v něm řeší prostřednictvím aplikace fuzzingového testování, statické analýzy a použití technik při vývoji, jako je zavedení typu MiraclePtr (obal nad raw ukazateli, který provádí další kontroly přístupu do uvolněných oblastí paměti), systém distribuce paměti Scudo (bezpečná náhrada malloc/free) a mechanismy odhalování chyb při práci s pamětí HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN a KFENCE.

Pokud jde o statistiky týkající se povahy zranitelností na platformě Android, bylo zaznamenáno, že snižováním nového kódu, který nebezpečně pracuje s pamětí, dochází také k poklesu počtu zranitelností způsobených chybami při práci s pamětí. Například podíl zranitelností vyvolaných problémy s pamětí klesl z 76 % v roce 2019 na 35 % v roce 2022. V absolutních číslech bylo v roce 2019 odhaleno 223 zranitelností souvisejících s prací s pamětí, v roce 2020 – 150, v roce 2021 – 100 a v roce 2022 – 85 (všechny uvedené zranitelnosti byly v kódu v C/C++, v kódu v Rustu zatím nebyly podobné problémy nalezeny). Rok 2022 se stal prvním rokem, kdy zranitelnosti související s pamětí přestaly dominovat.

Přibližně 21 % nového kompilovaného kódu v Androidu 13 je napsáno v jazyce Rust

Jelikož jsou zranitelnosti spojené s pamětí obvykle nejnebezpečnější, v celkové statistice se rovněž ukazuje pokles počtu kritických problémů a problémů, které mohou být zneužity vzdáleně. Trend odhalování zranitelností, které nejsou spojené s pamětí, se však za poslední 4 roky udržuje přibližně na stejné úrovni – 20 zranitelností měsíčně. Podíl nebezpečných problémů mezi zranitelnostmi způsobenými chybami při práci s pamětí zůstává také zachován (ale s poklesem počtu těchto zranitelností klesá i počet nebezpečných problémů).

Přibližně 21 % nového kompilovaného kódu v Androidu 13 je napsáno v jazyce Rust

Ve statistikách se také sleduje korelace mezi objemem nového kódu, který nebezpečně pracuje s pamětí, a počtem zranitelností spojených s pamětí (přetečení bufferu, přístup k již uvolněné paměti atd.). Toto pozorování potvrzuje domněnku, že hlavní pozornost při zavádění technik bezpečného programování by se měla věnovat novému kódu, nikoli přepisování existujícího, protože většina odhalených zranitelností se týká nového kódu.

Přibližně 21 % nového kompilovaného kódu v Androidu 13 je napsáno v jazyce Rust


Zdroj: opennet.ru
Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster