Rreth 21% e kodit të ri të përpiluar në Android 13 është shkruar në Rust

Inxhinierët nga Google përmblodhën rezultatet e para të prezantimit të mbështetjes për zhvillimin në gjuhën Rust në platformën Android. Në Android 13, afërsisht 21% e kodit të ri të përpiluar të shtuar është shkruar në Rust dhe 79% në C/C++. Depoja e AOSP (Android Open Source Project), e cila zhvillon kodin burimor të platformës Android, përmban afërsisht 1.5 milion rreshta kodi Rust të lidhur me komponentë të tillë të rinj si ruajtja e çelësave kriptografikë Keystore2, një pirg për çipat UWB (Ultra-Wideband) , zbatimi i protokollit DNS-mbi-HTTP3, kuadri i virtualizimit AVF (Android Virtualization Framework), rafte eksperimentale për Bluetooth dhe Wi-Fi.

Rreth 21% e kodit të ri të përpiluar në Android 13 është shkruar në Rust

Në përputhje me strategjinë e miratuar më parë për zvogëlimin e rrezikut të dobësive të shkaktuara nga gabimet në punën me kujtesën, gjuha Rust aktualisht përdoret kryesisht në zhvillimin e kodit të ri dhe për të forcuar gradualisht sigurinë e komponentëve më të cenueshëm dhe jetik të softuerit. Nuk ka asnjë qëllim të përgjithshëm për të transferuar të gjithë platformën në Rust dhe kodi i vjetër mbetet në C/C++, dhe lufta kundër gabimeve në të kryhet përmes përdorimit të testimit fuzzing, analizës statike dhe përdorimit në zhvillimin e teknikave të ngjashme me duke përdorur tipin MiraclePtr (lidhja mbi treguesit e papërpunuar, kryerja e kontrolleve shtesë për të hyrë në zonat e liruara të memories), sistemi i shpërndarjes së memories Scudo (një zëvendësim i sigurt për malloc/falas) dhe mekanizmat e zbulimit të gabimeve kur punoni me memorien HWAsan (AddressSanitizer me ndihmën e harduerit), GWP-ASAN dhe KFENCE.

Sa i përket statistikave për natyrën e dobësive në platformën Android, vihet re se me uljen e kodit të ri që funksionon në mënyrë të pasigurt me memorien, ka një rënie të numrit të dobësive të shkaktuara nga gabimet gjatë punës me memorie. Për shembull, pjesa e dobësive të shkaktuara nga problemet e kujtesës u ul nga 76% në 2019 në 35% në 2022. Në numra absolut, 2019 dobësi të lidhura me kujtesën u identifikuan në 223, 2020 në 150, 2021 në 100 dhe 2022 në 85 (të gjitha dobësitë e vërejtura ishin në kodin C/C++; në kodin Rust, nuk ka probleme të ngjashme deri më tani. gjetur). 2022 ishte viti i parë në të cilin dobësitë e lidhura me kujtesën pushuan së dominuari.

Rreth 21% e kodit të ri të përpiluar në Android 13 është shkruar në Rust

Meqenëse dobësitë e lidhura me kujtesën janë zakonisht më të rrezikshmet, statistikat e përgjithshme tregojnë gjithashtu një ulje të numrit të çështjeve kritike dhe çështjeve që mund të shfrytëzohen nga distanca. Në të njëjtën kohë, dinamika e identifikimit të dobësive që nuk lidhen me punën me kujtesën ka mbetur afërsisht në të njëjtin nivel për 4 vitet e fundit - 20 dobësi në muaj. Pjesa e problemeve të rrezikshme midis dobësive të shkaktuara nga gabimet gjatë punës me kujtesën gjithashtu mbetet (por duke qenë se numri i dobësive të tilla zvogëlohet, numri i problemeve të rrezikshme gjithashtu zvogëlohet).

Rreth 21% e kodit të ri të përpiluar në Android 13 është shkruar në Rust

Statistikat gjurmojnë gjithashtu lidhjen midis sasisë së kodit të ri që funksionon në mënyrë të pasigurt me memorien dhe numrit të dobësive të lidhura me kujtesën (mbushjet e tamponit, aksesi në memorien tashmë të çliruar, etj.). Ky vëzhgim konfirmon supozimin se fokusi gjatë zbatimit të teknikave të programimit të sigurt duhet të jetë në heqjen e kodit të ri në vend të rishkrimit të kodit ekzistues, pasi pjesa më e madhe e dobësive të identifikuara janë në kodin e ri.

Rreth 21% e kodit të ri të përpiluar në Android 13 është shkruar në Rust


Burimi: opennet.ru

Shto një koment