## Anubis : Congélation automatique des applications lorsque le VPN est actif
Les applications populaires en Russie scannent les appareils pour détecter l'utilisation de VPN et rapportent les adresses IP sortantes afin qu'elles soient bloquées. La solution ? Congélation automatique des applications dès que le VPN est activé. Anubis, un outil open-source, bloque l'activité en arrière-plan des applications, les rendant invisibles aux systèmes de détection.
Pourquoi les profils de travail ne résolvent pas le problème
Les profils de travail Android (Island, Insular) masquent le VPN de ConnectivityManager, mais ils n'empêchent pas les fuites réseau. Les applications dans le profil de travail peuvent toujours voir :
- L'interface
tun0viaNetworkInterface.getNetworkInterfaces() - Les routes via
/proc/net/route - Proxy SOCKS5 sur localhost (port 1080 et autres)
Ces vérifications fonctionnent sans permissions et sont conformes aux lignes directrices du Ministère du Développement numérique pour 2026. Même avec l'isolation des profils, l'application peut détecter l'adresse IP sortante du serveur VPN et l'envoyer à Roskomnadzor. Le code ci-dessous montre comment la vérification standard de ConnectivityManager est filtrée entre les profils :
// 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
Vulnérabilité critique dans les clients VLESS (proxy SOCKS5 non protégé) aggrave les choses. L'application peut non seulement détecter le VPN mais aussi l'utiliser pour identifier précisément l'IP sortante. Des techniques comme les VPN en triple cascade ne font que déplacer le problème — elles ne l'éliminent pas, car l'espion obtiendra toujours l'IP sortante du premier nœud.
Limitations architecturales d'Android
Android n'utilise pas les espaces de noms réseau pour les profils, contrairement aux OS de bureau. La virtualisation (VirtualBox, QEMU) sur PC isole complètement la pile réseau, mais sur Android :
- La pile réseau est partagée entre tous les profils
- L'activité en arrière-plan est autorisée via
BroadcastReceiver,JobScheduler, FCM - Le mode Doze et App Standby ne garantissent pas un arrêt complet
Même avec une isolation réseau parfaite, les processus en arrière-plan continuent de tourner. Les applications avec permissions d'activité en arrière-plan (banques, messageries) vérifient régulièrement :
- L'état du réseau via les API système
- Les ports ouverts sur localhost
- La disponibilité des ressources bloquées
Les profils de travail ne bloquent pas ces vérifications. La seule méthode fiable consiste à désactiver complètement l'application via la commande système pm disable-user.
Comment fonctionne Anubis
Anubis surveille l'état du VPN via VpnService et désactive automatiquement les applications cibles. Composants clés :
- Surveillance système : Suivi des événements
CONNECTIVITY_ACTIONet de l'étatVpnService - Gestion des paquets : Appel de
PackageManager.setApplicationEnabledSetting()avec le drapeauDONT_KILL_APP - Liste des cibles : Filtrage par nom de paquet (ex. : ru.max.messenger, ru.tbank)
Processus d'activation :
- L'utilisateur active le VPN
- Anubis reçoit l'événement via
BroadcastReceiver - Pour chaque application de la liste blanche,
pm disable-userest exécutée - Les icônes des applications disparaissent du lanceur, les processus en arrière-plan s'arrêtent
Lorsque le VPN est désactivé, le système restaure automatiquement les applications à l'état fonctionnel. Cela nécessite la permission CHANGE_NETWORK_STATE et la permission de modifier les états des applications (via ADB ou root) :
# Akaktywatsiya komandy otklyucheniya for user-installed prilozheniy
adb shell pm enable-user --user 0 ru.target.app
Détails de mise en œuvre technique
Anubis contourne la restriction d'Android sur la désactivation des applications installées par l'utilisateur grâce à deux approches :
- Mode ADB : Configuration via ordinateur pour les appareils avec débogage activé
- Accès root : Appel direct à
pm disable-uservia su
Pour l'utilisation en mode ADB, une configuration unique est requise :
adb shell pm set-install-location 2
adb shell pm grant com.anubis.control android.permission.CHANGE_NETWORK_STATE
Important : Après désactivation, l'application est complètement isolée du système. Elle ne reçoit pas d'événements broadcast, n'a pas d'accès réseau et ne peut pas démarrer de processus. Cela garantit que même les méthodes de détection avancées (scan de ports, analyse de routes) deviennent impossibles.
Points clés
- Les profils de travail masquent le VPN uniquement de ConnectivityManager, pas des vérifications réseau de bas niveau
- L'activité en arrière-plan des applications reste active même dans les profils isolés
- La désactivation complète via
pm disable-userest la seule façon d'assurer l'absence de fuites - Anubis automatise le processus, en liant les états des applications à l'état du VPN
- Nécessite ADB ou root pour activer sur les applications installées par l'utilisateur
— Editorial Team
Aucun commentaire pour le moment.