誰にも名前を付けられないトラフィック
アプリケーションのログを詳しく見ると、説明のつかないリクエストが見つかります。ブラウザの文脈を持たないクライアントから来ており、user-agent strings は一般的だったり、空だったり、よく知られたブラウザのものをコピーしていたりします。リクエスト署名もしません。誰が送ったのかも述べません。無害なスクリプトもあれば、実際のユーザーのために動くエージェントもあります。まったく提供したくないツールもあります。
これが unknown automated traffic です。多くのチームはこれを 2 つのどちらかで扱います。ひとつは、人間として静かに数えてしまい、分析を歪めてリスクのある活動を通してしまう方法です。もうひとつは、既定で敵対的だとみなしてしまい、正当なユーザーやエージェントまで他のものと一緒にブロックしてしまう方法です。どちらも同じ欠点を持っています。欠けている証拠を、仮定で置き換えているのです。
Proof of Actor は逆の見方を取ります。証拠が信頼できる判断を支えないなら、正しい答えは Unknown です。そして Unknown は、可視で、測定できて、意図的に扱えるべきです。ブログ記事 なぜ Unknown は AI トラフィックに対する有効な結果なのか で、その考え方を詳しく説明しています。
なぜ Unknown が第一級の結果なのか
Proof of Actor は、すべてのインタラクションを Human, Human + AI, Agent, Unknown の 4 クラスのいずれかに分類します。Unknown はエラー状態でも、製品の欠落でもありません。これは明確な意味を持つ、意図的な結果です。つまり、利用可能な証拠では信頼できる判断を支えられないということです。
この正直さには、実務上の利点があります。
- 分析の精度が保たれます。 Human と Agent の件数は、裏付ける証拠があるインタラクションだけを含むため、数字の意味がぶれません。
- カバレッジを測定できます。 各ルートでの Unknown の割合を見ることで、どこに追加の証拠が必要かが正確に分かります。
- ポリシーをより安全にできます。 不確かなケースは、黙って信頼済みとして扱われたり、推測でブロックされたりせず、あなたが選んだフォールバックに流れます。
Unknown は Human に変換されることはなく、既定で悪意あるものとして扱われることもありません。詳しくは、Unknown classification の用語集エントリ、Detection & Limitations、そして なぜ Unknown は AI トラフィックに対する有効な結果なのか を参照してください。websites と APIs のユースケースでは、チームが実際に Unknown のフォールバックをどう設定するかを示しています。
Unknown な自動トラフィックはどこから来るのか
発生源を理解すると、扱い方を決めやすくなります。
署名されていない自動クライアント
HTTP Message Signatures によるリクエスト署名は、RFC 9421 で定義されており、これは任意です。また、IETF Web Bot Auth working group は、こうした方法で自動クライアントをどう認証するかを現在も標準化しています。署名がなければ、クライアントの身元は、自分自身について何を名乗るかに依存します。
コピーされた、または一般的な user agents
user-agent strings は簡単に設定できます。有名なブラウザやクローラーを名乗るクライアントが、本当にそうである場合もあれば、そう装っている場合もあります。 user-agent spoofing のエントリでは、このヘッダーだけでは分類を担えない理由を説明しています。検索エンジンが別の検証方法を文書化しているのも、このためです。Google は Googlebot の検証 のために逆引きと順引きの DNS ルックアップ、および公開 IP 範囲を示しており、Bing は Bingbot の検証 に同じ DNS チェックを示しています。
統合がないルート
ルートにブラウザ統合がなく、基本情報以外のサーバー側コンテキストもない場合、観測できるものは単純に少なくなります。そうしたルートでの Unknown は、脅威ではなくカバレッジの兆候です。
証拠の不足または遅延
タイムアウト、スクリプトのブロック、または不完全なリクエストにより、証拠が足りない結果になることがあります。Proof of Actor は、その不足を埋めずに、正直に報告します。
Proof of Actor が Unknown を扱えるものにする方法
Proof of Actor は、作業を 3 つの機能に整理しています。どれも未知の自動トラフィックに役立ちます。
Detect: Unknown を分離して保つ
シグナルは、verified, declared, inferred, unknown の基準で確認され、ラベル付けされます。判断を支えない場合、結果は Unknown となり、利用できたものとできなかったものの要約が付与されます。別のクラスに推測で押し込まれることはありません。
Understand: Unknown がどこにあるかを見る
Understand ビューでは、Unknown が各内訳、ルート別、時間経過ごとに表示されます。どのルートに未知の活動が最も多いか、統合を追加した後にどう変わるか、個々のインタラクションでどの証拠が存在したかを確認できます。これにより、曖昧な不安が具体的な地図に変わります。
Route: ルートごとにフォールバックを選ぶ
ルートごとに、異なるフォールバックが必要です。多くのアプリケーションにとって、妥当な出発点は次のとおりです。
- 公開ページとドキュメント: 標準の rate limits で Unknown を allow する。
- Signup と onboarding: 既存のチェックは維持し、自社の条件が必要とする場合にのみ review を追加する。
- アカウント変更やその他の機微なアクション: actor の推測ではなく、既存の認証と step-up controls に依拠する。
- 影響の大きい API 操作: その API がすでにサポートしている、より強い認証情報または controls を要求する。
未知のトラフィックの扱い方 のガイドでは、各リスク層ごとの fail-open と fail-closed の選択を含め、これらのフォールバック設計を解説しています。
時間とともに Unknown を縮小する
目標は、Unknown を一晩でなくすことではありません。適切な理由で、毎月少しずつ小さくすることです。
- 重要な場所に統合を追加する。 キーページにブラウザ統合を、主要ルートにサーバー側統合を入れると、利用可能な証拠が増えます。
- 署名付きリクエストをサポートする。 エージェント運用者が HTTP message signatures を採用すると、Unknown だったトラフィックは、検証済みの Agent トラフィックになります。
- 自社アプリで宣言を記録する。 アプリケーションが AI 支援の関与を把握しているなら、それを明示してください。その証拠は正確で、コストも低いです。
- エージェントの入口を用意する。 エージェント向けに構造化された経路を公開すると、隠れるのではなく名乗る動機になります。
Proof of Actor はルートごとに Unknown を追跡するため、これらの変化を数値で確認できます。
仕組み
すべてのインタラクションは、How It Works で詳しく説明されている同じ証拠優先の流れに従います。アプリケーションがリクエストまたはイベントを受け取り、統合がそのコンテキストで利用できるシグナルを収集し、シグナルは正規化され、明示的な基準付きで分類され、その結果は分析のために記録され、アプリケーションは独自のポリシーを適用するか、単に観測します。
タイムアウトと不足したテレメトリーは、明示的に処理されます。統合はそのルートで選んだフォールバックを使い、証拠が不足していたという理由で結果が Human に格上げされることはありません。
数か月後に良い状態とはどう見えるか
未知の自動トラフィックをうまく扱うチームは、たいてい同じ健全な状態に行き着きます。Unknown は、重要なすべてのルートで既知の量になり、人間とエージェントの活動と同じダッシュボードで追跡されます。各ルートには、プロダクト、プラットフォーム、セキュリティの各チームが合意した文書化済みのフォールバックがあります。より多くの運用者がリクエストに署名するにつれて、verified なエージェントトラフィックは増え、それらのエージェントはページをスクレイピングするのではなく、構造化された経路で提供されます。機微なアクションは、アプリケーションがすでに信頼している認証と step-up controls で保護され、actor の文脈はゲートキーパーではなく追加の入力として扱われます。
最も重要なのは、誰も推測していないことです。先週のトラフィックのうち、どれだけが自動だったのかを尋ねられたとき、答えはその基準とともに示されます。これだけが verified、これだけが declared、これだけが inferred、そしてこれだけがまだ Unknown です。これは、チームが計画の土台にできる数字です。また、経営層との会話も変えます。問題は「ボットが問題かどうか」ではなく、「どのルートにもっと証拠が必要で、どのフォールバックを洗練すべきか」になるからです。
観測モードから始める
Proof of Actor は、既定では何もブロックしません。観測モードでは、結果は記録される一方で、アプリケーションはこれまでどおり応答します。チームは、各ルートが受け取る未知の自動トラフィック量を把握し、すでに分かっている成果と比較し、実際のパターンに基づいてフォールバックを設計できます。ポリシーは 1 ルートずつ有効化され、チームが適合すると確信したときにのみ適用されます。
Founding Developer Program に参加する
Proof of Actor は private beta です。選定された founding developer team は、合意された利用上限の範囲で、製品フィードバックへの協力と引き換えに、最大 12 months の無料アクセスを受けられます。さらに、当社のエンジニアによる直接の統合支援も提供されます。
未知の自動トラフィックが分析やセキュリティ判断を曇らせているなら、early access に申し込む をご利用ください。アプリケーションのこと、そして Unknown が最も重要になるルートについてお知らせください。
Proof of Actor を確認し、how it works を読み、または 証拠で何が立証できるか をご覧ください。
出典
- RFC 9421: HTTP Message Signatures, IETF, February 2024.
- Web Bot Auth (webbotauth) working group charter, IETF.
- Verifying Googlebot and other Google crawlers, Google Search Central.
- How to verify that Bingbot is Bingbot, Bing Webmaster Blog.