Google fortalece la seguridad del módem de los Pixel 10 con un parser DNS escrito en Rust

CyberSecureFox

Google ha incorporado un parser DNS desarrollado en Rust dentro del firmware del módem de la serie Pixel 10. Este movimiento se alinea con la estrategia a largo plazo de la compañía de alejarse de C y C++, lenguajes propensos a errores de memoria, y avanzar hacia lenguajes seguros para la memoria (memory-safe) en componentes de bajo nivel, donde una vulnerabilidad suele tener impacto crítico en la seguridad del dispositivo.

Por qué el módem (baseband) es un objetivo prioritario para los atacantes

El módem celular o baseband es el subsistema encargado de gestionar toda la comunicación con la red móvil. Opera fuera del sistema operativo principal, maneja una pila de protocolos extremadamente compleja y procesa tráfico continuo procedente de redes no confiables. Su enorme base de código y su posición privilegiada lo convierten en un objetivo especialmente valioso para atacantes avanzados.

Mientras la seguridad de Android y de las aplicaciones ha mejorado con mecanismos como sandboxing, mitigaciones de explotación y actualizaciones frecuentes, muchos atacantes han desplazado el foco hacia el baseband. Una explotación exitosa en el módem puede permitir la ejecución de código a muy bajo nivel, evadir defensas del sistema operativo y acceder a voz, SMS y metadatos de conexión, todo ello con escasa visibilidad para el usuario.

DNS en el módem Pixel 10: Rust llega al corazón del baseband

Google ha elegido el parser DNS del módem como primer candidato para su reescritura en Rust. La elección es estratégica: el protocolo DNS interviene de forma constante en el establecimiento de sesiones, servicios del operador, redirección de llamadas y múltiples funciones de señalización. Cada paquete DNS procesado por el módem es una potencial superficie de ataque si el código subyacente no maneja correctamente la memoria.

DNS es un protocolo complejo, con estructuras anidadas y compresión de nombres. En implementaciones históricas en C/C++ este tipo de parsers han sido origen de lecturas y escrituras fuera de límites, desbordamientos de búfer y errores use-after-free. Casos como la vulnerabilidad CVE-2024-27227, asociada a un tratamiento incorrecto de datos DNS, ilustran el impacto que puede tener un fallo de este tipo en un componente de red.

Rust y la reducción de vulnerabilidades de memoria en Android y el módem

Rust introduce un modelo estricto de propiedad y préstamos de memoria, comprobaciones de límites en tiempo de compilación y en tiempo de ejecución, y prohíbe por defecto construcciones inseguras. Esto permite eliminar clases enteras de vulnerabilidades de memoria que son habituales en C/C++. Según datos publicados por Google en su blog de seguridad de Android, el porcentaje de fallos relacionados con gestión de memoria en Android se ha reducido a menos del 20 % del total anual de vulnerabilidades a finales de 2025, coincidiendo con la adopción progresiva de Rust en componentes del sistema.

Aplicar este enfoque al parser DNS del módem Pixel 10 reduce de forma significativa la superficie de ataque en un punto históricamente frágil y sienta las bases para migrar más módulos del baseband a código memory-safe en futuras generaciones de dispositivos.

Implementación técnica: hickory-proto adaptado al firmware del módem

Para el nuevo parser DNS, los ingenieros de Google se han apoyado en el crate de Rust hickory-proto, ampliamente utilizado para clientes, servidores y resolvers DNS. Sin embargo, el entorno de un módem se asemeja a un sistema bare metal / embebido: sin sistema operativo convencional, sin biblioteca estándar completa y con límites muy estrictos de tamaño, consumo de memoria y previsibilidad temporal.

Esto ha obligado a una adaptación profunda de hickory-proto, minimizando dependencias de la biblioteca estándar, optimizando el uso de memoria y ajustando el código a las restricciones del firmware del módem. Además, cada crate arrastra a su vez una cadena de dependencias (en este caso más de 30), lo que exige auditar y ajustar sistemáticamente todas las librerías involucradas para garantizar su viabilidad en un entorno tan restringido.

cargo-gnaw: control de dependencias Rust en el baseband

Para gestionar esta complejidad, Google ha desarrollado cargo-gnaw, una herramienta específica que permite seleccionar de forma granular qué partes de las bibliotecas Rust se incluyen en el firmware del módem. Con cargo-gnaw es posible excluir funcionalidad innecesaria, controlar el tamaño final de los binarios y mantener un inventario claro de dependencias, haciendo que el uso de Rust en el firmware del baseband sea práctico y escalable, y no solo un experimento puntual.

De Android al módem: la estrategia de lenguajes seguros para la memoria

La introducción del parser DNS en Rust dentro del módem Pixel encaja en una estrategia más amplia de Google para reforzar la ciberseguridad móvil. La compañía ya había desplegado previamente sanitizadores de Clang (IntSan, BoundSan) para detectar comportamientos indefinidos en el código del módem, así como protecciones adicionales frente a ataques en redes 2G y exploits basados en desbordamientos de búfer en el baseband.

En paralelo, Rust se ha ido integrando de forma sistemática en Android y en otros componentes de bajo nivel. Ahora, este enfoque se extiende a una zona tradicionalmente opaca incluso para muchos profesionales de seguridad: el firmware del módem. A medida que se reescriban en Rust más piezas críticas del baseband, cabe esperar una reducción del número de vulnerabilidades críticas y un aumento del coste y complejidad de los ataques sobre redes celulares.

Para fabricantes y desarrolladores, este movimiento es una señal clara: resulta imprescindible planificar una transición gradual desde C/C++ hacia lenguajes seguros para la memoria allí donde sea técnicamente viable, especialmente en parsers, pilas de protocolos y demás código expuesto a datos no confiables. Para los usuarios y organizaciones que gestionan flotas de dispositivos, conviene prestar atención a las políticas de actualización del firmware del módem y a la adopción de tecnologías como Rust. Elegir dispositivos con una estrategia sólida de actualizaciones de baseband y uso de lenguajes memory-safe deja de ser una ventaja opcional y pasa a ser un requisito básico para mantener un nivel de ciberseguridad móvil acorde con el panorama actual de amenazas.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.