ボットの 上級モード では、IP、Referer、User-Agent などの共通の一致フィールドに関する条件を組み合わせてアクセスリクエストをフィルタリングし、条件に一致したリクエストに監視、スライダー CAPTCHA、またはブロックアクションを適用できます。 このトピックでは、例を使用してボットの共通の一致フィールドを紹介し、対応するルールの設定方法について説明します。
ボットの 上級モード は、エンタープライズ プランでのみ利用できます。他のプランのユーザーが 上級モード に切り替えると、ページに エンタープライズ プランへのアップグレードに関するガイダンスが表示され、ルールマッチングの設定やアクションの実行はできなくなります。この機能を使用するには、エンタープライズ プランにアップグレードしてください。
このトピックで扱う一致フィールド
次の表に、このトピックでシナリオベースの設定例を提供する一致フィールドを一覧で示します。
| 一致フィールド | 使用する状況 |
| User-Agent | User-Agent リクエストヘッダーに含まれるデバイスとブラウザの情報によってリクエストをフィルタリングします。 |
| 静的リソースの提供 | 静的ファイルへのリクエストのみ、またはそれ以外のすべてのリクエストのみに保護ポリシーを適用します。 |
| JavaScript 検証済み | JavaScript を実行できるクライアントとできないクライアントを分離します。 |
| JA3 フィンガープリント | TLS ハンドシェイクのフィンガープリントによって SSL/TLS クライアントを識別します。 |
このトピックでは、すべての一致フィールドを網羅しているわけではありません。IP や Referer などのフィールドを含む完全なリストについては、「一致フィールド」をご参照ください。条件で使用できる演算子と一致する値については、「演算子とグループ化記号」および「一致する値」をご参照ください。
このトピックの例では、ブロックアクションと許可リストアクションを適用します。監視アクションとスライダー CAPTCHA アクションについては説明しません。
このトピックの例は参考用です。実際のビジネス要件に基づいて、対応するボットポリシーを設定してください。
User-Agent
User-Agent は、HTTP リクエストヘッダーの主要なフィールドであり、オペレーティングシステム、ブラウザの種類、バージョンなど、アクセス元のデバイスの特性を識別します。User-Agent のブロックリストおよび許可リストのルールを設定することで、アクセス元を正確に制御し、ビジネスアクセラレーションサービスのセキュリティ保護を強化できます。
設定例
最近、クローラーがお客様のビジネスのリソースをスクレイピングしたため、ドメイン名の帯域幅コストが急増しました。 分析の結果、クローラーリクエストの User-Agent に Python-requests が含まれているため、このようなリクエストをブロックするとします。 ルールを次のように設定します。
リクエストが以下のルールと一致する場合... セクションで、一致フィールドを
User-Agentに、一致演算子を 次を含む: に、一致する値をPython-requestsに設定します。
「以下を実行する...」セクションで、偽クローラーのブロッキング スイッチをオンにすると、検索エンジンのクローラーになりすましている一致したクローラーをすばやくブロックできます。
静的リソースの提供
静的リクエストとは、ブラウザなどのクライアントが、オーディオ、ビデオ、画像ファイルなど、サーバーにすでに保存されている静的ファイルであるリソースをサーバーに要求するリクエストのことです。サーバーは、リソースを動的に処理または生成する必要はありません。
静的リクエストかどうか 照合フィールドは、値ではなくスイッチです。オンの位置 (
) では、以下の保護ポリシーが 静的リクエスト に適用され、オフの位置 (
) では 非静的リクエスト に適用されます。
設定例
ある eコマースプラットフォームで、通常のユーザーになりすました多数のボットが製品画像を 高頻度で リクエストし、ESA の帯域幅コストが急増していることが判明しました。このプラットフォームには、正規ユーザーによる静的リソースへのアクセスと、悪意のあるボットによるアクセスを正確に区別する保護ポリシーが必要です。ルールを次のように設定します:
リクエストが以下のルールと一致する場合... セクションで、一致フィールドを 静的リクエストかどうか に、一致演算子を 次の値に等しい: に設定し、スイッチをオン (
) にします。
以下を実行する... セクションで、正当なボットの管理、ボット特徴識別、ボット行動識別 などの保護ポリシーを設定します。これらのポリシーを使用して、一致した静的リクエストの中から悪意のあるボットを識別します。
JavaScript 検証済み
JavaScript 検証は、HTML ページまたはページビューリクエストへのレスポンスとして、軽量で不可視の JavaScript コードスニペットをアクセス元のクライアントに挿入します。JavaScript を実行できない非ブラウザツールからのリクエストはブロックされますが、JavaScript 検証に合格したリクエストは他のアクションを続行できます。
JavaScript で検証済み 照合フィールドは、値ではなくスイッチです。オンの位置 (
) は JavaScript 検出をパスしたリクエストに保護ポリシーを適用し、オフの位置 (
) は JavaScript 検出をパスしなかったリクエストに適用します。
設定例
この例では、ボットを識別するために、サイトで JavaScript 検証がすでに有効になっていることを前提としています。JavaScript 検証に合格した検索エンジンのクローラーを許可リストに追加して、ボット管理モジュールの保護チェックの対象外としたいと考えています。ルールを次のように設定します:
リクエストが以下のルールと一致する場合... セクションで、一致フィールドを JavaScript で検証済み に、一致演算子を 次の値に等しい: に設定し、スイッチをオン (
) にします。
以下を実行する... セクションで、正当なボットの管理 の右側にある 設定 をクリックし、許可リストに追加する検索エンジンを選択します。
JA3 フィンガープリント
JA3 と JA4 は、SSL/TLS クライアントを識別するために使用される技術的なフィンガープリントです。JA3 は、TLS ハンドシェイクの Client Hello パケットを分析し、一意の識別子として MD5 ハッシュ値を生成します。JA4 は JA3 のアップグレード版で、複数のプロトコルをサポートし、読み取り可能でモジュール化された文字列形式を使用することで、なりすましへの耐性と拡張性を強化しています。このトピックでは、JA3 フィンガープリントのルール設定のみを扱います。
設定例
ある eコマースプラットフォームの API は、商品価格および在庫のクエリサービスを提供しています。最近、大量の異常なトラフィックによって帯域幅が消費されていることが確認されました。分析の結果、攻撃者がブラウザーに偽装した Python クローラーを使用して API にアクセスしたため、データ漏洩が発生し、ビジネスパフォーマンスが低下したことがわかりました。このトラフィックをブロックするには、ESA の 上級モード で、Python-requests や Scrapy などの既知の悪意のあるクライアントのフィンガープリントに一致する JA3 フィンガープリントブロックリストルールを設定します。
リクエストが以下のルールと一致する場合... セクションで、一致フィールドを JA3 フィンガープリント に、一致演算子を いずれかに一致 に、一致する値をブロックするクライアントの JA3 フィンガープリントに設定します。このシナリオでは、ブロックするクライアントは
Python-requestsとScrapyです。JA3 フィンガープリントは MD5 ハッシュ値であるため、クライアント名ではなく、各クライアントのフィンガープリントを入力します。
以下を実行する... セクションで、偽クローラーのブロッキング スイッチをオンにすると、条件に一致するクローラーを迅速にブロックできます。