Revisión de la auditoría de seguridad de Mullvad VPN
(x41-dsec.de)- X41 revisó la app de Mullvad VPN mediante una prueba de penetración de caja blanca que incluyó acceso al código fuente, y también elaboró un modelo de amenazas ligero
- El alcance de la auditoría incluyó el código de Android 2024.8-beta1, iOS 2024.8 y Desktop 2024.6, asumiendo el funcionamiento en 5 plataformas: Linux, Windows, macOS, Android e iOS
- En las pruebas se encontraron 6 vulnerabilidades, pero la app de Mullvad VPN mostró en general un alto nivel de seguridad según el modelo de amenazas del informe
- El problema más grave fue la corrupción de memoria causada por una condición de carrera en el manejador de señales y una violación de seguridad temporal, pero su severidad se reduce porque el atacante primero tendría que provocar una señal mediante otra falla
- Algunas vulnerabilidades podían derivar en la filtración de información de identificación del usuario por parte de un atacante en una red adyacente o en ataques de canal lateral bajo ciertas condiciones, y Mullvad VPN AB incorporó rápidamente las correcciones
Alcance de la auditoría y características del objetivo
- X41 realizó una prueba de penetración de caja blanca sobre la aplicación VPN de Mullvad
- Hubo acceso al código fuente y también se incluyó la elaboración de un modelo de amenazas ligero
- El código fuente auditado corresponde a las siguientes versiones
- La app objetivo es grande y funciona en 5 plataformas, lo que elevó la dificultad de la auditoría
- Las plataformas compatibles son Linux, Windows, macOS, Android e iOS
- Mullvad VPN ha realizado auditorías periódicas, y el hecho de que se hayan encontrado nuevas vulnerabilidades en el código existente muestra que, dada la complejidad del producto, se requiere una revisión de seguridad continua
- En objetivos maduros, los hallazgos tienden a desplazarse hacia áreas fuera del control directo o del foco del equipo de desarrollo de la aplicación
- Características de comportamiento del sistema operativo
- Interacciones entre distintas capas de red y protocolos
Hallazgos y evaluación de seguridad
- En las pruebas de X41 se encontraron en total 6 vulnerabilidades
- La aplicación Mullvad VPN mostró un alto nivel de seguridad según el modelo de amenazas del informe
- Codificación y patrones de diseño seguros
- Auditorías y pruebas de penetración periódicas
- Entorno de ejecución reforzado
- La vulnerabilidad más grave es una corrupción de memoria causada por una condición de carrera en el código del manejador de señales y una violación de seguridad temporal
- Una vez que se activa el código del manejador de señales, la posibilidad de explotación no parece baja
- Sin embargo, como el atacante primero tendría que provocar una señal mediante otra falla, la severidad general disminuye
- Otras vulnerabilidades podrían permitir que un atacante en una red adyacente filtre información de identidad del usuario, o habilitar ataques de canal lateral que, bajo ciertas condiciones, revelen el sitio al que el cliente está accediendo en ese momento
- Los ataques de canal lateral fueron mitigados en su mayoría
- La excepción son los ataques a nivel de protocolo que surgen de la combinación de varias tecnologías, como NAT y variantes modernas del protocolo HTTP, lo cual queda fuera del ámbito de control de Mullvad VPN AB
- Los usuarios que necesiten mayor seguridad y privacidad pueden considerar como opción tecnologías de ofuscación dentro de la VPN protegida y servicios proxy
- Mullvad VPN AB corrigió rápidamente los hallazgos, y la auditoría verificó que las correcciones funcionaban correctamente
1 comentarios
Opiniones de Hacker News
Los títulos de los problemas encontrados incluyen falta de pila alternativa para manejadores de señales, uso de funciones no seguras para asincronía, filtración de direcciones IP virtuales del dispositivo de túnel, desanonimización mediante NAT, desanonimización mediante MTU y sideloading durante el proceso de instalación.
En general, el contenido es bastante directo, y se apoya mucho en DAITA (defensa contra análisis de tráfico con IA); todavía no lo entiendo por completo, pero parece valer la pena leer más: https://mullvad.net/en/vpn/daita
Incluso OpenSSH tuvo un problema relacionado https://blog.qualys.com/vulnerabilities-threat-research/2024..., y sin un mecanismo explícito de function coloring parece difícil crear buenas abstracciones en cualquier lenguaje.
Tal vez sea posible en un lenguaje funcional puro como Haskell.
El uso de funciones no seguras para asincronía es un problema común, pero explotarlo en la práctica es difícil; es un error que probablemente haya cometido alguna vez cualquier desarrollador que haya trabajado con manejadores de señales, por problemas de timing extremadamente difíciles de reproducir.
La filtración de direcciones ARP no es tanto un problema propio de Mullvad y solo puede explotarse en la red local; los ataques de desanonimización aplican a todas las VPN y se puede anonimizar más, pero tiene un costo.
El sideloading probablemente sea el peor problema, pero no se explota por sí solo.
Dicho eso, es una buena detección haber encontrado una vulnerabilidad de corrupción de heap en un programa Rust que de verdad se puede provocar.
Pero darle severidad alta a la siguiente vulnerabilidad parece inflación de calificaciones, porque es teórica, no parece tener prueba de concepto y ni siquiera es corrupción de memoria.
La sección separada de modelo de amenazas es algo que muchas firmas de auditoría se saltan en sus informes.
Estoy seguro de que auditores anteriores como Cure53, Assured y Atredis también definieron previamente con Mullvad un modelo de amenazas adecuado, pero si no está escrito explícitamente para el lector, los resultados pueden malinterpretarse.
Si el objetivo tiene voz en la auditoría o en el método de ataque, es difícil que los resultados no queden sesgados a su favor.
Creo que el enfoque con menos sesgo sería que el objetivo no sepa en absoluto qué va a hacer el auditor.
Si Mullvad participó en la metodología o limitó el alcance de las pruebas, los resultados de todos modos no valen nada.
Que también dejen de dar soporte a OpenVPN no me gusta, porque tengo algunos casos de uso que lo necesitan, así que planeo mudarme a otro lado.
Es una lástima, porque venían haciendo un buen trabajo desde hace tiempo.
Eliminar el port forwarding reduce mucho el abuso que tienen que gestionar y solo afecta a una cantidad minúscula de usuarios súper nerds.
He usado Mullvad para torrents durante un tiempo, y aunque los torrents con pocos seeds a veces tardan mucho en arrancar, al final se descargan.
Para contenido multimedia más de nicho, a veces hay que pensarlo con varios días de anticipación.
Sinceramente, creo que ni siquiera consideraría un proveedor sin soporte para OpenVPN, así que no veo qué sentido tiene.
Por alguna razón, en mi router funciona mucho mejor y de forma más estable como VPN site-to-site.
man wg).Funciona bien, y para mayor anonimato también se puede comprar por mes con Bitcoin.
¿Estoy entendiendo algo mal?
No intento ocultar el hecho de que a veces uso una VPN: el ISP ve el túnel, los sitios web que visito ven la IP de la VPN y en el netflow quedan hora, duración, volumen transferido, etc.
El uso de la VPN en sí no es secreto.
Creo que la mayoría de los usuarios de VPN son personas comunes como yo, que buscan privacidad frente a las empresas de publicidad online y los recolectores de datos.
No quiero ni espero privacidad frente al proveedor de VPN.
Al fin y al cabo, me conecto a su servicio VPN desde la IP de mi ISP residencial, con una cuenta a mi nombre.
No importa cómo ocultes el pago de la VPN, ellos van a saber quién eres.
Los técnicos, en especial la gente de seguridad, a menudo se van demasiado lejos con este tipo de temas y terminan siendo poco realistas, alejados de los modelos de amenaza y casos de uso del mundo real.
El texto breve de James Mickens, “This World of Ours”, trata bien este tema: https://www.usenix.org/system/files/1401_08-12_mickens.pdf
Fue la app de VPN más estable de las que probé, y permite usar hasta 5 dispositivos por cuenta.
Si, como afirman, no guardan logs, entonces sin importar lo que sepan de ti, cualquiera de sus miles de clientes pudo haber usado la IP por la que pregunta la policía, así que no podrían entregarle esa información a las autoridades aunque quisieran.
¿Me estoy perdiendo algo?
Parece haber bastante humo, y también una onda de que las VPN “cool” tienen que venir de países escandinavos, aunque en realidad la mayoría no es así.
En el mejor de los casos solo tiene una relación tangencial con el artículo, y la formulación es ambigua, de modo que suena como si Mullvad estuviera haciendo algo malo.
Mullvad dice que tiene sede en Suecia; ¿estás diciendo que no es así? También publican las ubicaciones y los propietarios de sus servidores.
Además ofrecen bastante información sobre por qué deberías o no usar una VPN, no registran datos de clientes, migraron a infraestructura solo en RAM y son baratos con una tarifa plana única.
Me da curiosidad saber exactamente qué es el humo y qué te gustaría que hicieran diferente.
No entiendo por qué debería ser así ni por qué no sería cierto.
Para ser justos, la única VPN fuerte orientada a la privacidad que conozco que no es escandinava es ProtonVPN.
Hace unos años usaba Nord y descubrí una falla silenciosa en la que mostraba que estaba conectado, pero en realidad no se conectaba a la VPN; cuando lo reporté, me respondieron que era un problema conocido y que no me preocupara.
Hasta donde sé, no publicaron ningún aviso de seguridad.
Me tranquiliza más bien que no gasten cantidades enormes en publicidad en YouTube o sitios de afiliados.
También prefiero que estén en una jurisdicción que no parezca refugio de empresas sospechosas.
En resumen, me gustan porque parecen decentes y con poco humo.
No creo que pudiera confiar en PIA ni en empresas por el estilo.
Estoy bastante convencido de que los bloqueos agresivos no son por abuso, sino porque las VPN se volvieron un problema real para el rastreo y la minería de datos.
A menudo un servidor de salida funciona en uno de los dos, pero no en ambos, así que sospecho que hay cierto grado de coordinación en el bloqueo de IP entre YouTube y Reddit para hacer que usar VPN sea molesto y desalentarlo.
Interrumpir el ping-pong de redes sociales para usuarios de VPN parece una estrategia efectiva para influir en el comportamiento, y como ambos son prácticamente monopolios naturales, casi no corren riesgo de perder usuarios por hacerlo.
Es parecido a cómo los banners de cookies se abusan para cambiar la percepción de la gente sobre las regulaciones de privacidad a favor de la minería de datos.
Incluso mucha gente técnica cree que los molestos banners de cookies son culpa de la UE, pero en la práctica suelen ser cumplimiento malicioso, innecesarios o directamente ilegales.
En fin, es realmente molesto y se siente como una faceta más de la enshittification general de la web y del descontento que crece rápido.
En la práctica me tratan como persona non grata, y muchos captchas son simplemente bloqueos que parecen esperar entrenamiento gratis.