ボットの種類によって必要な検知戦略が異なるため、Cloudflare は複数の検知エンジンを使います。単純なボットは既知のシグネチャとのパターン照合で捉えられます。高度なボットには、機械学習と行動分析が必要です。
ドメインで使えるエンジンは、プランによって異なります。
Heuristics エンジンは、すべてのリクエストを処理します。Cloudflare は自動トラフィックを特定するために複数のヒューリスティック検査を行い、リクエストを増え続ける悪意あるフィンガープリントのデータベースと照合します。
JavaScript Detections(JSD) エンジンは、ヘッドレスブラウザーやその他の悪意あるフィンガープリントを識別します。このエンジンは、厳格なプライバシー基準 ↗ を守りながら、任意のリクエストのクライアント側に軽量で不可視の JavaScript を注入します。この過程で個人を特定できる情報は収集しません。JSD エンジンは、リクエストをブロック、チャレンジ、またはほかのエンジンへ渡します。
JSD は完全に任意です。設定を変えるには、Security > Bots から Super Bot Fight Mode を構成します。
機械学習(ML) エンジンは、検知の大部分を担い、人間のトラフィックとボットのトラフィックを区別します。この方式は、1 日あたり数十億件のリクエストをプロキシするグローバルネットワークを活用し、自動化トラフィックと人間のトラフィックの両方を識別します。
ML システムは教師あり機械学習の手法で、最終的な Bot Score(1~99)を決定します。
コアモデルは次のプロセスに依存します。
- 入力変数(X): Cloudflare ネットワーク全体のトラフィックから収集した、さまざまなリクエスト特徴(ヘッダー、セッション特性、ブラウザーシグナル)。
- 出力変数(Y): クライアントが人間である予測確率(Challenge を正常に解く確率など)。この確率が最終的な 1~99 の Bot Score にマッピングされます。
ML エンジンは、膨大な匿名化データを使い、定期的に再学習します。精度を維持し、新しい脅威に適応するためです。お客様は、これらのモデルが使うリクエスト特徴を、Cloudflare の Logpull や Logpush などのログで分析できます。
ML エンジンは、likely automated のトラフィックを特定します。
異常検知(Anomaly Detection、AD) エンジンは、教師なし学習の一種を使うオプションの検知エンジンです。Cloudflare はドメインのトラフィックのベースラインを記録し、そのベースラインを使って外れ値リクエストを検知します。この手法は User-Agent に依存せず、アカウントチームがオン / オフできます。
Cloudflare for SaaS を使うドメインや、大量の API トラフィックが見込まれるドメインには、AD は推奨しません。AD エンジンは自動リクエストにすぐスコア 1 を付けます。
Cloudflare は __cf_bm Cookie を使い、ボットスコア を平滑化し、実際のユーザーセッションでの誤検知を減らします。
Bot Management Cookie は、1 人のユーザーのリクエストパターンを計測し、機械学習データに適用して、そのユーザーのすべてのリクエストに対して信頼できるボットスコアを生成します。
詳細は Cloudflare Cookies を参照してください。
__cf_bm Cookie は、bm_cookie_enabled フィールドを使って API から 無効にできます。