Android 21-n konpilatutako kode berriaren %13 inguru Rust-en idatzita dago

Google-ko ingeniariek Android plataforman Rust hizkuntzan garapenerako laguntza sartzearen lehen emaitzak laburbildu zituzten. Android 13-n, gehitutako kode konpilatu berriaren %21 gutxi gorabehera Rust-en idatzita dago, eta %79 C/C++-n. AOSP (Android Open Source Project) biltegiak, Android plataformaren iturburu-kodea garatzen duena, gutxi gorabehera 1.5 milioi lerro ditu Rust kodea Keystore2 gako kriptografikoen biltegiarekin lotutako osagai berriekin, UWB txipetarako pila bat (Ultra-Wideband). , DNS-over-HTTP3 protokoloaren ezarpena, AVF (Android Virtualization Framework) birtualizazio esparrua, Bluetooth eta Wi-Firako pila esperimentalak.

Android 21-n konpilatutako kode berriaren %13 inguru Rust-en idatzita dago

Memoriarekin lan egitean akatsek eragindako ahultasunen arriskua murrizteko aurretik hartutako estrategiaren arabera, gaur egun Rust lengoaia erabiltzen da batez ere kode berriaren garapenean eta pixkanaka software osagai ahulen eta ezinbestekoen segurtasuna indartzeko. Ez dago plataforma osoa Rust-era transferitzeko helburu orokorrik eta kode zaharra C/C++-n geratzen da, eta bertan dauden akatsen aurkako borroka fuzzing testen, analisi estatikoen eta antzeko tekniken garapenean erabiltzen da. MiraclePtr mota erabiliz (erakusle gordinen gainean lotzea, askatutako memoria-eremuetan sartzeko egiaztapen gehigarriak egitea), Scudo memoria esleitzeko sistema (malloc/free ordezko segurua) eta akatsak detektatzeko mekanismoak memoria HWAsan (Hardwarez lagundutako AddressSanitizer) lanarekin lan egitean, GWP-ASAN eta KFENCE.

Android plataformako ahultasunen izaerari buruzko estatistikei dagokienez, nabarmentzen da memoriarekin modu seguruan lan egiten duen kode berria gutxitzen doan heinean, memoriarekin lan egitean akatsek eragindako ahultasunen kopurua murrizten dela. Esaterako, memoria-arazoek eragindako ahultasunen proportzioa 76an %2019tik 35an %2022era jaitsi zen. Zenbaki absolututan, 2019an memoriari lotutako 223 ahultasun identifikatu ziren, 2020an 150, 2021ean 100 eta 2022an 85 (aurkitutako ahultasun guztiak C/C++ kodean zeuden; Rust kodean, ez dago antzeko arazorik orain arte. aurkituta). 2022a izan zen memoriarekin lotutako ahulguneak nagusitzeari utzi zion lehen urtea.

Android 21-n konpilatutako kode berriaren %13 inguru Rust-en idatzita dago

Memoriarekin lotutako ahultasunak arriskutsuenak izan ohi direnez, estatistika orokorrek urrunetik ustiatu daitezkeen arazo eta arazo kritikoen kopurua ere gutxitu dela erakusten dute. Aldi berean, memoria lantzearekin zerikusirik ez duten ahuleziak identifikatzeko dinamika gutxi gorabehera maila berean mantendu da azken 4 urteetan: 20 ahultasun hilean. Memoriarekin lan egitean akatsek eragindako ahultasunen artean arazo arriskutsuen zatia ere mantentzen da (baina ahultasunen kopurua gutxitzen denez, arazo arriskutsuen kopurua ere gutxitzen da).

Android 21-n konpilatutako kode berriaren %13 inguru Rust-en idatzita dago

Estatistikek memoriarekin modu seguruan funtzionatzen duten kode berri kopuruaren eta memoriarekin lotutako ahultasun kopuruaren arteko korrelazioa ere jarraitzen dute (buffer gainezkatzea, dagoeneko libre dagoen memoriarako sarbidea, etab.). Behaketa honek berresten du programazio-teknika seguruak ezartzean arreta jarri behar dela lehendik dagoen kodea berridatzi beharrean kode berria kentzea, identifikatutako ahultasunen zati handiena kode berrian baitago.

Android 21-n konpilatutako kode berriaren %13 inguru Rust-en idatzita dago


Iturria: opennet.ru

Gehitu iruzkin berria