Android filtra tráfico incluso cuando ‘VPN siempre activa’ está habilitada
Mullvad VPN descubrió que Android filtra tráfico cada vez que el dispositivo se conecta a una red WiFi. Esto ocurre incluso si las funciones “Bloquear conexiones sin VPN” o “VPN siempre activa” están habilitadas.
Los datos que se filtran fuera de los túneles VPN incluyen direcciones IP de origen, búsquedas de DNS, tráfico HTTPS y probablemente también tráfico NTP.
Este comportamiento está integrado en el sistema operativo Android y es una opción de diseño. Sin embargo, los usuarios de Android probablemente no sabían esto hasta ahora debido a la descripción inexacta de las funciones de “Bloqueo de VPN” en la documentación de Android.
Mullvad descubrió el problema durante una auditoría de seguridad que aún no se ha publicado. Por lo tanto, ayer emitió una advertencia para crear conciencia sobre el asunto y ejercer presión adicional sobre Google.
VPN en Android
Las VPN (redes privadas virtuales) son conexiones de red protegidas que cifran el tráfico de Internet en redes públicas. Cuando estás conectado a una VPN, todas tus conexiones a internet utilizan la dirección IP de tu servicio VPN en lugar de tu dirección IP pública.
Esto permite a los usuarios evadir la censura y la limitación, y mantener la privacidad y el anonimato mientras navegan por la web, ya que los hosts remotos nunca verán su dirección IP real.
Android ofrece una configuración en “Red e Internet” para bloquear las conexiones de red a menos que estés usando una VPN. Esta función está diseñada para evitar filtraciones accidentales de la dirección IP real del usuario si la conexión VPN se interrumpe o se desactiva repentinamente.
Desafortunadamente, esta función se ve socavada por la necesidad de adaptarse a casos especiales, como la identificación de portales cautivos (como el WiFi del hotel) que deben verificarse antes de que el usuario pueda iniciar sesión o cuando se usan funciones de túnel dividido.
Esta es la razón por la que Android está configurado para filtrar algunos datos al conectarse a una nueva red WiFi, independientemente de si habilitó la configuración “Bloquear conexiones sin VPN”.
Mullvad informó el problema a Google y solicitó la adición de una opción para deshabilitar las comprobaciones de conectividad.
Si quieres comprobar el error, debes seguir los siguientes pasos:
- Asegúrate de que VPN siempre activa y Bloquear conexiones sin VPN estén habilitados en la configuración del sistema.
- Desconéctate de tu Wi-Fi.
- Comienza a monitorear el tráfico de red desde y hacia el dispositivo Android, por ejemplo, ejecutándo tcpdump en tu enrutador.
- Conéctate a tu Wi-Fi.
- Observa que el tráfico no se limita al tráfico de VPN, sino que también consiste en búsquedas de DNS, tráfico HTTP(S) y potencialmente también tráfico NTP.
Petición a Google
“Esta es una solicitud de función para agregar la opción de deshabilitar las comprobaciones de conectividad mientras “Bloquear conexiones sin VPN” (a partir de ahora, bloqueo) está habilitado para una aplicación VPN”.
“Esta opción debe agregarse ya que el comportamiento actual de bloqueo de VPN es filtrar el tráfico de verificación de conectividad (consultamos este problema para obtener documentación incorrecta) que no se espera y podría afectar la privacidad del usuario”.
Explicación de Mullvad en una solicitud de función en el Rastreador de problemas de Google.
Desafortunadamente, un ingeniero de Google respondió que esta es una funcionalidad pensada para Android y que no se arreglaría por las siguientes razones:
- Muchas VPN en realidad dependen de los resultados de estas comprobaciones de conectividad para funcionar,
- Las verificaciones no son las únicas ni las más riesgosas exenciones de las conexiones VPN,
- El impacto en la privacidad es mínimo, si no insignificante, porque la información filtrada ya está disponible desde la conexión L2.
Mullvad respondió a estos puntos y destacó los importantes beneficios de agregar la opción, incluso si no se abordarán todos los problemas y el caso permanece abierto.
Implicaciones potenciales
El tráfico que se filtra fuera de la conexión VPN contiene metadatos. Estos metadatos podrían usarse para derivar información confidencial de anonimización, como ubicaciones de puntos de acceso WiFi.
“El tráfico de verificación de conexión puede ser observado y analizado por la parte que controla el servidor de verificación de conectividad y cualquier entidad que observe el tráfico de red”.
“Incluso si el contenido del mensaje no revela nada más que “algún dispositivo Android conectado”, los metadatos (que incluyen la IP de origen) se pueden usar para obtener más información, especialmente si se combinan con datos como las ubicaciones de los puntos de acceso WiFi. ”
Explicación de Mullvad en una publicación en su blog.
Si bien esto no es fácil para los ciberdelincuentes poco sofisticados, las personas que usan VPN para protegerse de los atacantes persistentes aún considerarían que el riesgo es significativo.
Además, Mullvad explicó que incluso si las filtraciones no se solucionan, Google debería al menos actualizar la documentación para indicar correctamente que las ‘Comprobaciones de conectividad’ no están protegidas por la función “Bloquear conexiones sin VPN”.
Mullvad todavía está debatiendo la importancia de la filtración de datos con Google. Mullvad sugiere introducir la capacidad de deshabilitar las comprobaciones de conectividad y minimizar los puntos de responsabilidad.
En particular, GrapheneOS, un sistema operativo centrado en la seguridad y la privacidad basado en Android que puede ejecutarse en una cantidad limitada de modelos de teléfonos inteligentes, brinda esta opción con la funcionalidad prevista. Si esa opción está habilitada, no hay riesgo de filtraciones.
Conclusiones y recomendaciones
No hay nada que podamos hacer en la aplicación para reparar las filtraciones. Sin embargo, debemos informar de que existen y ser transparentes sobre las limitaciones del sistema operativo Android. Esto permite que todos puedan tomar una decisión informada.
Como nota final, Mullvad recomienda a Google que adopte la capacidad de desactivar las comprobaciones de conectividad, como en GrapheneOS, tal como lo dijimos antes.