A Google összegezte a Rust nyelvű összetevők Android platformon történő használatát. A biztonságos fejlesztési módszerek új kódra való bevezetésének stratégiája sikeresnek bizonyult. 2025-re először a memóriahasználati hibákból eredő sebezhetőségek aránya kevesebb mint 20%-ot tett ki a teljes sebezhetőségek számához képest. Összehasonlítva, 2024-ben ez az arány 24%, 2019-ben pedig 76% volt. Ezzel szemben az iparági átlag továbbra is 70% körül mozog.

A Rust nyelvű kód használata az Android rendszerszintig tartozó összetevők fejlesztésében 2020-ban kezdődött. 2025-re az Androidban hozzáadott új Rust kód mennyisége meghaladta az egy év alatt hozzáadott C és C++ kód mennyiségét.

Az összegyűjtött statisztikák megerősítik azt a korábban megfogalmazott feltételezést, hogy a biztonsági problémák legfőbb forrása az új kód, míg a régi kód esetében exponenciális biztonsági függőség figyelhető meg az idő elteltével — a régi kód hibái egyre ritkábban kerülnek elő. Végül a Google úgy döntött, hogy nem próbálja meg újraírni a régi kódot biztonságos memóriahasználatú nyelveken, hanem a hasonló nyelvek új kódra való alkalmazására összpontosít.
A biztonság mellett a Rust bevezetése pozitívan hatott a fejlesztési sebességre, termelékenységre és minőségre is. A Rust kód esetében 4-szer kevesebb visszavonás történt váratlan hibák felfedezése miatt, valamint a 25%-kal csökkent a felülvizsgálati idő.


Androidban az azonos méretű módosítások esetén a Rust kód körülbelül 20%-kal kevesebb felülvizsgálatot igényel, mint a C++ megfelelői.

Ezek az eredmények a tesztelés egyszerűsítésével és a hibák korai fázisokban való felfedezésével magyarázhatók, ahol a hibák észlelhetők még azelőtt, hogy a fejlesztő megkezdené a kód ellenőrzését. Ezenkívül a Rust kód esetében a sandbox-izolációs költségek eltávolításával jelentős teljesítménynövelést sikerült elérni.
A közelmúlt projektek közül, amelyek a Rust Androidban való használatával foglalkoznak, kiemelhető a Linux 6.12 kernelében először széles körben alkalmazott Rust drivere, valamint a Rust használata firmware-ek és alkalmazások fejlesztésében. A már alkalmazott Rust driver mellett az ARM és Collabora cégekkel közösen új GPU drivert fejlesztenek ezen a nyelven. A Google Play Services-ben a Rust nyelven megvalósított Nearby Presence protokollt használják helyi eszközök Bluetooth általi felfedezésére. A Google Messages következő kiadásában új implementációt terveznek bevezetni az MLS protokollból, amely Rust nyelven készült. A Chromium böngészőmotorban Rust nyelven írt parserek találhatóak web-fontokhoz, PNG képekhez és JSON formátumhoz.
Jelenleg a Rust nyelven írt Android kódban körülbelül 5 millió kódsor található, amelyek között csupán egy potenciális sebezhetőséget azonosítottak, amely memóriahasználati problémákból fakadt. Az így a Rust kódjában található sebezhetőségek sűrűsége 0,2 sebezhetőség egymillió kódsorban. Összehasonlításképpen a C és C++ nyelveken ez a szám körülbelül 1000 sebezhetőség egymillió kódsorban. A Rust kódban a problémák kulcsforrása az unsafe blokkokban található kód. Az ilyen kód arányát 4%-ra becsülik a Rust nyelven írt összes kódhoz képest.
A fent említett CVE-2025-48530 sebezhetőséget a Crabby Avif könyvtárban találták, amely egy Avif formátumú parser és dekóder. A problémát a Google munkatársai fedezték fel a kiadás publikálása előtt, és nem érintette a felhasználókat. A sebezhetőséget egy unsafe blokkban lévő hiba okozta, amely puffer túlcsorduláshoz vezetett. Megjegyzik, hogy még ha a hibát nem is észlelték volna, a kihasználását blokkolta volna az Androidban használt Scudo memóriaelosztási rendszer, amely alapértelmezés szerint szerepel a Google Pixel és néhány más eszköz firmware-ében.
Forrás: opennet.ru
