6 puntos por GN⁺ 2026-01-29 | 1 comentarios | Compartir por WhatsApp
  • WhatsApp, con más de 3 mil millones de usuarios, introdujo una capa de seguridad basada en Rust para reforzar su defensa frente a amenazas de malware
  • Reescribió en Rust la biblioteca de consistencia de medios y la desplegó en miles de millones de dispositivos y navegadores, completando su validación en uso real a escala global
  • Sustituyó 160 mil líneas de código existentes en C++ por 90 mil líneas en Rust, mejorando tanto el rendimiento como la eficiencia de memoria
  • Desde la vulnerabilidad Stagefright de 2015, había impulsado la adopción de lenguajes con seguridad de memoria como Rust para aumentar la seguridad en el procesamiento de archivos multimedia
  • Este cambio marca un punto de inflexión en la estrategia de seguridad de WhatsApp, Messenger e Instagram, ampliando el peso de los lenguajes con seguridad de memoria

Estrategia de procesamiento de medios de WhatsApp

  • WhatsApp es un servicio de mensajería con cifrado de extremo a extremo usado por más de 3 mil millones de personas, y ha ido evolucionando su estrategia para responder a amenazas de seguridad constantes
    • Cuando los usuarios comparten imágenes, videos y otros medios, existe la posibilidad de que incluyan malware
    • Algunos archivos pueden explotar vulnerabilidades sin parchear del sistema operativo o de la app
  • Para prevenirlo, incorporó el lenguaje Rust en la función de compartir medios para garantizar la seguridad de memoria
    • Se menciona como uno de los mayores despliegues de una biblioteca basada en Rust a nivel mundial

La vulnerabilidad Android Stagefright de 2015 y la respuesta

  • La vulnerabilidad Stagefright de Android en 2015 existía en una biblioteca de procesamiento multimedia a nivel del sistema operativo, por lo que no podía corregirse desde la app
  • WhatsApp mejoró su propia biblioteca en C++ “wamedia” para detectar archivos que no cumplen con el estándar MP4
    • Con esto, pudo proteger a los usuarios sin depender de una actualización del sistema operativo
  • Sin embargo, dado que wamedia procesa automáticamente entradas no confiables, surgió la necesidad de migrar a un lenguaje con seguridad de memoria

Transición a Rust: reescritura a gran escala y resultados

  • WhatsApp desarrolló una versión en Rust de wamedia en paralelo con la versión existente en C++
    • Verificó la compatibilidad entre ambas implementaciones mediante differential fuzzing, pruebas de integración y pruebas unitarias
  • Al principio hubo problemas por el aumento del tamaño del binario causado por la biblioteca estándar de Rust y por la compatibilidad con el sistema de compilación, pero se estableció una estructura de soporte a largo plazo
  • Como resultado, se reemplazaron 160 mil líneas en C++ → 90 mil líneas en Rust, mejorando tanto el rendimiento como la eficiencia en el uso de memoria
  • Se completó el despliegue total de la versión en Rust en Android, iOS, Mac, Web, wearables y todas las demás plataformas
  • Después se introdujo el sistema “Kaleidoscope” para detectar tipos de archivos riesgosos como PDF o ejecutables, e identificar falsificación de extensiones o spoofing de MIME

Enfoque de seguridad de WhatsApp

  • WhatsApp opera múltiples capas de seguridad, como cifrado de extremo a extremo, copias de seguridad cifradas, transparencia de claves y funciones de protección de llamadas
  • Identifica riesgos mediante publicación de CVE, auditorías de seguridad internas y externas, fuzzing y análisis estático, gestión de la cadena de suministro y análisis de superficie de ataque
  • Amplió su programa de Bug Bounty para ofrecer un Research Proxy que permite a investigadores analizar el protocolo de red de WhatsApp
  • Confirmó que muchas de las vulnerabilidades importantes provienen de problemas de seguridad de memoria en C/C++, y ejecuta tres estrategias en paralelo
    1. Minimizar la superficie de ataque innecesaria
    2. Reforzar las garantías de seguridad del código C/C++ restante
    3. Cambiar el lenguaje base del código nuevo a un lenguaje con seguridad de memoria

Aceleración de la adopción de Rust y dirección futura

  • Rust hace posible desarrollar bibliotecas de seguridad de alto rendimiento y multiplataforma para WhatsApp
  • Este cambio aporta una capa adicional de seguridad invisible para el usuario como parte de una estrategia de defensa en profundidad
  • Los equipos de seguridad de WhatsApp y Meta están ampliando las áreas donde Rust tiene mayor impacto y planean acelerar su adopción en el futuro

1 comentarios

 
GN⁺ 2026-01-29
Comentarios de Hacker News
  • WhatsApp es un mensajero que usan 3 mil millones de personas al día
    En Estados Unidos casi no se usa, pero a nivel global ya se convirtió en una infraestructura básica de comunicación
    Si quieres crear un producto para el mercado global, tienes que entender la mentalidad y los hábitos de estos usuarios

    • Como europeo, yo todavía me niego a instalar WhatsApp
      Todavía quedamos al menos unas decenas de personas independientes así
      Por favor, no participen en hacer que WhatsApp sea todavía más imposible de evitar
    • En Malawi, donde vivo, WhatsApp se usa muchísimo más que el correo electrónico
      La mayoría de la gente casi no revisa su email
      Dirijo una comunidad de desarrolladores y seguido chocamos con el límite de integrantes del grupo (1024)
      Aunque intentamos movernos a Discord o Slack, al final siempre terminamos volviendo a WhatsApp
      Porque gracias a los paquetes de datos de las operadoras, WhatsApp es prácticamente gratis
    • En los mercados donde WhatsApp ya está bien establecido, la calidad ya está bajando por el aumento de publicidad y spam
      TechCrunch publicó varias notas sobre el spam de mensajes empresariales en WhatsApp, como esta, pero en la práctica casi nada ha cambiado
      La UX de las funciones de comunidad tampoco es muy buena
      Al final, creo que el problema es la creciente dependencia del ecosistema de Facebook
    • Sinceramente, esa cifra de 3 mil millones suena inflada
      Yo llevo 10 años sin usar WhatsApp, y la mayoría de mis amigos y familiares se pasaron a Signal
      En Europa todavía hay regiones donde se sigue usando Viber
    • Entre los usuarios de Norteamérica o Europa, calculo que los que realmente generan ingresos serán unos 200 millones
  • Decían que era uno de los mayores despliegues de una biblioteca escrita en Rust, pero en realidad Fontations podría ser más grande
    Está incluido en Chromium y, si se cuentan sus dependencias, su base instalada podría ser aún mayor
    Por la cita, parece que WhatsApp no usa directamente libsignal

    • Como referencia, Wamedia viene incluido en las principales apps de Meta y se despliega en iOS, Android, Desktop y Web
    • Chromium ya incluye varias bibliotecas en Rust
      Por ejemplo: image-png, CrabbyAvif, qr_code, icu4x
  • Está bien que el código haya bajado de 160 mil líneas a 90 mil, pero lo más interesante es la estrategia de despliegue en paralelo
    Ejecutar al mismo tiempo las versiones en Rust y C++ y verificar su equivalencia con differential fuzzing me parece algo muy realista
    En clientes móviles, el tamaño del binario es importante, así que impresiona que hayan invertido en tooling de compilación

    • Me pregunto si usaron no_std o si reestructuraron la biblioteca estándar
      También podría tratarse de optimizaciones que solo están disponibles en builds nightly
  • En este tipo de reescrituras, la parte más difícil no es la implementación en Rust, sino mantener compatibilidad con los bugs del parser existente
    En la práctica, muchos archivos multimedia están mal formados, y si los parseas con demasiada rigidez terminas rompiendo datos de usuario
    El differential fuzzing es prácticamente el único enfoque realmente útil

    • Por cómo está diseñado, parece que Wamedia deliberadamente no buscó mantener compatibilidad con bugs
    • Esto hasta me da la impresión de ser un comentario escrito por IA
  • Cuando dicen que WhatsApp hizo el mayor despliegue de Rust, probablemente se refieren a que corre en más dispositivos que Windows 11
    Aun así, queda la duda de si WhatsApp usa libsignal directamente

    • WhatsApp no usa libsignal
      Android en sí ya incluye bastante código basado en Rust, y también se usa ampliamente en dispositivos embebidos
    • Si ves Microsoft is Getting Rusty, parece que la adopción de Rust se está dando sobre todo del lado de Azure
      Windows sigue estando centrado en C/C++
  • Se menciona que introducir la biblioteca estándar de Rust aumentó el tamaño del binario, pero no se explica cómo lo resolvieron

    • Probablemente usaron no_std donde era posible
      Commits relacionados: commit1, commit2
    • Es muy posible que simplemente hayan aceptado un sobrecosto de unos 300 KB
      El problema no es tanto el tamaño en sí, sino las dependencias duplicadas de Rust
      En builds mixtos de C++ y Rust, cada lado incluye su propia libstd, así que hace falta un sistema de compilación unificado como Bazel
    • En la práctica sí invirtieron bastante en optimizar el sistema de compilación
      Al principio aceptaron un sobrecosto de unos 200 KiB, pero con la migración a Buck2 redujeron tanto el tamaño como los tiempos de compilación
      Fue gracias a las mejoras recientes en las optimizaciones de clang y en LTO
    • Como referencia, también existen enfoques como min-sized-rust
    • En general, el texto se sintió más como una pieza de PR que como un artículo con verdadero detalle técnico
  • Me pregunto si Signal está intentando algo parecido
    libsignal está implementado en Rust, pero del resto no sé mucho

  • Había una frase que decía que ofrecen cifrado de extremo a extremo por defecto a 3 mil millones de personas, pero también ha habido noticias de que sí pueden leer los mensajes

    • Parece que la palabra clave es “por defecto”
      Skype también venía cifrado por defecto, pero según la configuración del servidor eso podía desactivarse
    • Al final, todo cifrado depende de quién cuenta realmente como el extremo
      La cuestión es si se puede confiar en que Meta no esté husmeando los datos
  • Es irónico que Meta no detenga el phishing o las estafas con tarjetas prepagadas, pero sí se esfuerce tanto en otras cosas

  • Me impresionó que la adopción de Rust haya reducido tantos bugs

    • La seguridad de Rust no se debe solo a que evita errores de memoria
      En C++ hay una enorme cantidad de comportamiento indefinido (UB), mientras que Rust lo bloquea de forma estructural
      Gracias a su fuerte sistema de tipos, la confiabilidad mejora muchísimo