20 votos

¿Alguna diferencia de seguridad entre los cortafuegos basados en root (AFWall+) y los no basados en root (NetGuard)?

¿Cuáles son las diferencias técnicas entre los cortafuegos basados en root (como AFWall+) y los no basados en root (como NetGuard)?

¿Existe alguna repercusión en la seguridad que proporciona efectivamente ese software?

Ya he revisado un poco en el código fuente de NetGuard para hacerme una idea, pero creo que todavía puede ser una buena pregunta y estoy interesado en obtener el análisis de otras personas sobre el tema.

Me gustaría restringir esta pregunta a la característica técnica central proporcionada por dicho software (como el tipo de cortafuegos: sin estado o con estado, ¿hay alguna excepción de código duro, la robustez del código que maneja paquetes no confiables, etc.) y no a las características secundarias o anti-funciones que puedan tener (anuncios, seguimiento, cosméticos, ...) a menos que afecten concretamente al objetivo central del software.

En otras palabras: no despotrique por favor ;) !

En caso de que haya limitaciones, tal vez valga la pena mencionar si son específicas de la aplicación (consecuencia de alguna elección hecha por el equipo de desarrollo) o consecuencia de la tecnología utilizada (al basarse en sistemas muy diferentes, es posible que uno tenga que hacer frente a limitaciones que el otro no tiene).

19voto

M66B Puntos 111

Como autor de NetGuard tengo experiencia de primera mano en este campo.

Una desventaja de un cortafuegos basado en una VPN local es que no se pueden manejar todos los tipos de tráfico, porque el kernel de Linux (Android) no permite reenviar todos los tipos de tráfico a través de una conexión basada en sockets. Un ejemplo es el IPsec, que está siendo usado para llamadas IP por algunos fabricantes. Una solución parcial (no para IPsec) a esto sería usar un servidor VPN remoto para reenviar el tráfico, pero esto es una solución de privacidad que no es aceptable para mucha gente y que vendría con una complejidad adicional y probablemente también con un uso extra de la batería. En la práctica, el manejo del tráfico TCP y UDP parece ser suficiente para el 99,9% de los usuarios de NetGuard. Desde Android 5 es posible excluir las aplicaciones de ser enrutadas a la VPN (la aplicación que implementa la VPN decide si esto es obligatorio u opcional), lo cual puede ser usado para resolver los problemas derivados de no poder reenviar todo el tráfico. Otra opción es excluir la dirección (rangos), que NetGuard utiliza para "arreglar" las llamadas IP de algunos fabricantes.

Otra desventaja es que el tráfico de reenvío aumentará el uso de la batería en los dispositivos móviles, porque implica cierto procesamiento, ya que es necesario inspeccionar los paquetes y reenviarlos. El uso de iptables, que está integrado en el núcleo de Linux, es más eficiente y por lo tanto más amigable con la batería.

En general se ha visto que Android enruta todo el tráfico hacia la VPN, incluso el tráfico de las aplicaciones y componentes del sistema, pero un fabricante podría decidir excluir ciertos tipos de tráfico, reduciendo la seguridad que se puede lograr con un cortafuegos basado en la VPN.

NetGuard no analiza los datos por sí mismo, excepto para las solicitudes de DNS para proporcionar bloqueo de anuncios, pero si lo hiciera podría plantear una preocupación de privacidad. Sin embargo, visto técnicamente esto es una ventaja de un firewall basado en VPN (si todavía quieres llamarlo así), porque permitiría una inspección completa de los flujos de datos más allá de lo que es posible con iptables. Esto probablemente sería a costa del uso de la batería, debido al procesamiento que implica. Tengan en cuenta que se requeriría un ataque MiT local para inspeccionar los flujos SSL.

Otra desventaja es que Android no permite el encadenamiento de VPN's, por lo que el uso de una VPN local para implementar un cortafuegos impedirá el uso de un servicio VPN real, a menos que el cortafuegos proporcione dicho servicio por sí mismo o, alternativamente, un mecanismo de reenvío o proxy a otra aplicación VPN.

Por último, un cortafuegos basado en VPN depende de la aplicación que proporciona el servicio de cortafuegos VPN que se está ejecutando. Esto parece ser trivial, pero no lo es, porque algunas versiones/variantes de Android de fabricantes están matando demasiado agresivamente los procesos en condiciones de baja memoria (IMHO es un error si Android mata las aplicaciones que proporcionan un servicio VPN).

Finalmente, el rooting de los dispositivos Android es cada vez más difícil, dejando un firewall basado en VPN como la única opción para muchas personas. No espero que Google añada un cortafuegos basado en el sistema a corto plazo, porque podría afectar significativamente a sus ingresos por publicidad. iOS tiene un cortafuegos basado en el sistema.

Avíseme si hay alguna pregunta y trataré de responderla.

2 votos

Gracias por su respuesta. "Permitiría la inspección completa del estado de los flujos de datos más allá de lo que es posible con iptables" En cuanto a la seguridad, iptables es modular y AFAIK nada impide que proporcione tales técnicas de Inspección Profunda de Paquetes (DPI). Incluso hay varios proyectos que lo implementan ( ndpi-netfilter , https://github.com/thomasbhatia/OpenDPI , l7-filtro ), pero supongo que la demanda real de este tipo de cosas es demasiado baja en comparación con el trabajo requerido, por lo que todas parecen abandonadas ahora.

0 votos

Sí, también se puede hacer utilizando un módulo del kernel de Linux, pero es mucho más sencillo hacerlo a nivel de aplicación. Los módulos del kernel de Linux tienen que ser compatibles con una versión del kernel, lo que no sería una opción viable en Android con tantas versiones del kernel en circulación. También requeriría permisos de Root y conocimientos sobre cómo insertar un módulo del kernel, lo que no se puede esperar del usuario medio, aunque esto tal vez pueda ser automatizado de alguna manera.

10voto

Izzy Puntos 45544

Hasta donde yo sé, es el enfoque:

Los cortafuegos basados en root use IPFilter / iptables para controlar el flujo. Esto se aplica automáticamente a todas las aplicaciones, tanto si hay una conexión de red disponible como si no, si el enrutamiento funciona completamente o no funciona en absoluto, o si se está en un "entorno cerrado" (Intranet) sin acceso al "mundo exterior" (Internet). Las aplicaciones que tienes bloqueadas están bloqueadas. En un nivel bastante bajo.

Cortafuegos sin root no tienen acceso a ese nivel tan bajo, por lo que deben utilizar soluciones alternativas. En la mayoría de los casos esto se hace usando el Android VPN instalaciones. Dependiendo de la implementación, esto funciona o bien completamente en el dispositivo (es decir, de nuevo independientemente de la conexión de red que pueda estar disponible), o bien a través de "servicios externos" (que le conectan a la VPN del proveedor de la aplicación). En este último caso, las cosas se rompen tan pronto como ese servicio deja de estar disponible - un hecho que puede que note o no. En cualquier caso, no estoy seguro de si realmente todas las aplicaciones honran la VPN o si hay formas de evitarlo. 1 Otro hecho desagradable con las VPNs del que he leído es la molesta notificación permanente que viene, diciendo "Su red podría ser monitoreada" - pero AFAIK que sólo debería aparecer si la aplicación en cuestión necesita que se instale su propio certificado. 2

Veredicto: Personalmente confiaría más en una solución basada en root. Pero donde arraigando no es una opción, las soluciones no-Root deberían ser casi tan buenas. En ese caso, mi recomendación iría hacia soluciones de código abierto como NetGuard (su desarrollador también hizo Xprivacidad y es de confianza). Hablando de eso: Para más detalles, eche un vistazo a la XDA introducción de NetGuard , lo que explica el fondo con algunos detalles más.


1 No estoy familiarizado con los detalles técnicos de la implementación de VPN de Android, pero citando a WhiteWinterWolf (ver comentario abajo), <em>depende del sistema de la base de Android para hacer cumplir esto, no hay razón para pensar que esto no se hace correctamente.</em>

2 De nuevo citando a WhiteWinterWolf: <em>el <a href="https://developer.android.com/reference/android/net/VpnService.html">VPN API </a>utilizado por NetGuard permite que todos los datos sean interceptados por una aplicación sin privilegios, esto es lo que Android efectivamente considera como "monitoreo", no tiene relación con ningún certificado y esta advertencia es una consecuencia inevitable y esperada del uso de esta API.</em>

2 votos

Gracias por su respuesta. "No estoy seguro de que realmente todas las aplicaciones respeten la VPN" : es el sistema base de Android el que se encarga de hacer cumplir esto, no hay razón para pensar que no se hace correctamente. "la molesta notificación permanente" : el API VPN utilizado por NetGuard permite que todos los datos sean interceptados por una aplicación sin privilegios, esto es lo que Android considera efectivamente como "monitoreo", no tiene relación con ningún certificado y esta advertencia es una consecuencia inevitable y esperada del uso de esta API.

0 votos

Gracias por los detalles. Los he integrado en mi respuesta (créditos dados) para que sean más fáciles de detectar. En cuanto a la "notificación de seguimiento": Dondequiera que he encontrado que se menciona, fue en el contexto de un certificado de usuario que se instala. Pero gracias por la aclaración.

1 votos

Sí, es bastante triste que Android reutilice la misma notificación para varios fines no relacionados. En el contexto actual, esta notificación debe vincularse a la siguiente declaración de la anteriormente vinculada Documentación de la API de VPN : "Se muestra una notificación gestionada por el sistema durante la vida de una conexión VPN". .

2voto

cbar.tx Puntos 21
  1. Aparte del consenso general de que la seguridad real está fuera de la ventana de los dispositivos enraizados y por supuesto depende del usuario, AFWall+ ofrece un enfoque a nivel de núcleo para filtrar el tráfico mientras que NetGuard utiliza la encriptación. Creo que la habilidad de correr como administrador de Android sin la necesidad de estar en primer plano es importante...
  2. AFWall+ utiliza opcionalmente el arranque a nivel de sistema script evitando la fuga de datos durante el tiempo de arranque (y el apagado también, creo)
  3. Si se usa, también tiene un plug-in de tareas incorporado que ofrece la posibilidad de cambiar automáticamente los perfiles cuando se detecta un cambio de conectividad ( me gusta mucho este)
  4. Las iptables basadas en Linux en contraposición al método VPN utilizado por Netguard
  5. No veo ninguna opción para proteger con contraseña la configuración de la aplicación en Netguard, pero tampoco he usado nunca esta función en AFWall+, así que...

Creo que una característica importante a tener en cuenta sobre Netguard sería la capacidad de filtrar direcciones específicas por cada aplicación. Esta es una opción pagada.

No puedo decir que el certificado se base en VPN vs iptables. Eso probablemente dependería del kernel y de la versión de Android para iptables y para NetGuard, los algoritmos usados para encriptar los datos, si se registran y dónde se almacenan. Mi respuesta puede no ser tan técnica como la que buscabas y como usuario veterano de AFWall+ (versión de donación), estoy definitivamente predispuesto a ello. Sin embargo, sé que el desarrollador de NetGuard también mantiene activamente XPrivacy, un muy bien conocido, confiable y robusto administrador de privacidad de Android. AFWall+ no ha sido abandonado en absoluto, pero definitivamente no ha recibido una actualización tan reciente como NetGuard. Ambos emplean diferentes métodos para mantener el control del tráfico, pero en última instancia, creo que depende en gran medida del usuario cuán segura es cualquier parte de su dispositivo.

0 votos

Gracias por su respuesta, la bala en particular fue muy informativa. Por lo que sé, NetGuard no aplica ninguna encriptación, sólo aprovecha la API de VPN de Android porque esta API permite redirigir toda la comunicación de datos-red a un proceso de usuario no privilegiado. La intención inicial de esta API es permitir que dicho proceso maneje una conexión VPN (de hecho encriptada, etc.) a un host remoto, pero NetGuard en cambio usa esta posición sólo localmente para poder analizar y filtrar el tráfico. Hasta donde yo sé no hay una opción real de VPN en NetGuard (a diferencia de AFWall+).

0 votos

Una cosa que mi curiosidad no me ha obligado a rastrear una respuesta definitiva es si es común en absoluto que las aplicaciones para el túnel de sus travesuras de carga y la eficacia sería en el análisis y el filtrado de los datos que se túnel a través de este mecanismo de VPN.

0 votos

La tunelización de la VPN es transparente para las otras aplicaciones, que piensan que tienen un acceso directo a Internet, mientras que bajo el capó Android en realidad redirige la comunicación a la interfaz de la VPN. Por lo que sé, NetGuard no analiza los datos en sí, sólo la información del protocolo de capa 3 (direcciones IP y banderas) y un truco no documentado de Android para vincular el paquete a la aplicación de origen, esto es suficiente para decidir si un paquete debe ser permitido o no.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X