Ciberseguridad

Rust en Android: la vía más segura se ha convertido en la más rápida para desarrollar

Google afirma que la adopción de Rust en Android redujo la densidad de vulnerabilidades de seguridad de la memoria más de 1000 veces en comparación con el código C y C++, y que los cambios en Rust registran menores tasas de reversión y requieren menos tiempo de revisión del código. Su análisis repasa la expansión de Rust al núcleo, el firmware y las aplicaciones de Google, además de las lecciones aprendidas de una vulnerabilidad que estuvo a punto de llegar a una versión pública.

2025-11-13
7 min de lectura
7 visitas
فريق تحرير certi.news
Rust en Android: la vía más segura se ha convertido en la más rápida para desarrollar

Los datos actualizados de Android para 2025 muestran que las vulnerabilidades de seguridad de la memoria descendieron por primera vez por debajo del 20% del total de vulnerabilidades, al mismo tiempo que se amplió el uso de Rust en las partes nuevas y activas de la plataforma. Según un análisis publicado en el blog Google Security Blog el 12 de noviembre de 2025, el impacto de la transición de C y C++ a Rust no se limita a reducir los riesgos de seguridad, sino que también se extiende a acelerar la revisión del código y mejorar la estabilidad de los cambios.

Los datos se basan en cambios del código de Android, tanto el desarrollado directamente por Google como el código de código abierto perteneciente a terceros, e incluyen los lenguajes C, C++, Java, Kotlin y Rust. Dado que el análisis se publicó unos meses antes del final de 2025, Google explicó que la ventana estándar de corrección de 90 días hace que los resultados estén muy cerca de las cifras finales, aunque la corrección puede acelerarse cuando sea necesario.

Mayor seguridad y entregas más rápidas

Google introdujo Rust en Android como alternativa directa a C y C++ para la programación de bajo nivel, manteniendo un nivel similar de control y previsibilidad, pero reduciendo considerablemente los riesgos relacionados con la seguridad de la memoria. El análisis señala un fuerte aumento del volumen de código Rust nuevo, en paralelo con un descenso más lento y continuo del código C++ nuevo, hasta que el volumen de Rust añadido recientemente se aproximó al de C++, lo que permitió realizar comparaciones más fiables entre ambas vías de desarrollo.

Google utilizó el marco DORA para medir los aspectos de productividad y estabilidad. Para reducir las dificultades de comparación entre lenguajes, se centró en cambios de tamaño similar y en grupos de desarrolladores comparables que trabajaban en la plataforma Android, además de seguir las tendencias a lo largo del tiempo a medida que aumentaba la adopción de Rust.

Los cambios en Rust de tamaño comparable requieren aproximadamente un 20% menos de revisiones que sus equivalentes en C++. Actualmente también pasan aproximadamente un 25% menos de tiempo en revisión del código. Google atribuye, como hipótesis y no como afirmación concluyente, la mejora notable entre 2023 y 2024 al aumento de la experiencia del equipo de Android con Rust.

En cuanto a la estabilidad, los cambios de Rust medianos y grandes registran una tasa de reversión aproximadamente cuatro veces menor que los cambios de C++. Google confirma que la reducción de las reversiones no solo refleja la calidad de los cambios, sino que también aumenta la productividad, porque una reversión puede provocar retrabajo, revisiones adicionales, reconstrucciones, informes posteriores a incidentes y la interrupción de otros equipos.

La expansión de Rust más allá de los servicios del sistema y las bibliotecas

Google afirma que la compatibilidad con Rust ya está madura para crear servicios del sistema Android y sus bibliotecas, por lo que trabaja en ampliar su uso a otras capas del ecosistema:

  • Núcleo: el núcleo Linux 6.12 específico de Android es el primer núcleo de Google con compatibilidad con Rust activada y también incluye el primer controlador Rust de producción. Google continúa colaborando con Arm y Collabora en un controlador para una unidad de procesamiento gráfico que funciona en modo núcleo.
  • Firmware: Google considera que el elevado nivel de privilegios, las limitaciones de rendimiento y la disponibilidad limitada de algunas medidas de protección hacen que el firmware sea de alto riesgo y difícil de proteger. Afirma que utiliza Rust en el firmware desde hace años y que ha puesto a disposición de la comunidad materiales de formación y código, con especial atención a su colaboración con Arm en Rusted Firmware-A.
  • Aplicaciones de Google: el protocolo Nearby Presence, utilizado para descubrir dispositivos locales mediante Bluetooth de forma segura y privada, está escrito en Rust dentro de Google Play Services. Además, el protocolo MLS para mensajería segura mediante RCS se incorporará a la aplicación Google Messages en una versión futura.
  • Chromium: los analizadores de PNG y JSON y las fuentes web fueron sustituidos por implementaciones seguras para la memoria escritas en Rust, lo que facilita a los ingenieros de Chromium el tratamiento de datos procedentes de la web siguiendo la Rule of 2.

Una vulnerabilidad que estuvo a punto de llegar a los usuarios

A pesar de centrarse en las ventajas de Rust, Google presenta un caso cercano a registrar la primera vulnerabilidad de seguridad de la memoria basada en Rust en Android. Se descubrió un desbordamiento lineal del búfer en CrabbyAVIF antes de que llegara a una versión pública, y la corrección recibió el identificador CVE-2025-48530 para garantizar que se le diera alta prioridad y hacer seguimiento de su llegada a través de los canales de lanzamiento.

El análisis mostró que el asignador de memoria Scudo Hardened Allocator hizo que la explotación de la vulnerabilidad fuera determinísticamente imposible gracias a las páginas de protección que rodean las asignaciones secundarias. Scudo también transformó el desbordamiento de una corrupción silenciosa de la memoria en un fallo evidente, lo que ayudó a detectar el problema. Por otro lado, el incidente reveló una deficiencia en el sistema de notificación de fallos, ya que no aclaraba con precisión que el fallo se debía a un desbordamiento, lo que ralentizó la clasificación y la respuesta. Google afirma que esta deficiencia ya se ha corregido y que el sistema ahora proporciona una señal clara cuando se producen desbordamientos hacia las páginas de protección de Scudo.

¿Por qué sigue siendo importante Rust pese a la existencia de unsafe?

Google no considera práctico prohibir el código no seguro, ya sea en C, C++ o Rust, para desarrollar sistemas operativos, debido a la necesidad de interactuar con interfaces de programación de aplicaciones y hardware. Por ello, desarrolla un módulo avanzado sobre el código no seguro dentro de la formación Comprehensive Rust, con el objetivo de enseñar a los desarrolladores a evaluar la seguridad de este código y el comportamiento indefinido, utilizar comentarios de seguridad y encapsular las partes no seguras dentro de abstracciones seguras.

Basándose en aproximadamente cinco millones de líneas de Rust en la plataforma Android y en la existencia de un posible caso que se corrigió antes del lanzamiento, Google estima que la densidad de vulnerabilidades de seguridad de la memoria en Rust es de aproximadamente 0,2 vulnerabilidades por cada millón de líneas. Lo compara con una densidad histórica cercana a 1.000 vulnerabilidades por cada millón de líneas en C y C++, lo que, según su estimación, supone una reducción superior a 1000 veces. También señala que aproximadamente el 4% del código está escrito dentro de bloques unsafe{}, pero afirma que suponer que cada línea no segura está expuesta a los mismos riesgos que en C o C++ sobredimensiona el riesgo, debido a que la mayoría de las comprobaciones de Rust se mantienen, a la posibilidad de encapsular el código no seguro y a que este se somete a una auditoría adicional.

Google concluye que la adopción de Rust cambia la ecuación tradicional que vinculaba la mejora de la seguridad con costes adicionales de rendimiento, procedimientos o velocidad de lanzamiento de funciones. Aunque C y C++ y los mecanismos de protección de software y hardware siguen siendo importantes dentro de una defensa por capas, la empresa considera que la transición a Rust ofrece al mismo tiempo una vía más segura y eficiente, en lugar de acelerar primero y ocuparse después de las consecuencias.

Fuente de la noticia
Google Security Blog
Abrir fuente original ↗
ف
Autor

فريق تحرير certi.news

De la misma categoría

También te puede interesar

Ver todas las noticias