Zurück zur Startseite

Automatisches App-Einfrieren bei VPN — technische Lösung

Analyse der Android-Sandbox-Schwachstellen bei VPN-Erkennung und Umsetzung der Lösung durch automatisches App-Deaktivieren. Anubis blockiert Hintergrundaktivitäten und verhindert IP-Adresslecks.

Anubis: Volle Isolation von Apps vor VPN-Erkennung
Advertisement 728x90

## Anubis: Automatisches Deaktivieren von Apps bei aktivem VPN

Beliebte Apps in Russland scannen Geräte auf VPN-Nutzung und melden ausgehende IP-Adressen, um sie blockieren zu lassen. Die Lösung? Automatisches Deaktivieren von Apps, sobald das VPN läuft. Anubis, ein Open-Source-Tool, blockiert die Hintergrundaktivitäten von Apps und macht sie für Erkennungssysteme unsichtbar.

Warum Work Profiles das Problem nicht lösen

Android-Work-Profile (Island, Insular) verbergen das VPN vor dem ConnectivityManager, verhindern aber keine Netzwerklecks. Apps im Work-Profil können immer noch sehen:

  • Die tun0-Schnittstelle über NetworkInterface.getNetworkInterfaces()
  • Routen über /proc/net/route
  • SOCKS5-Proxy auf localhost (Port 1080 und andere)

Diese Überprüfungen funktionieren ohne Berechtigungen und entsprechen den Richtlinien des Ministeriums für Digitale Entwicklung von 2026. Selbst mit Profil-Isolierung kann die App die ausgehende IP-Adresse des VPN-Servers erkennen und an Roskomnadzor melden. Der folgende Code zeigt, wie die Standard-ConnectivityManager-Überprüfung zwischen Profilen gefiltert wird:

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

Kritische Schwachstelle in VLESS-Clients (ungeschützter SOCKS5-Proxy) verschlimmert die Sache. Die App kann nicht nur das VPN erkennen, sondern es auch nutzen, um die ausgehende IP präzise zu ermitteln. Techniken wie Triple-Cascade-VPNs verschieben das Problem nur – sie eliminieren es nicht, da der Spion immer noch die ausgehende IP des ersten Knotens abgreift.

Architektonische Einschränkungen von Android

Android verwendet keine Network-Namespaces für Profile, im Gegensatz zu Desktop-Betriebssystemen. Virtualisierung (VirtualBox, QEMU) auf PCs isoliert den Netzwerkstapel vollständig, aber auf Android:

  • Der Netzwerkstapel ist über alle Profile hinweg geteilt
  • Hintergrundaktivitäten sind über BroadcastReceiver, JobScheduler, FCM erlaubt
  • Doze-Modus und App Standby garantieren keinen vollständigen Stopp

Selbst bei perfekter Netzwerkisolierung laufen Hintergrundprozesse weiter. Apps mit Berechtigungen für Hintergrundaktivitäten (Banken, Messenger) prüfen regelmäßig:

Google AdInline article slot
  • Netzwerkstatus über System-APIs
  • Offene Ports auf localhost
  • Verfügbarkeit blockierter Ressourcen

Work Profile blockieren diese Überprüfungen nicht. Die einzige zuverlässige Methode ist das vollständige Deaktivieren der App über den Systembefehl pm disable-user.

So funktioniert Anubis

Anubis überwacht den VPN-Status über VpnService und deaktiviert Ziel-Apps automatisch. Wichtige Komponenten:

  • Systemüberwachung: Nachverfolgung von CONNECTIVITY_ACTION-Ereignissen und VpnService-Status
  • Paketverwaltung: Aufruf von PackageManager.setApplicationEnabledSetting() mit der DONT_KILL_APP-Flagge
  • Ziel-Liste: Filterung nach Paketnamen (z. B. ru.max.messenger, ru.tbank)

Aktivierungsprozess:

Google AdInline article slot
  • Nutzer schaltet VPN ein
  • Anubis empfängt das Ereignis über BroadcastReceiver
  • Für jede App in der Whitelist wird pm disable-user ausgeführt
  • App-Icons verschwinden aus dem Launcher, Hintergrundprozesse stoppen

Beim Ausschalten des VPN stellt das System die Apps automatisch wieder her. Es erfordert die Berechtigung CHANGE_NETWORK_STATE und die Berechtigung zum Ändern von App-Zuständen (über ADB oder Root):

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

Technische Umsetzungsdetails

Anubis umgeht die Android-Einschränkung beim Deaktivieren nutzerinstallierter Apps durch zwei Ansätze:

  • ADB-Modus: Einrichtung über Computer für Geräte mit aktiviertem Debugging
  • Root-Zugriff: Direkter Aufruf von pm disable-user über su

Für die ADB-Nutzung ist eine einmalige Einrichtung erforderlich:

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

Wichtig: Nach dem Deaktivieren ist die App vollständig vom System isoliert. Sie erhält keine Broadcast-Ereignisse, hat keinen Netzwerkzugriff und kann keine Prozesse starten. Das garantiert, dass selbst fortschrittliche Erkennungsmethoden (Port-Scanning, Routenanalyse) unmöglich werden.

Wichtige Erkenntnisse

  • Work Profile verbergen VPN nur vor ConnectivityManager, nicht vor Low-Level-Netzwerkprüfungen
  • Hintergrundaktivitäten von Apps bleiben auch in isolierten Profilen aktiv
  • Vollständiges Deaktivieren über pm disable-user ist der einzige Weg, Lecks zu verhindern
  • Anubis automatisiert den Prozess und verknüpft App-Zustände mit dem VPN-Status
  • Erfordert ADB oder Root für nutzerinstallierte Apps

— Editorial Team

Advertisement 728x90

Weiterlesen