Ciberseguridad

Google integra Rust en el módem del Pixel 10 para reforzar la seguridad de la base de conectividad celular

Google anunció que la serie Pixel 10 será la primera generación de dispositivos Pixel en integrar el lenguaje Rust, seguro para la memoria, en el software del módem celular, mediante la sustitución del analizador DNS por un componente escrito en Rust. La empresa afirma que la medida reduce toda una categoría de riesgos relacionados con vulnerabilidades de seguridad de la memoria, aunque el componente añade aproximadamente 371 kilobytes a la imagen del software.

2026-04-10
5 min de lectura
6 visitas
فريق تحرير certi.news
Google integra Rust en el módem del Pixel 10 para reforzar la seguridad de la base de conectividad celular

La serie Pixel 10 integra por primera vez en dispositivos Pixel un componente escrito en Rust, un lenguaje seguro para la memoria, dentro del software del módem celular, según una publicación del blog de seguridad de Google. La medida consiste en incorporar al firmware del módem un analizador del sistema de nombres de dominio (DNS) creado con Rust, con el objetivo de reducir los riesgos de vulnerabilidades relacionadas con la seguridad de la memoria en una parte que procesa datos no confiables.

Esta medida forma parte de los esfuerzos de Google para reforzar el módem de comunicaciones celulares frente a posibles explotaciones. La empresa ya había equipado el Pixel 9 con mitigaciones contra varias vulnerabilidades de seguridad de la memoria, pero considera que la complejidad del firmware del módem y la amplitud de su superficie de ataque requieren medidas preventivas adicionales. Google señaló que Project Zero logró anteriormente acceder a la ejecución remota de código en módems Pixel a través de Internet, mientras que el módem del Pixel contiene decenas de megabytes de código ejecutable.

¿Por qué eligió Google un analizador DNS?

El DNS no solo se utiliza para ayudar a los navegadores a encontrar sitios web. A medida que las comunicaciones celulares modernas han migrado a redes de datos digitales, operaciones esenciales como el desvío de llamadas también dependen de los servicios DNS. Este complejo protocolo necesita analizar datos que podrían no ser confiables, lo que lo convierte en un punto sensible cuando se implementa con un lenguaje que carece de protección de la memoria; según la publicación, este tipo de riesgo estuvo relacionado con la vulnerabilidad CVE-2024-27227.

Google evaluó varios paquetes de código abierto para implementar DNS en Rust y eligió la biblioteca hickory-proto basándose en su nivel de mantenimiento, una cobertura de pruebas superior al 75 % y su popularidad en la comunidad de Rust. Inicialmente, la biblioteca carecía de la compatibilidad con no_std necesaria para entornos con recursos limitados o que funcionan sin sistema operativo, por lo que Google añadió dicha compatibilidad a la biblioteca y a algunas de sus dependencias. El trabajo también dio como resultado la compatibilidad con no_std para el analizador de URL del proyecto rust-url.

El coste de tamaño y la integración con el software existente

El estudio de tamaño mostró que el componente intermedio escrito en Rust consume 4 kilobytes, mientras que los componentes core, alloc y compiler_builtins requieren 17 kilobytes, y la biblioteca hickory-proto y sus dependencias consumen 350 kilobytes, para un total de 371 kilobytes. Google considera que el tamaño de la memoria del módem del Pixel no impone limitaciones estrictas, por lo que en esta etapa priorizó el respaldo de la comunidad y la calidad del código frente a la optimización del tamaño. No obstante, señaló que el aumento podría representar un obstáculo para otros sistemas integrados y que podría reducirse en el futuro mediante opciones de compilación que excluyan las funciones innecesarias.

Para integrar Rust en la base de código existente, escrita en C y C++, el equipo utilizó pruebas unitarias para verificar las operaciones aritméticas básicas, la asignación dinámica de memoria y las interfaces de enlace entre lenguajes. También optó por integrar directamente los pasos de compilación de Rust en el sistema de compilación actual, en lugar de crear bibliotecas estáticas independientes mediante Cargo, porque este enfoque facilita la ampliación a medida que se añadan otros componentes de Rust y reduce la posibilidad de conflictos de símbolos.

El sistema de compilación principal se basa en Pigweed, mientras que se utilizaron interfaces FFI para conectar el sistema de asignación de memoria existente en el firmware con el componente alloc de Rust, así como para unificar el tratamiento de los fallos entre Rust y C/C++. Durante el enlazado surgió un problema de rendimiento y consumo energético debido a la sustitución de las implementaciones optimizadas del módem para las funciones memset y memcpy por implementaciones procedentes de compiler_builtins. El equipo solucionó el problema eliminando los archivos de compiler_builtins de la biblioteca estática antes de la fase de enlazado.

La interfaz DNS y el siguiente paso

Google definió una interfaz de programación en C para procesar respuestas DNS y posteriormente la implementó en Rust. Después de analizar la respuesta, el componente llama a las funciones C existentes para actualizar las estructuras de datos utilizadas por el programa original. Se empleó la herramienta bindgen para generar el código de enlace necesario para las operaciones complejas de conversión entre tipos de datos.

Según Google, la serie Pixel 10 representa un hito importante porque es la primera generación de dispositivos Pixel que integra un lenguaje seguro para la memoria dentro del módem. El objetivo no se limita a sustituir un único analizador; la empresa considera que el proyecto sienta las bases para incorporar en el futuro otros analizadores y componentes escritos en lenguajes seguros para la memoria a la base de conectividad celular.

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