過去1年間プロキシを探したことがあれば、同じ3つのラベルをどこでも目にしたはずだ。residential、ISP、datacenter。このラベルはあまりにも馴染みがあるため、ほとんどのチームはカテゴリを一つ選んで先に進んでしまう。その下にある仕組みはそれほど知られておらず、本番環境での問題の多くはそこから生まれている。
これは、IPが実際には何であるか、対象となるサイトがそこから何を読み取っているか、そして「residential」がなぜ二値分類ではなくスペクトルのようなものなのかについての解説だ。
IPアドレスが実際に表すもの
IPアドレスはルーティング番号だ。公共のインターネットに接続されたマシン上のネットワークインターフェースを指す。これがその機能的な定義のすべてだ。
それ以外のもの、residentialとdatacenterの区別、地理的な関連、IPの「レピュテーション」は、外部の関係者によってその上に重ねられたメタデータだ。IP自体はそれらの情報を何も持っていない。データベースに照会することで、「このIPはネットワークXに属し、Xは事業体Yが所有し、データベースはタイプZに分類している」ということがわかる仕組みだ。
最も重要な2つのメタデータは以下の通りだ。
ASN(Autonomous System Number)。 インターネット上のすべてのIPブロックはASNに登録されている。ASNは組織に属する。Comcast(AS7922)、Verizon(AS701)、Cloudflare(AS13335)、Amazon AWS(AS16509)などだ。対象サイトがリクエストを受信すると、そのアンチボット層が最初に行うのは、送信元IPのASNを照会し、どのような組織がそれを所有しているかを確認することだ。
Geolocation(地理位置情報)。 別のデータベース(MaxMind GeoIP2、IP2Location、または各社の自社データベース)がIPブロックを地理座標にマッピングする。精度は国レベル(非常に信頼できる)から都市レベル(おおむね信頼できる)、番地レベル(おおむね架空)まで幅がある。サイトはこれを使って、訪問者がどこにいると見なすか、価格をどの通貨で表示するか、どの地域結果を表示するかを決定する。
これら2つはいずれも外部データベースだ。IPは自分がどの国にあるかを知らない。IPは誰が所有しているかを知らない。すべての関係者が同じプロバイダー群を参照しており、それらのプロバイダーは時に互いに一致しないこともある。
3つのIPカテゴリ、仕組みの面から
ここでラベルの話に戻る。
Datacenter IP。 ASNはホスティングプロバイダー、AWS、GCP、Azure、OVH、Digital Ocean、Hetznerなどに属する。IPブロックは主要なレピュテーションデータベースで「hosting」に登録されている。Geolocationはコロケーション施設のある場所にマッピングされる。これらのIPは安価に取得できるが、residentialとしてのレピュテーションはほぼゼロなので、能動的な防御を行う対象サイトはデフォルトで高い疑いをかける。
Residential IP。 ASNは消費者向けISP、Comcast、Spectrum、Deutsche Telekom、BT、Free、NTT、その他数千の地域プロバイダーに属する。IPブロックはレピュテーションデータベースで「residential」または「consumer」に登録されている。Geolocationは、そのISPがサービスを提供する家庭のエリアにマッピングされる。これらのIPには、長年にわたる「実在する消費者」としての行動履歴(その家庭の誰かがNetflixを視聴し、Twitterを閲覧し、Steamでゲームをする)が関連付けられているため、レピュテーションデータベースはこれらに肯定的な事前評価を与えている。
ISP IP。 ASNは消費者向けISPに属するが、実際にトラフィックが出ていくマシンはデータセンター内に置かれている。ISPが自社のアドレス空間の一部をコロケーション顧客に割り当て、その顧客がそこを通してトラフィックをルーティングしている。ASN照会は「residential ISP」と答え、レピュテーションデータベースは「residential」と答える。しかしトラフィックはデータセンターの速度で動く。これが「ISP proxy」というカテゴリであり、まさに対象サイトのアンチボット判定がASN照会に基づいて行われ、実際のホスティングの実態には基づいていないために存在する。
このラベルは嘘をついているわけではない。上流の照会結果に実際に現れる、観測可能な違いをそのまま反映している。ただし「物理マシンがどこにあるか」までは反映しておらず、対象サイトの多くはそこまで確認していない。
対象サイトが段階的に読み取っているもの
防御されたサイトにリクエストが届くと、アンチボット層は通常、次のような手順を踏む。
1. ASN照会。 送信元IPをASNデータベースに照会する。結果は、所有ネットワークの名前とその分類(residential / hosting / business / mobile / unknown)だ。
2. IPレピュテーション照会。 送信元IPを、ウェブ全体からの信号を集約したレピュテーションデータベースと照合する。このIPはクレデンシャルスタッフィングに関与していたか。コメントスパムか。スクレイピングか。レピュテーションスコアはIPごとに算出され、信号を共有するサイト群からのデータで構成される(Cloudflareが最大のプールを運用しており、小規模な事業者はそこから消費するか、専門業者に料金を払っている)。
3. Geolocation照会。 送信元IPを国、しばしば都市にマッピングする。サイトはこれを使ってレスポンスをローカライズする(価格、言語、規制上の開示事項、利用可能な製品)。
4. フィンガープリントチェック。 これはIPとは独立しているが、サイトはこれを並行して実行する。リクエストのUser-Agent、TLSハンドシェイクの順序(JA3/JA4)、ブラウザが発する信号(canvas、フォント、WebGL)はすべてフィンガープリント化され、既知のボットのフィンガープリントと比較される。
5. 行動履歴。 セッションに連続性がある場合(クッキー、複数リクエストにわたるフィンガープリントの一致)、サイトは複数リクエストにわたるパターンを見る。1分あたり何ページ閲覧しているか。クリックの間隔はどれだけ自然か。訪問者はスクロールしたか。ホバーしたか。
クリーンなresidential IPは、ステップ1、2、3を問題なく通過する。サイトは「Comcast、residential、US-East、中立的なレピュテーション」を確認し、実際のページを提供する。フィンガープリントと行動チェックは実施されるが、事前評価はdatacenter IPに対するものよりずっと寛容だ。
datacenter IPはステップ1で即座に疑いをかけられる。サイトはリクエストの本文を読む前から、劣化版の提供、ブロック、CAPTCHAの表示を正当化できる。
ISP IPはASNレベルではresidential IPと見分けがつかないため、ステップ1を同様に通過する。レピュテーションデータベースが時にこれを検出することもある(一部の専門業者は「このIPブロックは非常に非人間的なタイミングパターンでリクエストをホストしている」と検知する)が、多くはまだresidentialとして分類している。
なぜ「residential」だけでは不十分なのか
residentialのASNは門を通過させてくれる。それ以上のことは何も保証しない。
residential IPでも、サイトがまだ見ることができるものがある。
- IPごとのリクエスト量。 residential IPが1分間にサイトの製品ページへ500リクエストを送っている場合、「家庭からの訪問者」とは一致しない。クリーンなASNであっても、レートそのものが信号となる。
- TLSフィンガープリント。 実際のブラウザは特定のTLS暗号スイートの順序、拡張機能のリスト、ALPNの値を生成する。Pythonの
requestsライブラリを使うスクレイパーは異なるTLSフィンガープリントを生成し、これは何年も前から目録化され、認識されている。residential ASN + Python TLS = 明白なボットだ。 - ヘッダーの異常。 実際のブラウザは特定の順序で特定の値を持つ数十のヘッダーを送信する。Accept-Languageの欠落、Sec-Ch-Uaの不一致、Chromeの実際の発行順序と一致しない順序、これらすべてが信号となる。
- 行動の特徴。 実際の訪問者はホバーし、スクロールし、離脱し、また戻ってくる。ボットはページを直線的に渡り歩く。セッションあたりのページ数、ページ滞在時間、マウスイベントの有無、これらすべてが測定されている。
residential IP上で動作するスクレイパーが、上記のいずれにも対処しなければ、いずれ分類されてしまう。IPは単に時間を買っているだけであり、不可視性を買っているわけではない。持続的なデータ収集で成功しているチームは、スタックの他の部分にも投資している。現実的なUser-Agent、強化されたヘッドレスブラウザ、まともなリクエストの間隔、それらしいセッションの形だ。
ネットワークを選ぶ際に意味すること
いくつかの実践的な含意がある。
プールサイズは1つの信号に過ぎず、すべてではない。 2億のresidential IPを持つプールがあれば、個々のIPがバーンされた際の代替オプションが増える。しかし、それによって個々のIP自体が検出されにくくなるわけではない。同じくらい重要なのは、バーンされたIPをローテーションで外し、新しいIPを投入し、時間の経過とともにASN/地理的な多様性を維持できるネットワークの能力だ。
購入者が通常考えているよりも、調達方法の方が重要だ。 透明性のあるオプトイン契約を通じて、同意したユーザーから調達されたIPは、実際の消費者トラフィックとしての振る舞いを回線上でより自然に見せる(それらは間欠的に使用される、実際の消費者トラフィックそのものだからだ)。透明性の低いチャネルを通じて調達されたIPは、アンチボットシステムが特に学習して認識している行動フィンガープリントを持つことが多い。
ある作業負荷にとって正しいネットワークが、別の作業負荷にとって正しいわけではない。 寛容な対象に対するファンアウト型のスクレイピングパイプラインは、リクエストごとのローテーションを行う巨大なプールから利益を得る。長期にわたるアカウント管理のワークフローには、セッション永続性を持つ固定のISP IPが必要だ。複数ステップのブラウジングを行うAIエージェントには、実行ごとの粘着性のあるresidentialセッションが必要だ。単一の「最良の」ネットワークを選ぶという発想自体が間違っている。
IPは多くの信号の1つに過ぎない。 完璧なresidential IPであっても、リクエスト自体がロボットのように見えれば、ブロックされることがある。逆に、完璧ではないIPでも、周囲のリクエストの形がそれらしければ成功することがある。IP層は必要条件だが、十分条件ではない。
まとめ
residentialプロキシネットワークを選ぶとき、問うべき問いは「それはresidentialか」ではない(信頼できるすべてのネットワークのIPはASNレベルでresidentialだ)。問うべきなのは以下だ。
- そのネットワークはIPをどのように調達しているか
- バーンされたIPをどのくらい速くローテーションで外しているか
- プールは地理的にもASN的にどれだけ多様か
- 必要な時にゲートウェイはどれだけセッション状態を保持できるか
- ゲートウェイから出て行くときのリクエストの形はどうなっているか
これらは答えられる問いであり、その答えは見出しのプールサイズよりも重要だ。「residential」というラベルの下にある仕組みこそが、実際の品質が存在する場所であり、実際の本番環境での挙動が決まる場所だ。