webアプリケーションファイアウォール (WAF) にWebサービスを追加した後、カスタムルールモジュールでアクセス制御ルールとスロットリングルールを構成して、特定のリクエストに対して防御できます。 このトピックでは、カスタムルールモジュールの保護テンプレートを作成し、保護ルールをテンプレートに追加する方法について説明します。
概要
次の表に、アクセス制御ルールとスロットリングルールを示します。
ルールタイプ | 説明 | 設定ノート |
アクセス制御ルール | クライアントIPアドレスやリクエストURLなどの共通のリクエストヘッダーを使用して、一致条件を指定できます。 リクエストが指定された一致条件を満たす場合、WAFはリクエストに対して指定されたアクションを実行します。 たとえば、特定のURI (Uniform Resource Identifier) に送信されるリクエストをブロックするカスタムルールを設定できます。 カスタムルールを設定して、WAFが特定のユーザーエージェント文字列を含むリクエストを検証できるようにすることもできます。 |
詳細については、「手順2: カスタムルールモジュールの保護テンプレートに保護ルールを追加する」をご参照ください。 |
スロットルルール | リクエストレートの検出条件を指定できます。 統計オブジェクトのリクエストレートが上限を超えると、WAFは統計オブジェクトから送信されたリクエストに対して指定されたアクションを実行します。 たとえば、IPアドレスまたはセッションが短期間に一致条件を頻繁にトリガーする場合、スロットリング機能を有効にして、IPアドレスから送信された要求や、指定された期間にセッションを介して送信された要求をブロックできます。 |
前提条件
WAF 3.0インスタンスを購入しました。 詳細については、「サブスクリプションWAF 3.0インスタンスの購入」および「従量課金WAF 3.0インスタンスの購入」をご参照ください。
Webサービスは、保護されたオブジェクトとしてWAF 3.0に追加されます。 詳細については、「保護オブジェクトと保護オブジェクトグループの設定」をご参照ください。
ステップ1: カスタムルールモジュールの保護テンプレートを作成する
カスタムルールモジュールは、デフォルトの保護テンプレートを提供しません。 カスタムルールモジュールの保護ルールを有効にする前に、モジュールの保護テンプレートを作成し、保護ルールをテンプレートに追加する必要があります。
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、 を選択します。
カスタムルールのセクション基本的な Web 保護ページでテンプレートの作成をクリックしてください。
説明カスタムルールモジュールの保護テンプレートを初めて作成する場合は、基本的な Web 保護 ページの上部にある カスタムルール カードの 今すぐ設定 をクリックすることもできます。
[テンプレートの作成-カスタムルール] パネルでパラメーターを設定し、OK をクリックします。 下表にパラメーターを示します。
パラメーター
説明
テンプレート名
テンプレートの名前を指定します。
テンプレートの名前は1 ~ 255文字で、英数字、ピリオド (.) 、アンダースコア (_) 、ハイフン (-) を使用できます。
デフォルトテンプレート
保護モジュールのデフォルトテンプレートとしてテンプレートを設定するかどうかを指定します。
保護モジュールに指定できるデフォルトテンプレートは1つだけです。 デフォルトテンプレートとして保存をオンにした場合、有効対象 パラメーターを設定する必要はありません。 既定のテンプレートは、カスタムテンプレートが適用されていないすべての保護オブジェクトおよび保護オブジェクトグループに適用されます。
ルールの設定
[ルールの作成] をクリックして、テンプレートの保護ルールを作成します。 テンプレートの作成後に保護ルールを作成することもできます。 詳細については、「手順2: カスタムルールモジュールの保護テンプレートに保護ルールを追加する」をご参照ください。
有効対象
テンプレートを適用する 保護対象 および 保護対象グループ を選択します。
保護対象オブジェクトまたは保護対象オブジェクトグループに適用できる保護モジュールのテンプレートは1つだけです。 保護オブジェクトの追加と保護オブジェクトグループの作成方法の詳細については、「保護オブジェクトと保護オブジェクトグループの設定」をご参照ください。
デフォルトでは、新しく作成された保護テンプレートが有効になります。 テンプレートリストの保護テンプレートに対して次の操作を実行できます。
テンプレートに関連付けられている保護オブジェクトおよび保護オブジェクトグループの数を 保護対象 / グループ 列に表示します。
ステータス 列のスイッチをオンまたはオフにして、テンプレートを有効または無効にします。
[操作] 列の 編集 または 削除 をクリックして、テンプレートを変更または削除します。
テンプレート名の左側にあるアイコンをクリックして、テンプレート内の保護ルールを表示します。
手順2: カスタムルールモジュールの保護テンプレートに保護ルールを追加する
保護テンプレートは、テンプレートに保護ルールを追加した後にのみ有効になります。 保護テンプレートの作成時に保護ルールを作成した場合は、この手順をスキップできます。
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、 を選択します。
では、カスタムルールセクションで、保護ルールを追加する保護テンプレートを見つけて、ルールの作成で、操作列を作成します。
ルールの作成 ダイアログボックスでパラメーターを設定し、[OK] をクリックします。 下表に、各パラメーターを説明します。
パラメーター
説明
ルール名
ルールの名前を指定します。
ルールの名前には、英数字、ピリオド (.) 、アンダースコア (_) 、およびハイフン (-) を使用できます。
マッチ条件
ルールに一致するリクエストの特性を指定します。
条件の追加 をクリックして一致条件を追加します。 ルールには最大5つのマッチ条件を追加できます。 複数の一致条件を追加した場合、すべての一致条件が満たされている場合にのみルールが一致します。
各一致条件は、マッチフィールド、論理記号、およびマッチコンテンツで構成されます。 例:
例1: マッチフィールドパラメーターをURIに、論理記号パラメーターをContainsに、マッチコンテンツパラメーターを
/login.php
に設定します。 リクエストのURIに/login.php
が含まれている場合、リクエストはルールに一致します。例2: マッチフィールドパラメーターをIPに、論理記号パラメーターをBelongs toに、マッチコンテンツパラメーターを
192.1X.XX.XX
に設定します。 IPアドレスが192.1.XX.XX
であるクライアントからリクエストが送信された場合、リクエストはルールに一致します。
一致フィールドと論理演算子の詳細については、「一致条件」をご参照ください。
レート制限
レート制限機能を有効にするかどうかを指定します。 レート制限機能を有効にした場合、統計オブジェクトから送信されたリクエストが保護ルールと頻繁に一致する場合、WAFは特定の期間内にリクエストに対して特定のアクションを実行します。
重要レート調整機能は、保護対象オブジェクトに対する統計オブジェクトの要求レートを制限するために使用されます。 たとえば、Application Load Balancer (ALB) インスタンスを保護オブジェクトとして追加し、ALBインスタンスのスロットリングルールを設定します。 ALBインスタンスが複数のドメイン名のリクエストを転送する場合、リクエストレートは複数のドメイン名に基づいて計算されます。 特定のドメイン名のリクエストレートを制限する場合は、次のいずれかの方法を使用できます。
方法1: ドメイン名をWAFの保護されたオブジェクトとして追加し、ドメイン名のスロットリングルールを設定します。 詳細については、「保護オブジェクトと保護オブジェクトグループの設定」をご参照ください。
方法2: ALBインスタンスのスロットリングルールを設定し、[ホスト] フィールドを使用して一致条件を指定し、ドメイン名のリクエストレートを制限します。
レート制限機能を有効にする場合は、レート制限パラメーターを設定する必要があります。
リクエストレート検出条件
統計オブジェクト (statistical object) が特定の統計期間 (Statistical Interval (Seconds)) 内に保護ルールと一致する回数が上限 (Threshold (times)) を超えた場合、オブジェクトはブラックリストに追加されます。
ステータスコード検出条件
特定のステータスコードが応答に含まれる回数が上限 (Quantity) を超えた場合、または応答に含まれるすべてのステータスコードに含まれる特定のステータスコードの割合が上限 (percentage (%)) を超えた場合、統計オブジェクトはブラックリストに追加されます。
統計オブジェクトをブラックリストに追加するための条件
統計オブジェクトがリクエストレート検出条件に一致する場合、統計オブジェクトはブラックリストに追加され、特定の期間 (Timeout period) ブラックリストに残ります。 次に、WAFは特定のアクションを実行します (アクション保護されたオブジェクトからのすべてのリクエスト、または一致条件を満たすリクエストのみ適用先) 。
保護ルールタイプ
このパラメーターは自動的に指定されます。 このパラメーターの値は、[レート制限] をオンにするかどうかによって異なります。
レート制限をオンにすると、保護ルールタイプパラメーターの固定値はスロットリングになります。
レート制限をオフにすると、保護ルールタイプパラメーターの固定値はアクセス制御になります。
Action
リクエストがルールに一致したときにWAFで実行するアクションを選択します。 有効な値:
Block: ルールに一致するリクエストをブロックし、リクエストを開始したクライアントにブロックページを返します。
説明デフォルトでは、WAFは事前設定されたブロックページを返します。 カスタム応答機能を使用して、カスタムブロックページを設定できます。 詳細については、「カスタムブロックページを設定するためのカスタム応答モジュールの保護ルールの設定」をご参照ください。
Monitor: ルールに一致するリクエストを、リクエストをブロックせずにログに記録します。 ルールに一致するリクエストに関するログを照会し、保護パフォーマンスを分析できます。 たとえば、ログに基づいて通常のリクエストがブロックされているかどうかを確認できます。
重要ログを照会できるのは、Simple Log Service for WAF機能が有効になっている場合のみです。 詳細については、「Simple Log Service For WAF機能の有効化または無効化」をご参照ください。
観察 を選択した場合、ルールでドライランを実行して、ルールが通常のリクエストをブロックするかどうかを確認できます。 ルールがドライランに合格した場合、Actionパラメーターをブロックに設定できます。
JavaScript検証の実行: WAFはJavaScriptコードをクライアントに返します。 JavaScriptコードは、クライアントによって使用されるブラウザによって自動的に実行され得る。 クライアントがJavaScript検証に合格した場合、WAFは指定された時間範囲内にクライアントから送信されたリクエストを許可します。 デフォルトでは、時間範囲は30分です。 クライアントがJavaScript検証に失敗した場合、WAFはクライアントから送信されたリクエストをブロックします。
スライダーCAPTCHAの実行: WAFは、スライダーCAPTCHAの検証に使用されるページをクライアントに返します。 クライアントが共通スライダーCAPTCHA検証に合格した場合、WAFは指定された時間範囲内にクライアントから送信されたリクエストを許可します。 デフォルトでは、時間範囲は30分です。 クライアントが共通スライダーCAPTCHA検証に失敗した場合、WAFはクライアントから送信されたリクエストをブロックします。
厳密なスライダーCAPTCHAを実行: WAFは、スライダーCAPTCHA検証に使用されるページをクライアントに返します。 クライアントが厳密なスライダーCAPTCHA検証に合格した場合、WAFはクライアントから送信されたリクエストを許可します。 クライアントが厳密なスライダーCAPTCHA検証に失敗した場合、WAFはクライアントから送信されたリクエストをブロックします。 ActionパラメーターをStrict Slider CAPTCHAに設定した場合、クライアントは厳密なスライダーCAPTCHA検証に合格してリクエストを送信する必要があります。
説明Run Slider CAPTCHAは、EnterpriseまたはUltimateエディションを実行する従量課金WAFインスタンスおよびサブスクリプションWAFインスタンスでサポートされます。
カスタムルールモジュールで保護ルールを作成する場合、静的ページに対してのみ [JavaScript検証の実行] と [スライダーCAPTCHAの実行] を選択できます。 XMLHttpRequestやFetchなどの非同期APIの応答との互換性を確保するために、bot managementモジュールでJavaScript検証とスライダーCAPTCHA検証を有効にできます。 詳細については、「ボット管理モジュールの有効化と設定」をご参照ください。
クライアントからのリクエストが、Actionパラメーターが [JavaScript検証の実行] または スライダー に設定されている保護ルールと一致する場合、WAFはクライアントでJavaScript検証またはスライダーCAPTCHA検証を実行します。 クライアントが検証または検証に合格した場合、WAFは
acw_sc__v2
またはacw_sc__v3
cookieをリクエストのヘッダーに追加し、クライアントが検証または検証に合格したことを示します。
詳細設定
詳細設定は、従量課金WAFインスタンス、またはEnterpriseまたはUltimateエディションを実行するサブスクリプションWAFインスタンスを使用する場合にのみ設定できます。
カナリアリリース: カナリアリリースをオンにすると、特定の割合のオブジェクトにルールを適用できます。
カナリアリリースをオンにする場合は、ディメンションとカナリアリリース率パラメーターを設定する必要があります。 Dimensionパラメーターの有効な値: IP Address、Custom Header、Custom Header、Custom Cookie、Session。
有効モード
Permanently Effective (デフォルト): [Permanently Effective] を選択すると、保護ルールは永続的に有効になります。
固定スケジュール: テンプレートを有効にするタイムゾーンと期間を指定できます。
定期スケジュール: タイムゾーン、曜日、および1日の期間を指定できます。 テンプレートは、同じ曜日の1日の同じ期間に有効です。
デフォルトでは、新しく作成された保護ルールが有効になります。 ルールリスト内の保護ルールに対して次の操作を実行できます。
ステータス 列のスイッチをオンまたはオフにして、ルールを有効または無効にします。
[操作] 列の 編集 または 削除 をクリックして、ルールを変更または削除します。
次のステップ
[セキュリティレポート] ページの [カスタムルール] タブで、設定された保護ルールの保護の詳細を表示できます。 詳細については、「IPアドレスブラックリスト、カスタムルール、スキャン保護、HTTPフラッド保護、およびリージョンブラックリストモジュール」をご参照ください。
関連ドキュメント
カスタムルールモジュールの保護ルールを構成するときに関連する一致条件と一致フィールドの詳細については、「一致条件」をご参照ください。
WAF 3.0の保護オブジェクト、保護モジュール、および保護プロセスの詳細については、「保護構成の概要」をご参照ください。
API操作を呼び出して保護テンプレートを作成する方法の詳細については、「CreateDefenseTemplate」をご参照ください。
API操作を呼び出して保護ルールを作成する方法の詳細については、「CreateDefenseRule」をご参照ください。