A Google mérnökei összefoglalták a platformba való bevezetés első eredményeit. Android támogatás a Rust nyelven történő fejlesztéshez. Android 13 Az újonnan lefordított kód körülbelül 21%-a Rustban, 79%-a pedig C/C++-ban íródott. Az AOSP repositoryban (Android Nyílt Forráskódú Projekt), amely a platform forráskódját fejleszti AndroidA Rustban körülbelül 1.5 millió sornyi kód található, amelyek olyan új komponensekhez kapcsolódnak, mint a Keystore2 kriptográfiai kulcstároló, az UWB chipekhez (ultraszéles sávú) készült verem, a DNS-over-HTTP3 protokoll implementációja, az AVF virtualizációs keretrendszer (Android Virtualizációs keretrendszer), kísérleti Bluetooth és Wi-Fi rendszerek.

A memóriahibák okozta sebezhetőségek kockázatának csökkentésére korábban elfogadott stratégiával összhangban a Rust nyelvet jelenleg elsősorban új kód fejlesztésére és a legsebezhetőbb és legkritikusabb szoftverkomponensek fokozatos megerősítésére használják. Nincs átfogó cél a teljes platform Rust-ra való migrálása, a régi kód továbbra is C/C++ nyelven marad. A hibákat fuzz teszteléssel, statikus elemzéssel és olyan fejlesztési technikákkal kezelik, mint a MiraclePtr (egy nyers pointer wrapper, amely további ellenőrzéseket végez a felszabadított memóriaterületek eléréséhez), a Scudo memóriaelosztási rendszer (a malloc/free biztonságos helyettesítője), valamint a HWAsan (hardver által támogatott AddressSanitizer), a GWP-ASAN és a KFENCE memóriahiba-észlelő mechanizmusok.
A platform sebezhetőségeinek jellegére vonatkozó statisztikákkal kapcsolatban AndroidMegjegyzendő, hogy a memóriát nem biztonságosan kezelő új kód mennyiségének csökkenésével a memóriahibák okozta sebezhetőségek száma is csökken. Például a memóriaproblémák okozta sebezhetőségek aránya 76%-ról (2019) 35%-ra (2022) csökkent. Abszolút számokban 223 memóriával kapcsolatos sebezhetőséget azonosítottak 2019-ben, 150-et (2020-ban), 100-at (2021-ben), és 85-öt (2022-ben) (minden jelentett sebezhetőség C/C++ kódban volt; Rust kódban még nem találtak hasonló problémákat). 2022 az első év, amikor a memóriával kapcsolatos sebezhetőségek megszűntek dominánsak lenni.

Mivel a memóriával kapcsolatos sebezhetőségek jellemzően a legveszélyesebbek, az általános statisztikák a kritikus problémák és a távolról kihasználható problémák számának csökkenését is mutatják. Eközben a nem memóriával kapcsolatos sebezhetőségek észlelési aránya az elmúlt négy évben nagyjából állandó maradt – havi 20 sebezhetőség. A memóriahibák által okozott sebezhetőségek között a kritikus problémák aránya szintén változatlan marad (de az ilyen sebezhetőségek számának csökkenésével a kritikus problémák száma is csökken).

A statisztikák azt is mutatják, hogy összefüggés van az új, nem biztonságos memóriát kezelő kód mennyisége és a memóriával kapcsolatos sebezhetőségek (puffer túlcsordulás, memóriahozzáférés felszabadítás után stb.) száma között. Ez a megfigyelés alátámasztja azt a feltételezést, hogy a biztonságos programozási technikák bevezetésekor az elsődleges hangsúly az új kód eltávolításán kell, hogy legyen, nem pedig a meglévő kód átírásán, mivel az azonosított sebezhetőségek többsége az új kódban fordul elő.

Forrás: opennet.ru
