VPN とプロキシの検出は実際どう動くのか:シグナル別に解説
VPN 検出は実際にどう動くのか。プロバイダーリストや ASN 分析からプロトコルプローブまで、最新の VPN・プロキシ検出を支えるシグナルを解説します。

不正対策、不正利用対策、コンプライアンスのチームは、いずれ同じ問いに行き着きます。この IP アドレスは何かを隠しているのか? (まず基本を知りたい方は、VPN とは何か、VPN トラフィックをどう検出するかから始めてください。この記事では、その仕組みを深く掘り下げます。)正直な答えは、単一のチェックでは判断できない、ということです。商用 VPN、データセンターの SOCKS プロキシ、ボットネットから借りるレジデンシャルプロキシ、Tor の出口ノードは、通信上ではそれぞれ見え方が異なり(各ファミリーはプロキシの種類の解説で扱っています)、それぞれが異なる素朴な検出手法を破ります。
このガイドでは、本番水準の検出システムが利用するシグナルを順に見ていきます。そのうち 2 つ(レイテンシのチェックと行動モデル)は GeoIPHub では使っていません。GeoIPHub は、同じ範囲をカバーする 7 つの検証メソッドファミリーから独自に判定を組み立てます。各層について、何が見えて何が見えないのか、そして結果がどのように、実際に使うレスポンスのフィールド(is_vpn、is_proxy、is_residential_proxy、is_tor)に統合されるのかを説明します。

プロバイダーのサーバーリスト
最も信頼できる証拠は、最も直接的なものです。VPN プロバイダーは自社のサーバーインフラを公開しています。アプリは接続するためにエンドポイントのリストを必要とし、多くのプロバイダーは、全サーバーのホスト名と IP を列挙した公式 API や設定バンドルを公開しています。
検出システムはこうした情報源を継続的にクロールします。IP が NordVPN や Mullvad の公開サーバーリストに現れたとき、その一致によってプロバイダーが特定されますが、それは、まさにその IP が当社の保持するリストに載っている場合に限られます。リストにないサーバーでも、後述のシグナルで捕捉でき、名前は特定されないままになることがあります。優れた API が is_vpn: true だけでなく、プロバイダー名そのものを返せるのはこのためであり、フラグを立てたサーバーに名前を返さないことがあるのもこのためです。
限界はカバレッジです。公開リストで捕捉できるのは公開しているプロバイダーだけです。つまりこの層は、消費者向け VPN トラフィックの大半を占める大手商用 VPN には最も強く、プライベートやセルフホストの VPN には最も弱くなります。
ASN とホスティングインフラ
すべての IP は、その IP をインターネットに広告するネットワークである自律システム(AS)に属しています。ASN は誰がそのネットワークを運用しているかを教えてくれ、これは強力な事前情報になります。
- AS396982(Google Cloud) が広告している IP は、ほぼ間違いなくサーバーであり、ソファに座っている個人ではありません。
- 家庭向け ISP(Comcast、Deutsche Telekom、Jio)が広告している IP は、おそらく一般ユーザーの接続です。
- VPN のエンドポイントの履歴がある、長距離のホスティングまたはコロケーションの ASN は、そのレンジ内のすべての IP について事前確率を引き上げます。
データセンターの検出だけでも、VPN とプロキシの大部分を捕捉できます。匿名化のインフラの大半はクラウドサーバーを借りているからです。ただし、VPN のエンドポイントと普通の Web サーバーを区別することはできません。そこで次の層が必要になります。
能動的なプロトコルプローブ
これは多くのルックアップデータベースが省略する層で、推測と検証を分ける部分です。VPN サーバーは VPN プロトコルのハンドシェイクに応答しなければなりません。それが役目だからです。そこで検出システムは扉を叩き、誰が応答するかを確かめられます。
- OpenVPN は、待ち受けポートで特徴的な TLS または UDP ハンドシェイクに応答します。
- IKEv2/IPsec は、UDP 500/4500 で識別可能なペイロードとともに応答します。
- PPTP と L2TP は、制御チャネルのリクエストに応答します。
- SOCKS5 と HTTP プロキシ は、それぞれの挨拶のシーケンスを完了します。
WireGuard は例外です。サーバーは、すでに知っている鍵からの最初のメッセージでない限り沈黙を保つため、外部のプローブでは確認できません。GeoIPHub の wireguard_open メソッドは、ハンドシェイクではなく、そのサーバーを WireGuard として示すプロバイダーの公開サーバーリストに由来します。
IP が OpenVPN のハンドシェイクを完了したなら、その IP は OpenVPN を実行しています。統計的な推論は必要ありません。GeoIPHub は 8 つのプロトコルにわたってプローブし、どのハンドシェイクが成功したかを正確に記録するため、is_vpn の根拠には名前があり、監査可能です。
curl -H "x-api-key: YOUR_API_KEY" \
https://api.geoiphub.com/v1/lookup/102.129.235.17
{
"ip": "102.129.235.17",
"asn": {
"asn": 834,
"org": "IPXO - IPXO LLC",
"asn_type": "vpn",
"connection_type": "datacenter"
},
"detection": {
"is_vpn": true,
"is_proxy": false,
"is_tor": false,
"is_anonymous": true,
"vpn_provider": "none",
"vpn_confidence": 100
},
"scoring": {
"fraud_score": 92,
"recommended_action": "block",
"detection_methods": ["known_vpn_server", "openvpn_open", "ipsec_open"]
}
}
ここで detection_methods にある openvpn_open と ipsec_open は、このアドレスが既知の VPN サーバーデータとの一致に加えて、OpenVPN と IPsec のプローブにも応答したことを記録しています。ここでは vpn_provider が "none" なので、ブランドは特定されていません。判定は、プロバイダーのラベルではなく、名前付きのプロトコルの証拠に裏付けられています。
能動的なプローブには代償が 1 つあります。インフラと時間が必要になるため、リクエストごとではなくバックグラウンドで継続的に実行されます。プローブの結果はキャッシュされて更新されるので、API はミリ秒で応答できます。
ポートとサービスのフィンガープリント
完全なハンドシェイクができない場合でも、IP の公開サービスの形は手がかりになります。家庭の回線は通常、何も公開していません。VPN のエンドポイントは、小さく特徴的なポートの組を公開します。プロキシファームは、サブネット全体にわたって管理パネル、SSH、プロキシのポートを公開します。
サービスのフィンガープリントは、誤設定された、あるいはブランドのない匿名化ツールも捕捉します。TCP 1080 で SOCKS のバナーを返すサーバーは、どのリストに載っているかにかかわらずプロキシです。
レイテンシと位置の整合性
地理は物理にフィンガープリントを残します。IP が(登録データ上は)サンパウロにあると主張しているのに、世界各地の観測点からのラウンドトリップタイムを三角測量するとアムステルダムを指すなら、何かがトラフィックを中継しています。レイテンシに基づくチェックは、特に次のものに有効です。
- 位置を偽装した VPN サーバー:「ブラジル」のサーバーを宣伝しながら、実際にはマイアミにあるプロバイダー。
- 隠れた実際の場所にトラフィックを転送する GRE/トンネルのリレー。
この層が単独で発火することはまれですが、ホスティングのシグナルと組み合わせると強い裏付けになります。
レジデンシャルプロキシの行動
レジデンシャルプロキシは最も難しい種類です。出口 IP が本物の家庭用 ISP のものだからです。リストのチェックは通過します。ASN のチェックも通過します。プローブしても何も待ち受けていません。「サーバー」は、誰かの無料モバイルアプリに埋め込まれた SDK だからです。
そのため検出は、インフラから時間をかけた行動へと移ります。
- 同じ家庭用 IP が、既知のプロキシのマーケットプレイスをまたいで出口として現れる。
- ありそうにないセッションの多様性:1 つの世帯の IP が 1 時間に数十のデバイスフィンガープリントを提示する。
- DHCP の更新ではなく、プロキシネットワークのローテーションに一致する入れ替わりのパターン。
- ISP の種類の不一致:モバイルキャリアの IP が、データセンター並みのリクエスト量を持続的に生成する(キャリア IP がなぜ特別なケースなのかは、モバイルプロキシの見抜き方のガイドで説明しています)。
レジデンシャルの出口が is_proxy とは別のフィールドを持つのはこのためです。証拠の種類が異なり、適切な対応も異なります。IP ルックアップで何が見えるのかは、はっきりさせておきましょう。GeoIPHub の is_residential_proxy は、ASN に基づく大まかな推論であり、プロキシネットワークへの所属を直接観測したものではありません。したがって、証明ではなくヒントとして扱ってください。ログの中で家庭用 ISP のトラフィックが急に怪しく見えるなら、レジデンシャルプロキシがトラフィックに現れ続ける理由で、よくある原因を順に確認できます。決済フローでのレジデンシャルプロキシの該当は、消費者向け VPN の該当よりはるかに強い不正のシグナルです。
Tor ディレクトリのデータ
Tor は、設計上、簡単な部類です。Tor ネットワークはリレーと出口ノードのコンセンサスを公開し、それは継続的に更新されます。公開されている出口リストと照合すれば、is_tor はほぼ完璧な精度になりますが、1 つ注意点があります。タイミングです。出口ノードは参加と離脱を繰り返すため、ディレクトリは週次ではなく、短い間隔で取り込み直す必要があります。
プライバシーリレーはその反対のケースです。Apple は iCloud Private Relay のすべてのエグレスアドレスを公開しているので、リレーも正確に照合できますが、それ単体ではブロックリストではなく allow に属します。両方のリレーと、Cloudflare が WARP のエグレスリストを公開していない理由については、iCloud Private Relay と Cloudflare WARP の検出で扱っています。
シグナルをまたいだ信頼度
最後の層は統合です。ここまでの各層は、信頼性の特性が異なる証拠を生み出します。
| シグナル層 | 捕捉するもの | 発火したときの信頼度 | 死角 |
|---|---|---|---|
| プロバイダーリスト | 商用 VPN | 非常に高い(特定可能) | プライベート VPN |
| ASN / ホスティング | データセンターの匿名化ツール | 中程度(事前確率であり証明ではない) | レジデンシャルの出口 |
| 能動的なプローブ | 稼働中の VPN/プロキシのデーモン | 非常に高い(検証済み) | SDK ベースのプロキシ |
| ポートのフィンガープリント | ブランドのないプロキシ | 高い | ファイアウォールで保護されたエンドポイント |
| レイテンシのチェック | 位置を偽装するリレー | 中程度 | 近くのリレー |
| 行動モデル | レジデンシャルプロキシ | 中程度から高い | 新しい IP |
| Tor ディレクトリ | 出口ノード | ほぼ確実 | ブリッジ |
説得力のある判定は、これらを合わせて重み付けします。中程度の信頼度のシグナル 1 つで真偽値を反転させるべきではなく、独立した高信頼のシグナル 2 つなら反転させるべきです。したがって、検出 API から欲しい出力は 3 つです。ルーティングの判断に使う真偽値、監査のための名前付きの検出メソッド、そしてシグナルがどれだけ裏付け合っているかを表すリスクスコアです。名前付きのメソッドは、誤ってフラグを立てられたユーザーが必要とするものでもあります。IP が VPN やプロキシとしてフラグ付けされる理由の解説では、実在のアドレスでそれらを読み解いています。
VPN 検出を活用する:組み合わせでルーティングする
実践的なポイントは 3 つあります。
is_vpnだけをブロックリストとして扱わないでください。 有料の顧客の多くが消費者向け VPN を使っています(本物の顧客を断らずに匿名化されたトラフィックにフラグを立てる方法を参照)。組み合わせでルーティングしてください。VPN とデータセンターと不正の履歴が揃う場合は、VPN だけの場合とはまったく別の状況です。- レジデンシャルプロキシのシグナルは、推論であることを理解したうえで重く扱ってください。 プライバシーのためにレジデンシャルの出口を借りる人はいません。正当な利用の基準率は VPN と比べてごくわずかです。ただし IP レベルのレジデンシャルのフラグは大まかな推論なので、自社のセッションのシグナルと組み合わせてください。
- 静的なリストより、検証に基づく検出を選んでください。 どのベンダーにも、IP が VPN だとどうやって知るのかを尋ねてください。答えが「ライセンスしているデータベース」なら、そのデータはすでに劣化しています。能動的なプローブと継続的にクロールされるプロバイダーリストなら、インフラの入れ替わりに追随できます。
各層の出力は自分で確認できます。任意の IP を無料の IP ルックアップツールに通すか、ご自身の VPN 接続をテストしてください。登録は不要です。
よくある質問
VPN 検出が 100% 正確になることはありますか?
ありません。検出は確率的なものです。インフラを公開している商用 VPN は非常に高い信頼度で検出できますが、新しいクラウド IP 上の小規模なプライベート VPN は難しくなります。そのため優れた API は、単なる真偽値ではなく、シグナルごとの根拠と信頼度を返します。
検出の観点で、プロキシと VPN の違いは何ですか?
VPN はネットワーク層ですべてのトラフィックをトンネリングし、通常はサーバー上で特定のプロトコルのハンドシェイク(OpenVPN、WireGuard、IKEv2)に応答します。プロキシはアプリケーション層のトラフィック(HTTP、SOCKS)を中継し、異なるポートとフィンガープリントを公開します。検出システムは両方のファミリーを別々にプローブします。
レジデンシャルプロキシが検出しにくいのはなぜですか?
出口 IP が本物の家庭用 ISP のものなので、リストや ASN によるチェックを通過してしまうからです。検出は代わりに行動上の根拠に頼ります。同じ IP がプロキシネットワークに現れること、不自然な再利用パターン、ISP の種類と観測されたトラフィックの不一致などです。
不正対策として、VPN ユーザーをすべてブロックするのは妥当ですか?
通常は妥当ではありません。正当なユーザーの多くが、プライバシーのために VPN を使ってブラウジングしています。より良いのは、VPN の利用をリスクスコアへの重み付けされた入力の 1 つとして扱い、データセンターでのホスティング、不正の履歴、あり得ない移動といった他のシグナルと重なったときだけエスカレーションする方法です。
VPN 検出のデータはどのくらい新しくある必要がありますか?
非常に新しい必要があります。VPN プロバイダーは毎日サーバーを入れ替え、プロキシネットワークは IP を時間単位で入れ替えます。継続的な再プローブと、再クロールしたプロバイダーリストに支えられた検出は精度を保ちますが、静的なデータセットは数週間で劣化します。
GeoIPHub API を支えるチーム
GeoIPHub IP インテリジェンス API とそのスキャナーを開発している GeoIPHub チームが執筆しています。下書きは AI の支援を受けて作成し、チームが編集しています。API の例は、「説明用」と明記したものを除き、本番 API に対する実際のルックアップです。


