Anubis:VPN 激活时自动冻结应用
俄罗斯流行的应用会扫描设备上的 VPN 使用情况,并报告出站 IP 地址以使其被屏蔽。解决方案?每当 VPN 开启时自动冻结应用。Anubis 是一个开源工具,它会阻止应用的后台活动,使其对检测系统不可见。
为什么工作配置文件无法解决问题
Android 工作配置文件(Island、Insular)可以对 ConnectivityManager 隐藏 VPN,但无法防止网络泄漏。工作配置文件中的应用仍然可以看到:
tun0接口,通过NetworkInterface.getNetworkInterfaces()- 通过
/proc/net/route的路由 - 本地的 SOCKS5 代理(端口 1080 等)
这些检查无需权限,并且符合数字发展部 2026 年的指南。即使有配置文件隔离,应用仍能检测到 VPN 服务器的出站 IP 地址并发送给 Roskomnadzor。下面代码展示了标准 ConnectivityManager 检查如何在配置文件之间被过滤:
// 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
VLESS 客户端的关键漏洞(未受保护的 SOCKS5 代理)让情况雪上加霜。应用不仅能检测到 VPN,还能利用它精确定位出站 IP。像三级级联 VPN 这样的技术只是转移了问题——无法根除,因为间谍仍会抓取第一个节点的出站 IP。
Android 的架构限制
Android 不像桌面操作系统那样为配置文件使用网络命名空间。PC 上的虚拟化(VirtualBox、QEMU)完全隔离了网络栈,但在 Android 上:
- 网络栈在所有配置文件间共享
- 通过
BroadcastReceiver、JobScheduler、FCM 允许后台活动 - Doze Mode 和 App Standby 无法保证完全停止
即使网络隔离完美,后台进程仍会运行。拥有后台活动权限的应用(银行、即时通讯)会定期检查:
- 通过系统 API 的网络状态
- 本地上的开放端口
- 被屏蔽资源的可用性
工作配置文件无法阻止这些检查。唯一可靠的方法是通过系统命令 pm disable-user 完全禁用应用。
Anubis 的工作原理
Anubis 通过 VpnService 监控 VPN 状态,并自动禁用目标应用。主要组件:
- 系统监控:跟踪
CONNECTIVITY_ACTION事件和VpnService状态 - 包管理:使用
DONT_KILL_APP标志调用PackageManager.setApplicationEnabledSetting() - 目标列表:按包名过滤(例如,ru.max.messenger、ru.tbank)
激活过程:
- 用户开启 VPN
- Anubis 通过
BroadcastReceiver接收事件 - 对白名单中的每个应用执行
pm disable-user - 应用图标从启动器消失,后台进程停止
VPN 关闭时,系统会自动恢复应用到工作状态。它需要 CHANGE_NETWORK_STATE 权限以及更改应用状态的权限(通过 ADB 或 root):
# Akaktywatsiya komandy otklyucheniya for user-installed prilozheniy
adb shell pm enable-user --user 0 ru.target.app
技术实现细节
Anubis 通过两种方法绕过 Android 对用户安装应用禁用的限制:
- ADB 模式:通过电脑设置,适用于启用调试的设备
- Root 访问:通过 su 直接调用
pm disable-user
对于 ADB 使用,需要一次性设置:
adb shell pm set-install-location 2
adb shell pm grant com.anubis.control android.permission.CHANGE_NETWORK_STATE
重要提示:禁用后,应用完全与系统隔离。它不会接收广播事件,没有网络访问,无法启动进程。这保证即使是高级检测方法(端口扫描、路由分析)也变得不可能。
关键要点
- 工作配置文件仅对 ConnectivityManager 隐藏 VPN,而非低级网络检查
- 即使在隔离配置文件中,应用的后台活动仍保持活跃
- 通过
pm disable-user完全禁用是确保无泄漏的唯一方法 - Anubis 自动化该过程,将应用状态与 VPN 状态关联
- 需要 ADB 或 root 才能对用户安装应用启用
— Editorial Team
暂无评论。