概要
WAF Config設定に含まれる「ルール設定」は、WafCharmコンソールにて各種ルールの設定を行うための項目です。Ruleポリシーにて選択する値によって、ルール設定の中で設定できる項目が異なります。
いずれのルール設定も、設定されていない項目がある場合などは [次のステップへ] ボタンが無効になります。[ルール設定] の画面上で [次のステップへ] ボタンが無効になっていてクリックできない場合は、各種ルールの設定を確認の上、調整してから次に進んでください。
WAF Configの設定完了後も、詳細画面にある [編集] ボタンをクリックすることで各種設定項目の変更や追加が可能です。
Ruleポリシーによる違いについて
Ruleポリシーには、AdvancedとLegacyの2つがあります。
Advanced:WafCharmコンソールにて追加された新しいルール構成です。レートベースルールやGeo-match、Botルールなどのルール設定が可能です。新プランでのみご利用可能です。
Legacy:旧管理画面にてご提供していたルール構成です。ルール設定のうち、IPアドレスに関する内容のみ設定可能です。新プラン・旧プランでご利用可能です。
Advancedを選択した場合、以下のルール設定が提供されます。
Legacyを選択した場合、以下のルール設定が提供されます。
各種ルール設定について
IPアドレス
IPアドレスベースのルール制御を行うための設定です。
Allowlist
登録したIPアドレスからのリクエストを許可します。
設定方法
- AllowlistにIPアドレスを追加する
- 登録ボタンをクリックする
Denylist
登録したIPアドレスからのリクエストをブロックします。
設定方法
- DenylistにIPアドレスを追加する
- 登録ボタンをクリックする
動的Denylist
WafCharmが自動で更新するDenylistルールのアクションを選択します。
動的Denylistは、以下2つの機能によりIPアドレスの登録・解除が行われます。詳細については、Denylist、Allowlistについてをご確認ください。
- ログを数百ものシグネチャに再マッチング処理をしており、都度Denylist登録する機能(動的Denylist機能)
- 弊社独自のIPレピュテーションによるDenylist機能(IPレピュテーション機能)
※本機能はAdvanced Ruleポリシーの場合のみご提供しております。Legacy Ruleポリシーの場合、この項目は存在しません。
設定方法
- プルダウンから利用したいアクション(CountあるいはBlock)を選択する
- [登録] ボタンをクリックする
IP参照
リクエスト内のどのIPアドレスを参照するかの設定です。Allowlist、Denylist両方に対して同じ設定が適用されます。
- Source IP
- リクエスト元のIPアドレスであるSource IP(Client IP)を検査対象とします。
- 特定ヘッダ(参考:特定ヘッダについて )
- X-Forwarded-Forなどのヘッダー名を登録いただき、指定されたヘッダーに記載されるIPアドレスを検査対象とします。
- 特定のヘッダー内のIPアドレスを参照する場合は、参照したいIPアドレスの位置も「参照するヘッダ位置」からご指定ください。
設定方法
デフォルトではSource IPが選択されています。特定ヘッダを利用されたい場合に、以下の手順で変更してください。
- 「IPアドレスの参照先」にて、「特定ヘッダ」を選択する
- 「特定ヘッダ名」に参照すべきヘッダー名を記載する
デフォルトでは「X-Forwarded-For」と入力されています。必要に応じて、ヘッダー名をご変更ください。
- 「参照するヘッダ位置」を選択する
ヘッダーに含まれるIP アドレスがリストになっている場合、リスト内の最初(一番左)あるいは最後(一番右)どちらのIP アドレスを評価対象とするかを選択するための項目です。
制限事項・注意点
- 「特定ヘッダ」を選択した場合、リクエスト内に指定したヘッダーが存在しない場合、指定したヘッダーに IP アドレスが存在しない場合、ルールに一致しません。
- 特定のヘッダーのIPアドレスに関する詳細は、AWS公式ドキュメントの「転送されたIPアドレス」もご参考ください。
- 複数のIPアドレスを登録する場合は、半角カンマあるいは改行で区切ってください。
- 登録可能数は、最大1000件です。
- IPアドレスはCIDRでの指定も可能です。指定可能なCIDRは、/8 と /16 ~ /32 です。
- IPv6 には対応しておりません。
- CIDR の指定が無い場合は、/32 として処理されます。
- 登録までの時間
- 新プランの場合は即時です。
- 旧プランの場合は5〜10分程度です。
- いずれも、何らかの理由により処理が完了するまで多少前後する可能性はございます。
GEO(Geo-match)
Geo-match(国別制限)でのルール制御を行うための設定です。
この設定にて、特定のユースケースに対応したGeo-matchルールを登録できます。
ユースケース
- 特定の国・地域からのアクセスのみをBlockする
- 指定した国からのアクセスの場合にブロックするルールを適用します。
- 特定の国・地域以外からのアクセスのみをBlockする
- 指定した国以外からのアクセスの場合にブロックするルールを適用します。
例えば、日本以外に提供していないサービスであるといった場合には、「日本以外からのアクセスをブロックする」というルールの適用を行うことが可能です。
設定方法
- 「GEOルールを有効化する」にチェックを入れる
- ユースケースを選択する
- 「対象の国・地域」以下のプルダウンから制限したい国名を選択する
- 「国・地域の判定に使用するIP参照先」の設定を行う
国・地域の判定にはIPアドレスを使用しますので、リクエスト検査時に使用するIPアドレスを指定します。
IPアドレス設定の「IP参照」と同じ設定にする場合は、「IPルールの設定を継承する」を選択してください。
設定するGeo-matchルールにて参照するIPアドレスを変更する場合は、「Source IP」「特定ヘッダ」のいずれかから設定を行います。
各項目を選択した後は、最後のステップまで完了した際にWeb ACLにGeo-matchルールが適用されます。
ルールの設定をキャンセルする場合は、「GEOルールを有効化する」のチェックを外してください。
制限事項・注意点
- WafCharmコンソール上からは国単位での制限のみが可能です。
- より細かい地域単位での制限を行いたい場合は、AWSマネージメントコンソール上でお客様ルールとして作成するか、カスタマイズでの対応となります。
- AWS WAFのGeo-matchルールでは、IPアドレスをもとにリクエスト元の国・地域を判定します。
- AWS WAFでの検査時に国・地域を判定できなかった場合や、判定した結果の国・地域がルールで指定したものとマッチしなかった場合には、設定したルールにマッチしない(ブロックされない)場合もあります。
- AWS WAFによる国・地位域の判定などの詳細については、地理的一致ステートメントをご参照ください。
Rate-base
レートベースルールによるBot/DoS緩和制御を行うための設定です。
特定のユースケースおよびお客様独自の設定を行えます。
ユースケース
- Bot等からの急激なアクセスに対応する
- 指定したレート計測のキーを集計し、1分あるいは2分間の間に特定の閾値を超えるリクエストがあった場合にブロックするルールを設定します。
- ウィンドウサイズ(1分あるいは2分)と閾値(デフォルト値:10000)は変更可能です。
- Botの可能性が疑わしいアクセスに対して、ブラウザアクセスであることを確認する
- 指定したレート計測のキーを集計し、5分あるいは10分の間に特定の閾値を超えるリクエストがあった場合にChallengeアクションまたはCAPTCHAアクションを適用するルールを設定します。
- ウィンドウサイズ(5分あるいは10分)、閾値(デフォルト値:10000)、アクションは変更可能です。
- Immunity timeは、AWS WAFのデフォルト値である300が設定されます。
- Immunity timeについて、デフォルト値である「300」以外の値に変更したい場合は、ルール自体をお客様にてAWSマネージメントコンソール上で適用いただくか、カスタマイズにて適用する必要がございます。カスタマイズでの対応をご希望の場合には、ご相談ください。
- カスタマイズ
- 上記のユースケースに比べて、柔軟な設定が可能です。
- 指定したレート計測のキーを集計し、指定したウィンドウサイズの間に閾値を超えるリクエストがあった場合に指定したアクションを実行するルールを設定します。
- ウィンドウサイズ(1分、2分、5分、10分)、閾値(デフォルト値:10000)、アクション(Block, Challenge, CAPTCHA)は変更可能です。
- ChallengeおよびCAPTCHAのImmunity timeは、AWS WAFのデフォルト値である300が設定されます。
- Immunity timeについて、デフォルト値である「300」以外の値に変更したい場合は、ルール自体をお客様にてAWSマネージメントコンソール上で適用いただくか、カスタマイズにて適用する必要がございます。カスタマイズでの対応をご希望の場合には、ご相談ください。
レート計測のキーは、AWS WAFでリクエストのレートを計測する際に、何をキーとして使用したいかを指定するための項目です。IPアドレスをレート計測のキーに指定した場合、同一IPアドレスのリクエストレートを計測し、指定した閾値を超えたらアクションを適用します。IPアドレスの参照先の設定は、IPアドレスルールと同じです(参考:IP参照 )。
Session IDをレート計測のキーに指定した場合、Query、Header、Cookieなどに含まれるセッションIDのキーをもとにリクエストレートを計測し、指定した閾値を超えたらアクションを適用します。
例えば、セッションIDが「name=key_value」という形でクエリーストリングに記載される仕組みとなっている場合、「Session IDの参照方法」は「クエリーストリング」、「Session IDをQueryから参照するためのキー」には「name」と指定することで、同一Session IDで多数のリクエストが発生した場合にレートベースルールで制限できるようになります。
※指定するのはセッションIDが記載されているキー「name」ですが、集計はキーの値にあたる「key_value」の部分で行われます。
レートベースルールで計測されるキーに関する詳細は、AWS公式ドキュメントのレートベースのルール集約オプションとキーをご参照ください。
設定方法
- [ルールの追加] をクリックする
- [ユースケース] を選択する
- [レート計測のキー] を設定する
- [ウィンドウサイズ]、[閾値]、[アクション] を選択する
各項目を選択した後は、最後のステップまで完了した際にWeb ACLにレートベースルールが適用されます。
ルールの設定をキャンセルする場合は、「Rule1」などと記載された各ルール枠の右下にあるゴミ箱アイコンをクリックし、設定を削除してください。
制限事項・注意点
- ChallengeおよびCAPTCHAアクションについては ChallengeおよびCAPTCHAに関する注意点 をご確認ください。
- Immunity timeは、AWS WAFのデフォルト値である300が設定されます。
- Immunity timeについて、デフォルト値である「300」以外の値に変更したい場合は、ルール自体をお客様にてAWSマネージメントコンソール上で適用いただくか、カスタマイズにて適用する必要がございます。カスタマイズでの対応をご希望の場合には、ご相談ください。
- レートベースルールで設定できる閾値の最小値は100です。
- 閾値を空にした場合や、100より下の数値を指定した場合、自動で100に切り替わります。
- AWS WAF側の仕様によるものですので、変更できません。
- WafCharmコンソールから設定できるレートベースルールの最大数は4です。
- 1つのWeb ACLに設定できるレートベースルールの数は、最大10です。AWS WAFの仕様により、拡張はできません。
- 5つ以上のレートベースルールを適用したい場合、5つ目からはWeb ACLに直接適用する必要があります。
- IPアドレスもしくはSession ID以外の集約キーを用いたい場合は、ルール自体をお客様にてAWSマネージメントコンソール上で適用いただくか、カスタマイズにて適用する必要がございます。カスタマイズでの対応をご希望の場合には、ご相談ください。
Bot
Bot制御を行うためのルールの設定です。Botルールを有効にすると、WafCharm独自ルールが追加されます。
Botルールには以下のカテゴリが存在し、カテゴリごとにアクションの指定が可能です。
- Advertising
- AI
- ContentFetcher
- HTTP Libraries
- Monitoring
- Scrapers
- SearchEngine
- Security
- SEO
- SNS
指定できるアクションは、以下の4つです。
- Block
- Count
- CAPTCHA
- Challenge
設定方法
- [Botルールを有効にする] にチェックを入れる
- [Bot Category] 以下の各カテゴリ横にあるアクションを設定する
最後のステップまで完了した際にWeb ACLにレートベースルールが適用されます。
Botルールを有効にすると、提供可能なすべてのカテゴリが有効になります。特定のカテゴリのみ無効といったことはできないため、もし特定のBotカテゴリでリクエストを遮断したくない場合には、アクションにCountを選択してください。Countの場合、ルールにマッチした際に検知はしますが、リクエストを遮断することはありませんので、他のルールにマッチしなければ最終的に許可されます。
制限事項・注意点
- ChallengeおよびCAPTCHAアクションについては ChallengeおよびCAPTCHAに関する注意点 をご確認ください。
- Immunity timeは、AWS WAFのデフォルト値である300が設定されます。
- Immunity timeについて、デフォルト値である「300」以外の値に変更したい場合は、ルール自体をお客様にてAWSマネージメントコンソール上で適用いただくか、カスタマイズにて適用する必要がございます。カスタマイズでの対応をご希望の場合には、ご相談ください。
正規表現
WafCharm独自の正規表現を用いて検知するルールの設定です。
こちらはデフォルトで提供されるルールとなるため、ON/OFFの切り替えはありませんが、ルールごとのアクションの設定が可能です。
指定できるアクションは、以下の4つです。
- Block
- Count
- CAPTCHA
- Challenge
特定のルールを無効にするといったことはできないため、もし特定のルールで遮断したくないといった場合や、誤検知などが発生しており緊急で遮断を回避する必要がある場合には、対象のルールにてアクションにCountを選択してください。
Countの場合、ルールにマッチした際に検知はしますが、リクエストを遮断することはありませんので、他のルールにマッチしなければ最終的に許可されます。
設定方法
- [正規表現ルール名] のルール名の隣にあるアクションを設定する
制限事項・注意点
- ChallengeおよびCAPTCHAアクションについては ChallengeおよびCAPTCHAに関する注意点 をご確認ください。
- Immunity timeは、AWS WAFのデフォルト値である300が設定されます。
- Immunity timeについて、デフォルト値である「300」以外の値に変更したい場合は、ルール自体をお客様にてAWSマネージメントコンソール上で適用いただくか、カスタマイズにて適用する必要がございます。カスタマイズでの対応をご希望の場合には、ご相談ください。
- ルールアクションは、WafCharmコンソール上の正規表現ルールのアクション設定が優先されます。
- 仮にAWSマネージメントコンソール上でルールアクションを変更した場合、定期的なタイミングでWafCharmコンソール上で設定した正規表現ルールの設定にて上書きされます。ルールアクションの変更を行う場合は、必ずWafCharmコンソールからご実施ください。
- ルールアクション以外に、WafCharmが提供するルール条件そのものの編集を行った場合、動作保証ができませんのでご注意ください。
- WafCharmの正規表現ルールは攻撃と思われるリクエストや不審なリクエストを検知し遮断することを目的としたルールのため、Allowアクションは選択肢に含まれていません。
例外設定
WafCharmが提供するルールにおいて、例外を設けたい場合の設定です。
IPアドレス
WafCharmには、お客様から提供されるログに対して再マッチングをし、動的にIPアドレスをDenylistに追加する機能を提供しています。
リクエストがシグネチャにマッチした際にIPアドレスがDenylistに登録される仕組みとなりますので、もしお客様管理のIPアドレスなどで、他のWafCharmルールでは検査したいが、Denylistには登録したくないものがある場合には、あらかじめ例外設定を行うことで、そのIPアドレスがDenylistに登録されてしまうことを回避できます。
設定方法
- 例外IPリストにIPアドレスを追加する
最後のステップまで完了した際に設定が適用されます。
制限事項・注意点
- 複数のIPアドレスを登録する場合は、半角カンマあるいは改行で区切ってください。
- 登録可能数は、最大1000件です。
- IPアドレスはCIDRでの指定も可能です。指定可能なCIDRは、/1 ~ /32 です。
- IPv6 には対応しておりません。
- CIDR の指定が無い場合は、/32 として処理されます。
ChallengeおよびCAPTCHAに関する注意点
ChallengeおよびCAPTCHAアクションは、BlockやCountといったアクションとは異なる動作をします。
Challengeは、ルールにマッチした場合に、Botではなくブラウザからのリクエストであることを確認する必要があるサイレントチャレンジを実行し、パスしたらリクエストを許可します。
CAPTCHAは、ルールにマッチした場合にCAPTCHAテストを表示し、テストをパスしたらリクエストを許可します。CAPTCHAアクションが実行された場合、画面上にAWSが提供するCAPTCHAの画面が表示されます。
CAPTCHAテスト自体はAWS提供のものになるため、CAPTCHA画面が表示されることの是非については別途ご判断いただく必要がございます。
ルールアクションの詳細や仕組みについては、AWS公式ドキュメントをご参照ください。
なお、Immunity timeについて、デフォルト値である「300」以外の値に変更したい場合は、ルール自体をお客様にてAWSマネージメントコンソール上で適用いただくか、カスタマイズにて適用する必要がございます。カスタマイズでの対応をご希望の場合には、ご相談ください。