ボットフィードバックループ
ボットフィードバックループは、Cloudflareがボット管理においてリクエストを誤ってスコアリングした場合に、顧客が直接フィードバックを送信する方法です。顧客が偽陰性または偽陽性の報告を提出すると、Cloudflareはこのデータを手動で分析し、次の機械学習モデルのトレーニングデータセットとして使用します。
ボットフィードバックループは、エンタープライズボット管理の顧客向けに利用可能です。詳細についてはプランをご覧ください。
偽陽性は、Cloudflareがブラウザ、モバイルアプリケーション、またはデスクトップアプリケーションを使用している人からのリクエストを_自動化された_または_自動化されている可能性が高い_範囲でスコアリングした場合に発生する可能性があります。
Cloudflareがあなたのサイト上の自動トラフィックの一部を検出できない場合、偽陰性の報告を提出することで、将来的にそれをキャッチするのに役立ちます。
| サブタイプ | 定義 |
|---|---|
| アカウント作成の悪用 | サイトリソースにアクセスするために多くの新しいアカウントを自動的に作成すること。 |
| 広告詐欺 | 広告がクリックされたり表示された回数を不正に増加させること。 |
| クレジットカードの悪用 | 多くのクレジットカード番号または異なる検証詳細を持つ同じクレジットカード番号を繰り返し検証しようとすること。 |
| キャッシング | 価値のある商品を取得するためにターゲットのインターネットアプリケーションを悪用すること。 |
| ログインの悪用 | 多くの異なるユーザー名とパスワードの組み合わせを使用して、パスワード保護されたインターネットアプリケーションの一部にアクセスしようとすること。 |
| 在庫の悪用 | 限定在庫を購入したり、他の人が取引を行うのを防ぐために在庫を保持することに関連する自動化された悪用。 |
| サービス拒否 | インターネットアプリケーションが機能しないようにサーバーリソースを使い果たすことを意図した自動リクエスト。 |
| 加速 | インターネットアプリケーションの使用を自動化して、人間の訪問者よりも早く取引を行い、不当な利益を得ること。 |
| ファジング | 形式が不正なデータ注入を使用して実装バグを見つけること。 |
| スクレイピング | インターネットアプリケーションから価値のあるまたは独自の情報を自動的に取得すること。 |
| スパム | スパムを送信するためにコンテンツフォームを悪用すること。 |
| トークンクラッキング | アプリケーション内で何らかの形のユーザー利益を提供する有効なトークンコードを特定すること。 |
| 脆弱性スキャンニング | 識別可能、推測可能、未知のコンテンツの場所、パス、ファイル名、パラメータを系統的に列挙および調査し、弱点やセキュリティ脆弱性が存在する可能性のあるポイントを見つけること。 |
- Cloudflareダッシュボード ↗にログインし、アカウントとドメインを選択します。
- セキュリティ > ボットに移動します。
- 1つ以上のボットスコアフィルターを適用します。
- 不正確なデータを報告を選択し、フォームに記入します。
- 送信を選択します。
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/bot_management/feedback' \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>" \--header "Content-Type: application/json" \--data '{ "type": "false_positive", "description": "正当な顧客が低スコアを持っている", "expression": "(cf.bot_management.score le 46 and ip.geoip.asnum eq 132892 and http.host eq \"api-discovery.theburritobot.com\" and cf.bot_management.ja3_hash eq \"3fed133de60c35724739b913924b6c24\")", "first_request_seen_at": "2022-08-01T00:00:00Z", "last_request_seen_at": "2022-08-10T00:00:00Z", "requests": 100, "requests_by_score": { "1": 50, "10": 50 }, "requests_by_score_src": { "heuristics": 25, "machine_learning": 75 }, "requests_by_attribute": { "topIPs": [ { "metric": "10.75.34.1", "requests": 100 } ], "topUserAgents": [ { "metric": "curl/7.68.0", "requests": 100 } ] }}'# 出力Nullcurl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/bot_management/feedback' \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>"// 出力[ { "created_at": "2022-08-19T00:05:24.749712Z", "type": "false_positive", "description": "正当な顧客が低スコアを持っている", "expression": "(cf.bot_management.score le 46 and ip.geoip.asnum eq 132892 and http.host eq \"api-discovery.theburritobot.com\" and cf.bot_management.ja3_hash eq \"3fed133de60c35724739b913924b6c24\")", "first_request_seen_at": "2022-08-01T00:00:00Z", "last_request_seen_at": "2022-08-10T00:00:00Z", "requests": 100, "requests_by_score": { "1": 50, "10": 50 }, "requests_by_score_src": { "heuristics": 25, "machine_learning": 75 }, "requests_by_attribute": { "topIPs": [ { "metric": "10.75.34.1", "requests": 100 } ], "topUserAgents": [ { "metric": "curl/7.68.0", "requests": 100 } ] } }]| フィールド | 型 | 説明 | 値の例 |
|---|---|---|---|
type | string | フィードバックレポートのタイプ。 | false_positive |
description | string | 問題に関する詳細を含むフィードバックレポートの説明。 | 正当な顧客が低スコアを持っている。 |
expression | string | 報告されたリクエストに一致するワイヤーフィルター式。 | (cf.bot_management.score le 46 and ip.geoip.asnum eq 132892 and http.host eq "app.example.com" and cf.bot_management.ja3_hash eq "3fed133de60c35724739b913924b6c24") |
first_request_seen_at | string | 最初のリクエストが見られた時の範囲の開始時刻、RFC 3339形式。 | 2022-08-01T00:00:00Z |
last_request_seen_at | string | 最後のリクエストが見られた時の範囲の終了時刻、RFC 3339形式。 | 2022-08-10T00:00:00Z |
requests | integer | 報告されたリクエストの総数。 | 100 |
requests_by_score | object | スコア別のリクエストの内訳。 | 以下の例を参照。 |
requests_by_score_src | object | スコアソース別のリクエストの内訳。 | 以下の例を参照。 |
requests_by_attribute | object | 属性別のリクエストの内訳(オプション)。 | 以下の例を参照。 |
requests_by_score
{ "1": 50, "10": 50}requests_by_score_src
{ "machine_learning": 75, "heuristics": 25}requests_by_attribute
{ "topIPs": [ { "metric": "10.75.34.1" "requests": 100 } ], "topUserAgents": [ { "metric": "curl/7.68.0", "requests": 100 } ] }| フィールド | 型 | 説明 |
|---|---|---|
cf.bot_management.ja3_hash | string | これはSSL/TLSフィンガープリントを提供し、潜在的なボットリクエストを特定するのに役立ちます。 |
cf.bot_management.score | integer | これはリクエストがボットから発生する可能性を1-99のスコアで表します。 |
http.host | string | これは完全なリクエストURIで使用されるホスト名を表します。 |
http.request.uri.path | string | これはリクエストのURIパスを表します。 |
http.user_agent | string | これはクライアントのオペレーティングシステムとウェブブラウザを識別するための特徴的な文字列を含むリクエストヘッダーであるHTTPユーザーエージェントを表します。 |
ip.geoip.asnum | integer | これはクライアントIPアドレスに関連付けられた自律システム(AS)番号を表す16ビットまたは32ビットの整数です。 |
ip.geoip.country | string | これはISO 3166-1 Alpha 2形式の2文字の国コードを表します。 |
ip.src | string | IPのソースアドレス。 |
報告を提出する際は、ボット分析ダッシュボードで利用可能なフィルターを使用して、報告に不正確なスコアを受けたトラフィックのみが含まれるようにしてください。スコアでフィルタリングすることに加えて(必須)、ユーザーエージェント、IP、ASN、またはJA3でフィルタリングして、不正確にスコアリングされたトラフィックのセクションをより正確に強調表示することをお勧めします。
一部のトラフィックが不正確なスコアを受けたかどうか不明な場合は、そのトラフィックを報告に含めてください。
ドメインへの通常のトラフィックの文脈でこれらのリクエストをよりよく理解するのに役立つ可能性のあるコメントを説明フィールドに残していただけると幸いです。
偽陽性を提出した後、将来的にこのトラフィックソースが悪用されることがないと確信している場合は、トラフィックを明示的に許可できます。トラフィックを許可するには、偽陽性レポートの特性に一致する残りのカスタムルールをスキップするアクションを持つWAFカスタムルールを作成できます。作成するスキップルールは、リクエストメソッドやURIを制限するなど、期待されるトラフィックがアクセスできる範囲をできるだけ狭くすることをお勧めします。これにより、潜在的な悪用を制限できます。
- **JA3/JA4フィンガープリント**を許可する: 専用IPから来ない安定したソフトウェアクライアントへのアクセスを許可したい場合、そのクライアントが使用しているJA3フィンガープリントをBot Analyticsダッシュボードで調べ、そのJA3フィンガープリントに基づいてトラフィックを許可するWAFカスタムルールを作成することで実現できます。JA3フィンガープリントはクライアントのTLSライブラリにのみ一致するため、他のクライアントとの重複やオペレーティングシステムに基づく変動に注意してください。
Cloudflareは、悪用される可能性のあるモバイルアプリケーションにJA3ルールを依存することを推奨していません。モバイルアプリケーションからのトラフィックを安全に許可する方法について質問がある場合は、アカウントチームにお問い合わせください。
- IPアドレスを許可する: トラフィックを許可するためにIPアドレスを使用するのは、そのIPが許可したいトラフィックソースのみに属する専用リソースである場合のみです。
許可したいトラフィックが他のトラフィックソースとIPを共有している場合や、IPが頻繁に変更される場合は、IPアドレスによる許可の代替手段を検討してください。
偽陰性レポートを提出した後、IPアドレス、JA3フィンガープリント、ASN、ユーザーエージェントなどの特性の組み合わせを使用して、誤ってスコア付けされたトラフィックを明示的にブロックまたはレート制限できます。JA3フィンガープリントに基づいてブロックまたはレート制限を行う前に、そのフィンガープリントが正当なトラフィックソースによって使用されていないことをBot Analyticsで確認してください。