← ブログに戻る

VPN検出の仕組み:ASNとブロックリスト

VPN検出の仕組み:ASNとブロックリスト

VPN検出は、IPアドレスが他人のトラフィックを中継することで知られるネットワークに属しているかを判断するもので、主に2つの情報源を使います。ネットワークの運用者を示すアドレスの自律システム番号(ASN)と、既知のVPN、プロキシ、Tor出口アドレスのブロックリストです。どちらの情報源も網羅的ではないため、検出は証明ではなく、確率的な推定です。

そもそもこれが可能なのは、VPNの出口がどこかに存在しなければならないからです。商用のVPNサービスはデータセンターのサーバーを借り、ごく少数のネットワークからアドレス空間を広告しており、そうしたアドレスは家庭のブロードバンド接続とは振る舞いが異なります。検出は、その痕跡を見分けようとするものです。

シグナル1:ASNの帰属

すべての公開IPアドレスは、ASNで識別される自律システムが広告するブロックの中にあります。ASN検索はAS15169のような番号について、登録された所有者、組織、国を返し、メインのIP検索はすべてのアドレスについて同じ asn と組織を返します。組織がホスティング会社、クラウドプラットフォーム、CDNであれば、そのアドレスが自宅にいる個人である可能性は低く、ipto はこれを is_datacenter として公開します。一般消費者向けISPであれば、そのアドレスはおそらく家庭やモバイル契約者のものです。背景はASNとは何かで説明しています。

ASNの証拠は、VPN事業者が借りたラックでサーバーを運用する一般的なケースでは強力ですが、2つの弱点があります。VPN以外の多くのトラフィックもデータセンターから発生します。スクリプト、監視サービス、正当な企業のエグレス、クラウドでホストされたアプリなどです。また、一般消費者向けISP経由で出口を持つVPNは、データセンターの痕跡をまったく残しません。したがってASNは結論ではなく、事前情報です。

シグナル2:公開リスト

2つ目の情報源は、VPNのエンドポイント、プロキシ、Torリレーとしてすでに特定されたアドレスのリストです。Torはネットワーク自身がリレーを公開しているため最も容易なケースですが、静的なTor出口リストが古くなる理由で論じたとおり、出口リストは急速に変化します。商用VPNのリストは観測とプロバイダーのデータから作成され、プロバイダーが絶えずサーバーを入れ替え追加するため、頻繁な更新が必要です。ipto では、VPN、Tor、不正利用のフィードは6時間ごとに、IPとASNのデータセットは毎日更新され、結果はIP検索の is_vpn、is_tor、is_abuser として表示されます。基になっている脅威フィードを直接閲覧することもできます。

リストの証拠は、リスト上のアドレスが個別に特定されたものであるため、ASNの証拠よりも具体的です。ただし遅れが生じます。今朝追加されたサーバーは、次の更新までどのリストにも載っていないかもしれませんし、リストには、その後一般の顧客に再割り当てされたアドレスが残っていることもあります。

シグナルの組み合わせ

2つの情報源は互いを補完します。ホスティングのASNにあり、かつ出口リストにも載っているアドレスは、確度の高いVPNまたはプロキシです。ホスティングのASNにあるだけのアドレスは慎重に扱う価値はありますが、自動的にVPNとして扱うわけではありません。リストに一致するものの一般消費者向けのASNにあるアドレスは、古いエントリか、住宅用の出口かもしれません。アドレスをVPN・Tor・プロキシチェッカーにかけると、どのリストに一致し、アドレスがどのネットワークに属するかが表示されるため、単なる可否ではなく根拠そのものを確認できます。

検出できないケース

結果を前提に設計する際は、死角を明確にしておきましょう。

  • 新規またはローテーションされたサーバーは、フィードが追いつくまで検出されないことがあります。
  • 住宅用プロキシは実際の家庭の回線を経由するため、一般のユーザーに見えます。ipto はこれを検出しません。それが難しい理由は、住宅用プロキシの検出を参照してください。
  • IPv6:VPN、Tor、不正利用のフラグは現在IPv4の範囲を対象としているため、IPv6アドレスでは推測ではなくfalseが返ります。ただし、ASN、組織、位置情報は引き続き利用できます。
  • セルフホストのVPNで、小規模なプロバイダーの範囲にある個人サーバーのものは、どのリストにも載らないことがあります。

否定的な結果は、「確実に直接接続」ではなく「VPNとして知られていない」と解釈してください。

結果を賢く使う

VPN利用者の大半は正当なユーザーです。企業のトンネルを使う従業員、旅行者、プライバシーを重視する人々などです。フラグは、自動ブロックではなく、追加の認証ステップ、信頼スコアの引き下げ、価値の高い操作に対する手動レビューといった、状況に見合った対応を引き起こすリスク入力として使うのが最適です。そのパターンはVPN検出の誤検知を減らすにまとめてあります。また、不正スコアチェッカーでは、IPのシグナルをメール、電話番号、User-Agentの証拠と組み合わせて、0〜100の1つのスコアにする方法を確認できます。

試すには、自社のログにあるアドレスで GET https://ipto.to/v1/ip/:ip を呼び出し(無料、サインアップ不要、1日1,000リクエスト)、ASNと並んでいるフラグを確認してください。レスポンスのスキーマはAPIドキュメントにあります。

率直な回答

IPアドレスがASNによってホスティングまたはデータセンターのネットワークに属しているか、また既知のVPN、プロキシ、Tor出口アドレスの公開リストに載っているかを確認します。2つを組み合わせると、証明ではなく確率的な推定が得られます。
新規またはローテーションされたサーバーはまだどのリストにも載っていないことがあり、住宅用プロキシは一般の家庭回線に見え、小規模な範囲のセルフホストVPNは決してリストされないかもしれません。否定的な結果は、そのアドレスがVPNとして知られていないことを意味します。
多くのVPN利用者は正当なユーザーなので、通常は推奨しません。フラグは、追加の認証やレビューといった状況に見合ったステップを加えるリスクシグナルとして使うほうが効果的です。
← ブログに戻る