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

Els enginyers de Google han resumit els primers resultats de la implementació a la plataforma Android suport per al desenvolupament en el llenguatge Rust. Android 13 Aproximadament el 21% del codi compilat recentment afegit està escrit en Rust i el 79% en C/C++. Al repositori AOSP (Android Projecte de codi obert), que desenvolupa el codi font de la plataforma Android, насчитывается примерно 1.5 млн строк кода на Rust, связанного с такими новыми компонентам, как хранилище криптографических ключей Keystore2, стек для UWB-чипов (Ultra-Wideband), реализация протокола DNS-over-HTTP3, фреймворк виртуализации AVF (Android Virtualization Framework), экспериментальные стеки для Bluetooth и Wi-Fi.

Al voltant del 21% del nou codi compilat en 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.

Что касается статистики по характеру уязвимостей в платформе Android, отмечается, что по мере уменьшения нового кода, небезопасно работающего с памятью, наблюдается и снижение количества уязвимостей, вызванных ошибками при работе с памятью. Например, доля вызванных проблемами с памятью уязвимостей сократилось с 76% в 2019 году до 35% в 2022 году. В абсолютных числах в 2019 году было выявлено 223 уязвимостей, связанных с работой с памятью, в 2020 — 150, в 2021 — 100, а в 2022 — 85 (все отмеченные уязвимости в коде на C/C++, в коде на Rust подобных проблем пока не было найдено). 2022 год стал первым годом, в котором связанные с памятью уязвимости перестали доминировать.

Al voltant del 21% del nou codi compilat en 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 nou codi compilat en 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 nou codi compilat en Android 13 està escrit en Rust


Font: opennet.ru
Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster