Al voltant del 21% del codi compilat nou a Android 13 està escrit en Rust

Els enginyers de Google van resumir els primers resultats de la introducció del suport per al desenvolupament en llenguatge Rust a la plataforma Android. A Android 13, aproximadament el 21% del nou codi compilat afegit està escrit en Rust i el 79% en C/C++. El repositori AOSP (Android Open Source Project), que desenvolupa el codi font de la plataforma Android, conté aproximadament 1.5 milions de línies de codi Rust associades a components tan nous com el magatzem de claus criptogràfiques Keystore2, una pila per a xips UWB (Ultra-Wideband) , implementació del protocol DNS-over-HTTP3, marc de virtualització AVF (Android Virtualization Framework), piles experimentals per a Bluetooth i Wi-Fi.

Al voltant del 21% del codi compilat nou a Android 13 està escrit en Rust

D'acord amb l'estratègia adoptada anteriorment de reduir el risc de vulnerabilitats causades per errors en el treball amb la memòria, actualment el llenguatge Rust s'utilitza principalment en el desenvolupament de nou codi i per reforçar gradualment la seguretat dels components del programari més vulnerables i vitals. No hi ha cap objectiu general de transferir tota la plataforma a Rust i el codi antic es manté en C/C++, i la lluita contra els errors es porta a terme mitjançant l'ús de proves de fuzzing, anàlisi estàtica i l'ús en el desenvolupament de tècniques similars a utilitzant el tipus MiraclePtr (enllaç sobre punters en brut, realitzant comprovacions addicionals per accedir a les àrees de memòria alliberades), el sistema d'assignació de memòria Scudo (un reemplaçament segur de malloc/free) i mecanismes de detecció d'errors quan es treballa amb memòria HWAsan (Hardware Assisted AddressSanitizer), GWP-ASAN i KFENCE.

Pel que fa a les estadístiques sobre la naturalesa de les vulnerabilitats a la plataforma Android, s'observa que a mesura que disminueix el codi nou que funciona de manera insegura amb la memòria, hi ha una disminució del nombre de vulnerabilitats causades per errors en treballar amb la memòria. Per exemple, la proporció de vulnerabilitats causades per problemes de memòria va disminuir del 76% el 2019 al 35% el 2022. En nombres absoluts, es van identificar 2019 vulnerabilitats relacionades amb la memòria el 223, 2020 el 150, 2021 el 100 i 2022 el 85 (totes les vulnerabilitats assenyalades estaven en codi C/C++; al codi Rust, no hi ha problemes similars fins ara trobat). El 2022 va ser el primer any en què les vulnerabilitats relacionades amb la memòria van deixar de dominar.

Al voltant del 21% del codi compilat nou a Android 13 està escrit en Rust

Com que les vulnerabilitats relacionades amb la memòria solen ser les més perilloses, les estadístiques generals també mostren una disminució del nombre de problemes crítics i problemes que es poden explotar de forma remota. Al mateix temps, la dinàmica d'identificació de vulnerabilitats no relacionades amb el treball amb la memòria s'ha mantingut aproximadament al mateix nivell durant els últims 4 anys: 20 vulnerabilitats al mes. També es manté la proporció de problemes perillosos entre les vulnerabilitats causades per errors quan es treballa amb memòria (però com que el nombre d'aquestes vulnerabilitats disminueix, el nombre de problemes perillosos també disminueix).

Al voltant del 21% del codi compilat nou a Android 13 està escrit en Rust

Les estadístiques també fan un seguiment de la correlació entre la quantitat de codi nou que funciona de manera insegura amb la memòria i el nombre de vulnerabilitats relacionades amb la memòria (desbordaments de memòria intermèdia, accés a la memòria ja alliberada, etc.). Aquesta observació confirma la suposició que l'enfocament a l'hora d'implementar tècniques de programació segura hauria de centrar-se en l'eliminació de codi nou en lloc de reescriure el codi existent, ja que la major part de les vulnerabilitats identificades es troben en codi nou.

Al voltant del 21% del codi compilat nou a Android 13 està escrit en Rust


Font: opennet.ru

Afegeix comentari