# Anubis: Automatické zmrazení aplikací při aktivním VPN
Oblíbené aplikace v Rusku prohledávají zařízení na přítomnost VPN a odesílají výstupní IP adresy k blokování. Řešením je automatické zmrazení aplikací při aktivním VPN. Anubis, open-source nástroj, blokuje pozadí aktivitu aplikací a činí je neviditelnými pro detekční systémy.
Proč sandboxy problém nevyřešují
Pracovní profily Androidu (Island, Insular) skrývají VPN před ConnectivityManagerem, ale nezabránějí síťovým únikům. Aplikace v pracovním profilu stále vidí:
- Rozhraní
tun0prostřednictvímNetworkInterface.getNetworkInterfaces() - Trasy prostřednictvím
/proc/net/route - SOCKS5 proxy na localhost (port 1080 a další)
Tyto kontroly fungují bez oprávnění a odpovídají metodice Ministerstva digitálního rozvoje z roku 2026. I při izolaci profilu může aplikace určit výstupní IP adresu VPN serveru a odeslat ji Roskomnadzoru. Níže uvedený kód demonstruje, jak standardní kontrola prostřednictvím ConnectivityManageru je filtrována mezi profily:
// Kód v pracovním profilu neodhalí VPN hlavního profilu
val cm = getSystemService<ConnectivityManager>()
val vpnActive = cm.allNetworks.any {
cm.getNetworkCapabilities(it)
?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true
}
// Výsledek: vpnActive == false
Kritická zranitelnost v VLESS klientech (nechráněný SOCKS5 proxy) problém zhoršuje. Aplikace může nejen VPN odhalit, ale i využít k určení výstupní IP. Metody jako tříkaskádové VPN problém posouvají, ale nevyřešují — špeh stejně získá výstupní IP prvního uzlu.
Architektonická omezení Androidu
Android nepoužívá network namespaces pro profily, na rozdíl od desktopových OS. Virtualizace (VirtualBox, QEMU) na PC síťový zásobník plně izoluje, ale na Androidu:
- Síťový zásobník je společný pro všechny profily
- Pozadí aktivita je povolena prostřednictvím
BroadcastReceiver,JobScheduler, FCM - Doze Mode a App Standby nezaručují úplné zastavení
I při ideální síťové izolaci pozadí procesy pokračují v práci. Aplikace s oprávněním k pozadí aktivitě (banky, messengery) pravidelně kontrolují:
- Stav sítě prostřednictvím systémových API
- Otevřené porty na localhost
- Dostupnost blokovaných zdrojů
Pracovní profil tyto kontroly neblokuje. Jediná spolehlivá metoda je úplné vypnutí aplikace systémovým příkazem pm disable-user.
Jak Anubis funguje
Anubis monitoruje stav VPN prostřednictvím VpnService a automaticky vypíná cílové aplikace. Klíčové komponenty:
- Systémový monitoring: Sledování událostí
CONNECTIVITY_ACTIONa stavuVpnService - Správa balíčků: Volání
PackageManager.setApplicationEnabledSetting()s příznakemDONT_KILL_APP - Seznam cílů: Filtrování podle package name (např. ru.max.messenger, ru.tbank)
Proces aktivace:
- Uživatel zapne VPN
- Anubis obdrží událost prostřednictvím
BroadcastReceiver - Pro každou aplikaci ve whitelistu se provede
pm disable-user - Ikony aplikací zmizí z launcheru, pozadí procesy se zastaví
Při vypnutí VPN systém aplikace automaticky vrátí do pracovního stavu. Pro fungování je potřeba oprávnění CHANGE_NETWORK_STATE a oprávnění k změně stavu aplikací (prostřednictvím ADB nebo root):
# Aktivace příkazu vypnutí pro uživatelsky nainstalované aplikace
adb shell pm enable-user --user 0 ru.target.app
Technické nuance implementace
Anubis obchází omezení Androidu na vypnutí uživatelských aplikací dvěma přístupy:
- ADB režim: Nastavení přes počítač pro zařízení s laděním
- Root přístup: Přímé volání
pm disable-userprostřednictvím su
Při použití ADB je potřeba jednorázové nastavení:
adb shell pm set-install-location 2
adb shell pm grant com.anubis.control android.permission.CHANGE_NETWORK_STATE
Důležité: po vypnutí je aplikace plně izolována od systému. Neobdrží vysílací události, nemá přístup k síti a nemůže spustit procesy. To zaručuje, že i pokročilé metody detekce (skenování portů, analýza tras) se stanou nemožnými.
Co je důležité
- Pracovní profily skrývají VPN jen před ConnectivityManagerem, ale ne před nízkouúrovňovými síťovými kontrolami
- Pozadí aktivita aplikací zůstává aktivní i v izolovaném profilu
- Úplné vypnutí prostřednictvím
pm disable-userje jediný způsob, jak zaručit absence úniků - Anubis proces automatizuje a váže stav aplikací k VPN
- Pro aktivaci funkcí na uživatelských aplikacích je potřeba ADB nebo root
— Editorial Team
Zatím žádné komentáře.