ボット管理を有効にした後、特定の条件に一致するリクエストから保護するために、カスタムのアクセス制御ルールと頻度制御ルールを作成できます。 高度なカスタムルールは、クライアント ID、JA3/JA4 指紋、Web/App SDK によって収集された情報など、より広範囲の一致条件を提供します。 統計のための条件付き重複排除もサポートされています。 このトピックでは、カスタムボットルールテンプレートを作成し、それにカスタムルールを追加する方法について説明します。
背景情報
カスタムルールは、次のタイプに分類されます。
カスタムルール | 説明 |
アクセス制御ルール | クライアント IP、リクエスト URL、および一般的なリクエストヘッダーフィールドに基づいて一致条件を定義します。 WAF は、一致条件にヒットするリクエストに対して指定されたアクションを実行します。 たとえば、カスタムルールを使用して、特定のクライアント ID にアクセスするリクエストをブロックしたり、特定の Web UMID またはアプリ UMID を含むリクエストを検証したりできます。 |
頻度制御ルール | アクセス制御一致条件に基づいてアクセス頻度検出条件を定義します。 WAF は、アクセス頻度が異常な統計オブジェクトに対して指定されたアクションを実行します。 たとえば、同じ IP アドレスまたはセッションからのリクエストが短期間で頻繁に一致条件にヒットする場合、頻度制御を有効にして、指定された期間、その IP アドレスまたはセッションからのリクエストをブロックできます。 |
ステップ 1:カスタムルールテンプレートを作成する
Web Application Firewall 3.0 コンソール にログインします。 上部のナビゲーションバーで、WAF インスタンスのリソースグループとリージョン(中国本土 または 中国本土以外)を選択します。
テンプレートの作成 をクリックします。 [テンプレートの作成 - 高度なカスタムルール] パネルで、次の設定を構成し、[OK] をクリックします。
パラメーター
説明
テンプレート名
テンプレートの名前を入力します。
名前は 1 ~ 255 文字で、中国語、大文字と小文字、数字、ピリオド(.)、アンダースコア(_)、ハイフン(-)を含めることができます。
ルールの設定
ルールの作成 をクリックして、現在のテンプレートのカスタムルールを作成できます。 カスタムルールを作成するには、この手順をスキップして、テンプレートの作成後にテンプレートのルールを作成することもできます。
有効対象
設定済みの保護オブジェクトおよび保護オブジェクトグループから、このテンプレートを適用するものを選択します。
新しい保護テンプレートはデフォルトで有効になっています。 保護テンプレートリストでは、次の操作を実行できます。
テンプレートに関連付けられている 保護対象 / グループ の数を表示します。
ステータス を使用して、テンプレートを有効または無効にします。
Create Rule をクリックして、テンプレートの新しいルールを作成します。
保護テンプレートを 編集、削除、または 複製 します。
テンプレート名の横にある
アイコンをクリックして、保護テンプレート内のルールに関する情報を表示します。
ステップ 2:カスタムルールを作成する
保護ルールを追加するまで、カスタムルールテンプレートは有効になりません。 ルールの作成 ダイアログボックスで、次のパラメーターを構成し、[OK] をクリックします。
ステップ 1 で保護ルールをすでに追加している場合は、このステップをスキップできます。
パラメーター | 説明 |
Rule Name | ルール名を入力します。 名前には、中国語、大文字と小文字、数字、ピリオド(.)、アンダースコア(_)、ハイフン(-)を含めることができます。 |
一致条件 | 一致させたいリクエストの特徴を設定します。 条件の追加 をクリックして条件を追加します。 1 つのルールに最大 10 個の条件を追加できます。 複数の条件を定義した場合、リクエストはすべての条件を満たしてルールにヒットする必要があります。 各条件は、[照合フィールド]、[ロジック]、および[照合コンテンツ]で構成されます。以下に構成例を示します。
|
Protection Rule Type | Access Control がデフォルトで選択されています。 Throttling をクリックして、頻度制御を有効にします。 頻度制御とは、同じ統計オブジェクト(IP アドレスやセッションなど)からのリクエストがルールに頻繁にヒットした場合、WAF が一定期間、その統計オブジェクトからのすべてのアクセスリクエストに対して指定されたアクションを実行することを意味します。 頻度制御を有効にした後、頻度制御パラメーターを構成する必要があります。
|
Actions |
|
ルールタイプ | カスタムルールを分類した後、ルールにヒットしたトラフィックは、トラフィック分析ページの悪意のあるボットと疑わしいボットのトレンドチャートに記録されます。
|
詳細設定 |
|
新しいルールはデフォルトで有効になっています。ルールリストでは、次の操作を実行できます。
ルールID や ルール条件 などの情報を表示します。
ステータス スイッチを使用して、ルールを有効または無効にします。
ルールを 編集 または 削除 します。
一致フィールドの説明
一致フィールド | 説明 | サポートされているロジック |
URI | リクエストの Uniform Resource Identifier(URI)は、リクエストされたリソースへのパスを指定します。 一般的に、URI = URI パス + クエリ文字列 です。 値はスラッシュ( |
|
IP | リクエストの送信元 IP アドレス。 これは、リクエストを開始したクライアントの IP アドレスです。 値は次の要件を満たしている必要があります。
| 所属しない、所属する |
Referer | リクエストの送信元 URL。 リクエストがリダイレクトされたページを示します。 |
|
User-Agent | リクエストを開始したクライアントの識別子。 ブラウザー、レンダリングエンジン、バージョン、その他のブラウザー関連の詳細情報が含まれています。 |
|
クエリ文字列 | リクエストのクエリ文字列。 これは、疑問符(?)に続く URL の部分です。 |
|
Cookie | リクエストの Cookie 情報。 |
|
Content-Type | リクエストで指定された HTTP コンテンツタイプ。これは、Multipurpose Internet Mail Extensions(MIME)タイプです。 |
|
Content-Length | リクエスト本文の長さ(バイト単位)。 値の範囲は 0 ~ 2,147,483,648 です。 | 等しい、値がより小さい、値がより大きい |
X-Forwarded-For | クライアントの送信元 IP アドレス。 X-Forwarded-For(XFF)は、HTTP プロキシまたはロードバランサーを介して Web サーバーに接続するクライアントの元の IP アドレスを識別するために使用される HTTP リクエストヘッダーフィールドです。 HTTP プロキシまたはロードバランサーによって転送されたリクエストのみがこのフィールドを含みます。 |
|
本文 | リクエストの本文。 |
|
Http-Method | リクエストのメソッド。GET、POST、DELETE、PUT、OPTIONS、CONNECT、HEAD、TRACE、PATCH など。 |
|
ヘッダー | リクエストのヘッダー。 カスタムヘッダーフィールドがサポートされています。 |
|
URI パス | リクエストの URI パス。 |
|
クエリ文字列パラメーター | リクエストパラメーターの名前。 リクエストパラメーターとは、疑問符(?)に続く URL の部分を指します。 たとえば、 説明 パラメーター名は大文字と小文字が区別されます。 |
|
クライアント ID | クライアント(ブラウザーやアプリケーションなど)の識別子。 WAF は、User-Agent 情報やトラフィックフィンガープリントなどの特徴に基づいてクライアントタイプを識別します。 |
|
サーバーポート | サーバーポート。 |
|
ファイル拡張子 | リクエストされたファイルの拡張子。 たとえば、 |
|
ファイル名 | リクエストパスの末尾にあるファイルの名前。 たとえば、 |
|
ホスト | リクエストされたドメイン名。 |
|
Cookie 名 | Cookie の名前。 たとえば、Cookie 説明 Cookie 名は大文字と小文字が区別されます。 |
|
本文パラメーター | リクエスト本文のパラメーターの名前。 たとえば、リクエスト本文に文字列 説明 パラメーター名は大文字と小文字が区別されます。 |
|
JA3 指紋 | TLS バージョン、暗号スイート、圧縮アルゴリズム、TLS 拡張機能など、TLS ハンドシェイクの主要パラメーターに対して MD5 ハッシュを実行することによって生成される文字列。 この文字列は JA3 指紋と呼ばれ、クライアントの TLS 構成を表します。 JA3 指紋は、Web ブラウザー、モバイルアプリケーション、マルウェアなど、さまざまなタイプの TLS クライアントを識別および区別するために使用できます。 |
|
JA4 指紋 | JA4 指紋には、より多くのコンテキスト情報が含まれており、ブラウザーのバージョンやオペレーティングシステムなどの要素を考慮した追加のアルゴリズムが使用されます。 これにより、JA3 指紋で発生する可能性のある重複の問題を軽減できます。 JA4 指紋は、実際のユーザーと偽装者をより正確に区別できるため、誤検知率が低下します。 |
|
HTTP/2 指紋 | HTTP/2 クライアントの元の指紋に MD5 アルゴリズムを適用することによって生成された HTTP/2.0 指紋。 さまざまなクライアントを分析および識別して、より安全で効率的な通信を可能にするために使用されます。 |
|
IDC | 送信元 IP アドレス属性データに基づいてトラフィックソースを識別します。 サイバーアンダーグラウンドエコノミーチェーンの攻撃者は、多くの場合、低コストのクラウドサーバーを使用して攻撃を開始します。 | いずれかに等しい、いずれにも等しくない |
Web SDK | Web SDK によって収集されたプローブデータ(Web UMID、キーボード、マウス、またはタッチスクリーンイベントの数など)に基づいて異常トラフィックを識別します。 |
|
アプリ SDK | アプリ SDK によって収集されたプローブデータに基づいてきめ細かい制御を可能にします。 |
|