← 返回博客

VPN 检测原理:ASN 与黑名单

VPN 检测原理:ASN 与黑名单

VPN 检测的原理,是判断某个 IP 地址是否属于一个已知会为他人中继流量的网络,主要依据两个来源:地址的自治系统编号(ASN),它显示谁在运营该网络;以及已知 VPN、代理和 Tor 出口地址的黑名单。两个来源都不完整,因此检测得到的是概率估计,而不是证明。

这之所以可行,是因为 VPN 出口总得位于某个地方。商业 VPN 服务在数据中心租用服务器,并从少数几个网络宣告地址空间,这些地址的行为与家庭宽带连接不同。检测就是设法识别这种特征。

信号一:ASN 归属

每个公网 IP 地址都位于某个自治系统宣告的地址段内,并由 ASN 标识。ASN 查询会返回类似 AS15169 这样的编号所对应的注册所有者、组织和国家,而主 IP 查询对每个地址也会返回同样的 asn 和组织。如果该组织是托管公司、云平台或 CDN,这个地址就不太可能是家中的个人用户,ipto 将此暴露为 is_datacenter。如果是消费级 ISP,该地址很可能属于某个家庭或移动用户。相关背景见什么是 ASN。

对于 VPN 提供商在租用机架中运行服务器这一常见情形,ASN 证据很有力,但它有两个弱点。大量非 VPN 的流量同样来自数据中心:脚本、监控服务、合法的企业出口,以及托管在云上的应用。而通过消费级 ISP 出口的 VPN 则完全不会留下数据中心特征。因此,ASN 只是先验,而不是结论。

信号二:已公布的列表

第二个来源是已被识别为 VPN 端点、代理或 Tor 中继的地址列表。Tor 是最容易的情形,因为该网络公开发布其中继节点,但出口列表变化很快,详见为什么静态 Tor 出口列表会过时。对于商业 VPN,列表由观测数据和提供商数据汇编而成,并且需要频繁刷新,因为提供商会不断轮换和新增服务器。在 ipto 上,VPN、Tor 和滥用情报源每 6 小时刷新一次,IP 和 ASN 数据集每天刷新一次,结果在 IP 查询中以 is_vpn、is_tor 和 is_abuser 呈现。你也可以直接浏览底层的威胁情报源。

列表证据比 ASN 证据更具体,因为列表中的地址是被逐个识别的。但它存在滞后:今天早上新增的服务器可能要到下次刷新才会出现在任何列表中,而列表也可能保留那些后来已被重新分配给普通客户的地址。

结合两种信号

这两个来源互为补充。既位于托管 ASN 又在出口列表中的地址,是高置信度的 VPN 或代理。仅位于托管 ASN 的地址值得谨慎对待,但不应自动视为 VPN。与列表匹配却位于消费级 ASN 的地址,可能是过时条目或住宅出口。将地址送入 VPN、Tor 与代理检查器,可以看到匹配了哪些列表以及该地址属于哪个网络,这样你看到的是证据,而不仅仅是“是”或“否”。

检测的漏检之处

围绕检测结果进行设计时,要明确它的盲区:

  • 新增或轮换的服务器在情报源跟上之前可能不会被检测到。
  • 住宅代理通过真实的家庭连接路由,看起来像普通用户。ipto 不检测它们;关于其难点所在,请参阅住宅代理检测。
  • IPv6:VPN、Tor 和滥用标记目前覆盖 IPv4 地址段,因此 IPv6 地址对这些标记返回 false 而非猜测,尽管 ASN、组织和位置仍然可用。
  • 自建 VPN若位于小型提供商地址段内的个人服务器上,可能永远不会出现在任何列表中。

应将阴性结果视为“未知是 VPN”,而不是“一定是直连”。

合理使用检测结果

大多数 VPN 用户是合法的:使用企业隧道的员工、旅行者、注重隐私的人。标记最适合作为风险输入,触发相称的应对措施,例如增加一步验证、降低信任分数,或对高价值操作进行人工审核,而不是自动封锁。相关模式见减少 VPN 检测的误报,而欺诈评分检查器展示了如何将 IP 信号与电子邮件、电话和 User-Agent 证据合并成一个 0 到 100 的分数。

想要试用,请用你自己日志中的地址调用 GET https://ipto.to/v1/ip/:ip(免费,无需注册,每天 1,000 次请求),并在 ASN 旁检查这些标记。响应结构见 API 文档。

直截了当的答案

VPN 检测会通过 ASN 检查某个 IP 地址是否属于托管或数据中心网络,以及它是否出现在已公布的已知 VPN、代理或 Tor 出口地址列表中。两者结合可得到概率估计,而不是证明。
新增或轮换的服务器可能尚未出现在任何列表中,住宅代理看起来像普通家庭连接,小地址段中的自建 VPN 可能永远不会被列入。阴性结果意味着该地址未知是 VPN。
通常不应该,因为许多 VPN 用户是合法的。把标记作为风险信号、增加额外验证或审核等相称的步骤,效果更好。
← 返回博客