レジデンシャルプロキシ:IP ブロックリストが効かなくなった理由
攻撃者のトラフィックを普通の家庭のトラフィックに変えてしまった日用品のようなサービス——アドレスはどこから来るのか、遮断がなぜ罠なのか、代わりに何を採点すべきか。
何が、いつ変わったのか
Web の歴史のほとんどの期間、敵対的な自動化は居場所を特定しやすいものでした。データセンターから来ていたのです。アドレスはホスティング事業者のもので、自律システムは調べればわかり、レンジごと遮断しても顧客はそこに住んでいないので何のコストもありませんでした。
この経験則は死にました。しかも技術的にではなく、商業的に死にました。レジデンシャルプロキシ網はいまや、普通の家庭回線・モバイル回線に属する数百万のアドレスへのアクセスを、ギガバイト単位の価格で、セルフサービスの管理画面つきで、リクエストごとのローテーション込みで販売しています。
その結果、攻撃者のトラフィックは顧客とまったく同じアドレス空間から届くようになりました。似た空間ではなく、同じ空間、しばしば同じ ISP、ときには同じ都市からです。
「このアドレスはそれ自体で怪しいか」を土台に組んだ制御はすべて、リストを改善しても直らない見逃しの問題を抱えることになりました。
アドレスはどこから来るのか
これは重要です。何なら安全にやってよいかが、ここで決まるからです。
同意のあるものがあります。無料 VPN、ブラウザ拡張、スマホゲームを入れた人が、その規約のどこかで「使っていない帯域は転売される」と告げられている。弁護士がこの語を使う意味では、同意したことになります。
かろうじて同意のあるものがあります。本当に欲しかったアプリに同梱された SDK で、開示文は形式上は存在し、実際には読まれないように書かれています。
まったく同意のないものもあります。乗っ取られたルーター、IoT 機器、マルウェアによってプロキシ網へ登録されたスマートフォン。持ち主は自分の回線が転売されていることを知りません。
つまりレジデンシャルプロキシのアドレスの背後には、たいてい、あなたを攻撃していない実在の人がいて、その人はしばしば自分の回線が使われていることすら知りません。アドレスを遮断するのが誤った一手である理由は、まさにここにあります。
プロキシ一覧を買っても解決しない理由
分かりやすい答えは、既知のレジデンシャルプロキシ・アドレスのフィードを買って遮断することです。これは、互いに重なり合う四つの理由で失敗します。
プールはリストより速く回ります。アドレスはセッションの間だけプールにいて、その後はいません。フィードが載せる頃には、そのアドレスはただの家庭の回線に戻っているかもしれません。
リストは、痛いほうに向かって古びます。使い回されたアドレスでの誤検知は実在の顧客を遮断しますが、あなたには伝わりません。決済できなかった人は不具合報告を書かず、去るだけです。
カバー率はごく一部です。プール規模の推定は数千万アドレスに達します。すべてを持つフィードはなく、持っている分は「見つけるのが安かった分」です。
そして依然として問う相手が違います。「このアドレスはプールにいるか」は「このセッションは自動化されているか」ではなく、あなたが知りたいのは後者だけです。プライバシー VPN のジャーナリストとレジデンシャルプロキシのスクレイパーが同じアドレスを共有することはあり、片方は通すべきなのです。
この変化を生き延びるもの
アドレスではなくセッションを記述するもの、すべてです。
トランスポートのフィンガープリント。プロキシはバイトを中継するだけで、TLS ハンドシェイクを書き換えません。接続を張ったクライアントは、依然として自分の順序づけられた暗号スイート・拡張・曲線の集合——JA3 または JA3N ハッシュ——を名乗ります。レジデンシャルアドレスの背後にあるスクレイピングライブラリは、やはりスクレイピングライブラリに見えますし、ここで本物のブラウザを装うとは、ヘッダーを書き換えることではなく暗号スタック一式を再現することを意味します。
振る舞い。タイピングのタイミングなしにフォームを埋め、人の手が生まないやり方でフォーカスを動かし、人がページを読み終えられたとは思えない速さで送信するセッションは、誰の回線を借りていようと自動化されています。
アドレス単位ではなくアカウント単位の頻度。クレデンシャルスタッフィングの兆候は「一つのアドレスから多数の試行」ではありませんでした——ローテーションが安くなった時点でそれは成り立たなくなりました。兆候は「四百のアカウントに一回ずつ」であり、それはアドレスごとのリクエスト数を数えるのではなく、行為主体を採点する何かがあって初めて見えます。
整合性。iOS の Safari を名乗りながら、どの iOS ビルドも出さない TLS フィンガープリントを提示するクライアントは自己矛盾しており、プロキシはその点で助けになりません。
持つ価値のあるレピュテーション
アドレスのレピュテーションはこの変化で無用になったわけではありません。正しく重み付けする必要があるだけです。
アドレスがどれだけ共有されているかで重み付けする。家庭向け ISP やモバイルキャリアへ解決するアドレスはおそらく共有されており、一件の悪いセッションがその評価を動かす幅は、専有のデータセンターホストからの同じセッションよりずっと小さくあるべきです。ここを誤ることが、社内の一人がスクレイパーを走らせたせいで企業ごと遮断してしまう道筋です。
減衰させる。回転するプール上のレピュテーションは速く古びなければなりません。さもないと、先月の借り手のために来月の持ち主を罰することになります。
初回接触ではサイト横断のシグナルを優先する。アドレスが初めて現れたとき、あなたに履歴はありません。それが昨夜よそのログインに認証情報リストを流していたなら、それは知る価値があり、しかも最初の一リクエストで役に立つ唯一のものです。
人間の拒否権を残す。採点が何と言おうと、それを覆す許可リストが必要で、しかも実際に手入れし続ける必要があります。
Karma の立ち位置
Karma はセッションを採点し——行動シグナルと TLS/HTTP2 フィンガープリント——アドレスのレピュテーションは答えではなく重み付けされた入力として保ちます。共有らしく見えるアドレスは共有として扱われ、レピュテーションは減衰します。
任意参加の共有プールは初回接触の場合を埋めます。別のアカウントのサイトでボットのように振る舞ったアドレスは、あなたのところへ届く前に既知になります——サイトごとのブロックリストが何も言えない、まさにその瞬間にです。
無料の Detect プランは、これを遮断オフのまま走らせます。何かを変える前に、トラフィックのどれだけがレジデンシャル空間から来ていて、判定がそれについて何と言っているかを見ることができます。