A Google mérnökei bemutatták az Android platformon a Rust nyelv támogatásának bevezetésével kapcsolatos első eredményeket. Az Android 13-ban a frissen hozzáadott lefordítható kód körülbelül 21%-a Rust nyelven, míg 79%-a C/C++ nyelven íródott. Az AOSP (Android Open Source Project) tárolóban, ahol az Android platform forráskódja fejlődik, körülbelül 1,5 millió sor kód található Rust nyelven, amely új komponensekhez kapcsolódik, mint például a Keystore2 kriptográfiai kulcstároló, az UWB-chip-ek (Ultra-Wideband) stackje, a DNS-over-HTTP3 protokoll megvalósítása, az AVF (Android Virtualization Framework) virtualizációs keretrendszer, valamint a Bluetooth és Wi-Fi kísérleti stackjei.

A korábban elfogadott sebezhetőségek kockázatának csökkentésére irányuló stratégia alapján a Rust nyelvet eddig főként új kódok fejlesztésére és a legkevésbé védett, életfontosságú szoftverkomponensek biztonságának fokozására használják. Az általános cél, hogy az egész platformot Rustra készítsék át, nem fogalmazódik meg, és a régi kód C/C++ nyelven Marad, míg a benne jelentkező hibák kezelését fuzzing-teszteléssel, statikus elemzéssel és hasonló technikák alkalmazásával, például a MiraclePtr (nyers mutatók felett végrehajtott ellenőrzéseket végző keretrendszer), a Scudo memóriaelosztási rendszer (biztonságos alternatívája a malloc/free-nek) és a HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN és KFENCE memóriahibák észlelési mechanizmus használatával végzik.
Az Android platform sebezhetőségeivel kapcsolatos statisztikák szerint megfigyelhető, hogy a memória kezelésével kapcsolatosan nem biztonságos új kód csökkenésével a memóriahibák miatt keletkezett sebezhetőségek száma is csökkent. Például a memóriahibák által okozott sebezhetőségek aránya 2019-ben 76%-ról 2022-re 35%-ra csökkent. Abszolút számokban 2019-ben 223 memóriahibával kapcsolatos sebezhetőséget azonosítottak, 2020-ban 150, 2021-ben 100, míg 2022-ben 85-öt (mindezek C/C++ nyelvű kódban keletkeztek, Rust nyelvű kódban hasonló problémák eddig nem fordultak elő). 2022 volt az első év, amikor a memóriahibák által okozott sebezhetőségek már nem domináltak.

Mivel a memóriával kapcsolatos sebezhetőségek általában a legveszélyesebbek, a statisztikák szerint a kritikus problémák és a távolról kihasználható problémák száma is csökkent. Ezzel együtt a memóriával nem összefüggő sebezhetőségek észlelésének dinamikája az utolsó négy évben lényegében állandó maradt, havi 20 sebezhetőséggel. A memóriával kapcsolatos hibák által okozott sebezhetőségek között a veszélyes problémák aránya is folyamatosan megmarad (azonban mivel a memóriával kapcsolatos sebezhetőségek száma csökken, a veszélyes problémák száma is csökken).

A statisztikák azt is nyomon követik, hogy van korreláció az új kód mennyisége és a memóriával kapcsolatos sebezhetőségek, mint például a puffer túlcsordulás és a már felszabadított memória elérése között. Ez a megfigyelés megerősíti azt a feltételezést, hogy a biztonságos programozási technikák bevezetésének középpontjában az új kód eltávolítása áll, nem pedig a meglévő kód újraírása, mivel a felfedezett sebezhetőségek többsége az új kódra vonatkozik.

Forrás: opennet.ru
