A Rust szerepel az Android platform fejlesztéséhez használt fő nyelvek között

A Google bejelentette, hogy a Rust programozási nyelv bekerült a támogatható nyelvek közé az Android platformon való fejlesztéshez. A Rust nyelv fordítója már 2019 óta az Android forráskód fájlstruktúrájában található, de a nyelv támogatása eddig kísérleti státuszban volt. Az első Rust-ra épülő komponensek közé tartozik a Binder köztes folyamat kommunikációs mechanizmusának új megvalósítása és a Bluetooth stack.

A Rust bevezetése egy olyan projekt keretében történt, amelynek célja a biztonság növelése, a biztonságos programozási technikák elősegítése és a memóriahasználati problémák gyorsabb felismerése az Androidban. Megjegyzik, hogy a felfedezett összes veszélyes sebezhetőség körülbelül 70%-át memóriahasználati hibák okozzák az Androidban. A Rust nyelv alkalmazása, amely a biztonságos memóriahasználatra összpontosít és automatikus memória kezelés biztosít, csökkentheti a memóriahasználati hibák, például az elengedett memória területére való hivatkozás és a puffer túllépés kockázatát.

A Rust-ban a memória biztonságos kezelése a fordítás során történik, mellyel összefonódik a referenciák ellenőrzése, az objektumok tulajdonlásának nyomon követése és az objektumok élettartamának figyelembevételének vizsgálata, valamint a memória hozzáférésének helyességének kiértékelése a kód futása alatt. A Rust emellett eszközöket biztosít az egész számok túltöltése ellen, kötelezővé teszi a változók értékeinek inicializálását használat előtt, jobban kezeli a standard könyvtárban előforduló hibákat, bevezeti az immutable (nem változtatható) referenciák és változók alapértelmezett koncepcióját, és erős statikus típust biztosít a logikai hibák minimalizálására.

Az Androidban a memória biztonságos kezelése már támogatott Kotlin és Java nyelvek által, de ezek nem megfelelőek rendszerkomponensek fejlesztésére a magas költségek miatt. A Rust lehetővé teszi a C és C++ nyelvekkel összehasonlítható teljesítmény elérését, ami lehetővé teszi alacsony szintű platform részek és a hardverrel való interakciós komponensek fejlesztését.

A kód biztonságának biztosítása érdekében a C és C++ programozási nyelveken az Androidban sandbox-izolációt, statikus elemzést és fuzzing-tesztelést alkalmaznak. A sandbox-izoláció lehetőségei korlátozottak és a képességeik határára érkeztek (további folyamatokra való bontás nem indokolt az erőforrásfogyasztás szempontjából). A sandbox használatának korlátozásai között említik a nagy overhead költségeket és a memóriafogyasztás növekedését, amelyet új folyamatok létrehozásának szükségessége indukál, valamint az IPC használatával összefüggő késlekedéseket.

A sandbox ugyanakkor nem szünteti meg a kódban található sebezhetőségeket, csupán csökkenti a kockázatokat és bonyolítja a támadás végrehajtását, mivel a kihasználáshoz nem egy, hanem több sebezhetőséget kell azonosítani. A kód tesztelésén alapuló módszerek korlátozottak abban, hogy a hibák azonosításához a probléma megjelenéséhez szükséges körülményeket kell létrehozni. Az összes lehetséges lehetőséget lefedni nem reális, így sok hiba észrevétlen marad.

Az Android rendszerszolgáltatásai esetében a Google a "két szabály" elvéhez tartja magát, amely szerint bármely hozzátett kódnak nem több mint két feltételnek kell megfelelnie a három közül: ellenőrizetlen bemeneti adatok kezelése, a nem biztonságos programozási nyelv (C/C++) használata, és a szigorú sandbox-izoláció hiánya (emelt jogosultságok megléte). Ebből a szabályból következik, hogy a külső adatok feldolgozására szánt kódnak vagy minimalizált jogosultságokra (izolálva) kell csökkennie, vagy biztonságos programozási nyelven kell íródnia.

A Google nem tűzte ki célul, hogy a meglévő C/C++ kódot Rust nyelvre írja át, hanem ezt a nyelvet új kódok fejlesztésére kívánja felhasználni. A Rust nyelv új kódokhoz való használata indokolt, mivel a statisztikák szerint a hibák többsége új vagy nemrégiben módosított kódban merül fel. Különösen, a memóriahasználati hibák körülbelül 50%-át az Androidban olyan kódban találják, amelyet kevesebb mint egy éve írtak.

A Rust szerepel az Android platform fejlesztéséhez használt fő nyelvek között


Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster