Volver al inicio

Congelación automática de apps en VPN — solución técnica

Análisis de vulnerabilidades de sandbox de Android en detección VPN e implementación de solución mediante desactivación automática de apps. Anubis bloquea la actividad en segundo plano, previniendo fugas de dirección IP.

Anubis: Aislamiento completo de apps de la detección VPN
Advertisement 728x90

Anubis: Congelación automática de apps cuando la VPN está activa

Las apps populares en Rusia escanean los dispositivos en busca de uso de VPN y reportan las direcciones IP de salida para que sean bloqueadas. ¿La solución? Congelación automática de apps cada vez que la VPN está encendida. Anubis, una herramienta de código abierto, bloquea la actividad en segundo plano de las apps, haciéndolas invisibles para los sistemas de detección.

Por qué los perfiles de trabajo no resuelven el problema

Los perfiles de trabajo de Android (Island, Insular) ocultan la VPN de ConnectivityManager, pero no evitan las fugas de red. Las apps en el perfil de trabajo aún pueden ver:

  • La interfaz tun0 vía NetworkInterface.getNetworkInterfaces()
  • Rutas vía /proc/net/route
  • Proxy SOCKS5 en localhost (puerto 1080 y otros)

Estas comprobaciones funcionan sin permisos y se alinean con las directrices del Ministerio de Desarrollo Digital de 2026. Incluso con aislamiento de perfiles, la app puede detectar la dirección IP de salida del servidor VPN y enviarla a Roskomnadzor. El código siguiente muestra cómo se filtra la comprobación estándar de ConnectivityManager entre perfiles:

Google AdInline article slot
// Code in rabochem profile not obnaruzhit VPN osnovnogo profilya
val cm = getSystemService<ConnectivityManager>()
val vpnActive = cm.allNetworks.any {
    cm.getNetworkCapabilities(it)
        ?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true
}
// Result: vpnActive == false

La vulnerabilidad crítica en clientes VLESS (proxy SOCKS5 desprotegido) empeora las cosas. La app no solo puede detectar la VPN, sino también usarla para identificar la IP de salida. Técnicas como VPNs en triple cascada solo desplazan el problema: no lo eliminan, ya que el espía seguirá capturando la IP de salida del primer nodo.

Limitaciones arquitectónicas de Android

Android no usa espacios de nombres de red para perfiles, a diferencia de los SO de escritorio. La virtualización (VirtualBox, QEMU) en PCs aísla completamente la pila de red, pero en Android:

  • La pila de red se comparte entre todos los perfiles
  • La actividad en segundo plano está permitida vía BroadcastReceiver, JobScheduler, FCM
  • Modo Doze y App Standby no garantizan una parada completa

Incluso con aislamiento de red perfecto, los procesos en segundo plano siguen ejecutándose. Las apps con permisos de actividad en segundo plano (bancos, mensajeros) comprueban regularmente:

Google AdInline article slot
  • Estado de la red vía APIs del sistema
  • Puertos abiertos en localhost
  • Disponibilidad de recursos bloqueados

Los perfiles de trabajo no bloquean estas comprobaciones. El único método fiable es desactivar completamente la app mediante el comando del sistema pm disable-user.

Cómo funciona Anubis

Anubis monitorea el estado de la VPN vía VpnService y desactiva automáticamente las apps objetivo. Componentes clave:

  • Monitoreo del sistema: Seguimiento de eventos CONNECTIVITY_ACTION y estado de VpnService
  • Gestión de paquetes: Llamada a PackageManager.setApplicationEnabledSetting() con la bandera DONT_KILL_APP
  • Lista de objetivos: Filtrado por nombre de paquete (p. ej., ru.max.messenger, ru.tbank)

Proceso de activación:

Google AdInline article slot
  • El usuario enciende la VPN
  • Anubis recibe el evento vía BroadcastReceiver
  • Para cada app en la lista blanca, se ejecuta pm disable-user
  • Los iconos de las apps desaparecen del lanzador, los procesos en segundo plano se detienen

Cuando la VPN se apaga, el sistema restaura automáticamente las apps a estado operativo. Requiere el permiso CHANGE_NETWORK_STATE y permiso para cambiar estados de apps (vía ADB o root):

# Akaktywatsiya komandy otklyucheniya for user-installed prilozheniy
adb shell pm enable-user --user 0 ru.target.app

Detalles de implementación técnica

Anubis elude la restricción de Android para desactivar apps instaladas por el usuario mediante dos enfoques:

  • Modo ADB: Configuración vía ordenador para dispositivos con depuración activada
  • Acceso root: Llamada directa a pm disable-user vía su

Para uso con ADB, se requiere configuración única:

adb shell pm set-install-location 2
adb shell pm grant com.anubis.control android.permission.CHANGE_NETWORK_STATE

Importante: Después de desactivar, la app está completamente aislada del sistema. No recibe eventos de broadcast, no tiene acceso a la red y no puede iniciar procesos. Esto garantiza que incluso métodos de detección avanzados (escaneo de puertos, análisis de rutas) se vuelvan imposibles.

Puntos clave

  • Los perfiles de trabajo ocultan la VPN solo de ConnectivityManager, no de las comprobaciones de red de bajo nivel
  • La actividad en segundo plano de las apps permanece activa incluso en perfiles aislados
  • La desactivación completa vía pm disable-user es la única forma de asegurar no haya fugas
  • Anubis automatiza el proceso, vinculando los estados de las apps al estado de la VPN
  • Requiere ADB o root para habilitar en apps instaladas por el usuario

— Editorial Team

Advertisement 728x90

Leer después