s1mb1o/vpn-detector-android

GitHub: s1mb1o/vpn-detector-android

这款开源 Android 应用通过复现反欺诈 SDK 的检测逻辑,揭示了设备在开启 VPN 时暴露的多种底层信号和指纹信息。

Stars: 0 | Forks: 0

# Android VPN 检测工具 [![Android](https://img.shields.io/badge/Android-8%2B-green?logo=android)](https://developer.android.com) [![Kotlin](https://img.shields.io/badge/Kotlin-2.0-blue?logo=kotlin)](https://kotlinlang.org) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![API](https://img.shields.io/badge/API-26%2B-brightgreen)](https://developer.android.com/about/versions/oreo) 一款研究与诊断用的 Android 应用,利用与反欺诈 SDK 相同的信号来检测设备上活动的 VPN 连接。 ## 为什么存在此项目 银行、电子商务和身份验证应用中的移动反欺诈 SDK 会静默地对设备的 VPN 使用情况进行指纹识别。它们使用的检测信号未公开,且分散在 Android API 中。本项目收集并在一个开源应用中实现了这些信号,以便: - **安全研究人员** 可以研究反欺诈 SDK 实际采集了哪些数据 - **注重隐私的用户** 可以确切了解其设备在使用 VPN 方面暴露了哪些信息 - **QA 工程师** 可以验证其 VPN 检测逻辑在测试设备上是否正确触发 ## 截图

VPN detection system checks — TRANSPORT_VPN, tunnel interfaces, routing GeoIP probes — external IP lookup via 6 providers Consistency checks — SIM vs IP country mismatch detection Active network probes — latency, IPv6, captive portal Check detail dialog with per-source breakdown

## 检测信号 四大类别中的 30+ 种信号: ### 系统检查(被动,无网络 I/O) | 信号 | 严重程度 | 检测内容 | |--------|----------|----------------| | `TRANSPORT_VPN` 标志 | HARD | 通过 ConnectivityManager 检测活动 VPN 客户端 | | `NET_CAPABILITY_NOT_VPN` | HARD | 镜像检查 — SDK 会对两者进行测试 | | 隧道接口 (`tun0`, `wg0`) | HARD | VPN/IPsec 隧道适配器处于 UP 状态 | | 活动接口名称 | HARD | 流量通过隧道适配器路由 | | 通过隧道的默认路由 | HARD | 0.0.0.0/0 via tun,或 WireGuard 分流路由技巧 | | 链路上的 HTTP 代理 | HARD | 配置了系统级 HTTP 代理 | | JVM 代理属性 | HARD | 进程级代理(http.proxyHost, socksProxyHost) | | VpnTransportInfo (API 31+) | HARD | 来自 NetworkCapabilities 的 VPN 会话元数据 | | dumpsys vpn_management | HARD | 活动 VPN 包(尽力而为,Android 12+) | | 混淆工具链 | HARD | AmneziaWG, Xray/VLESS, Clash, Shadowsocks, ByeDPI | | 已安装的 VPN 客户端 | SOFT | WireGuard, ProtonVPN, Mullvad, NordVPN 等 | | 私有 DNS (DoT) | SOFT | 非运营商 DNS 解析器 | | 公共 DNS 服务器 | SOFT | 1.1.1.1, 8.8.8.8, AdGuard, Quad9 | | MTU 异常 | SOFT | Wi-Fi 上的非 1500 MTU(WG=1420, AmneziaWG=1380) | | 始终开启的 VPN |
标签:Android, Android开发, DNS解析, DSL, GeoIP, IP一致性检查, Kotlin, QA测试, VPN检测, 反欺诈, 延迟检测, 开源项目, 情报分析, 目录枚举, 移动安全, 系统分析, 系统探测, 网络分析, 网络安全, 网络安全, 网络诊断, 设备指纹, 路由探测, 隐私保护, 隐私保护, 风控SDK