AWS WAF マネージドルールグループにおける誤検知を回避する方法
はじめに
AWS WAF を使用してウェブアプリケーションを保護する際、特定のルールが正当なリクエストを誤ってブロックする「誤検知」が発生することがあります。例えば、ファイルアップロード時にセキュリティルールが誤ってリクエストをブロックしてしまうケースなどです。
この記事では、AWS WAF マネージドルールグループを利用している環境で、ラベル一致ステートメントやスコープダウンステートメントを活用して誤検知を回避する方法に焦点を当てます。
方法 1: ラベル一致ステートメントを利用した誤検知の回避
ラベルは、AWS WAF のルールに一致したリクエストに付加されるメタデータです。これにより、後続のルールで特定のリクエストがどのルールに一致したかを判断できます。複数のルールの結果をまとめて評価したり、特定の条件でリクエストを許可またはブロックする際に利用できます。ラベルを利用することで、ルールの設定がシンプルになり、誤検知を回避しやすくなります。
ラベル一致ステートメントを利用した誤検知の回避
ラベルを活用して誤検知を防ぐ設定方法です。この手順では、特定のラベルが付与されたリクエストに適切な処理を行い、正当な IP アドレスからのリクエストが誤ってブロックされないようにします。
設定の流れ
- AWS WAF コンソールを開き、ナビゲーションペインで「IP sets」を選択します。
正当な IP アドレスを含む IP セットを作成します。 -
「Web ACLs」を選択し、対象の Web ACL を選択します。
-
「Rules」セクションで、誤検知の原因となるルールグループを選択し、「Edit」を選択します。
-
誤検知の原因となるルールを選択し、アクションを「Count」に設定します。
-
「Save rule」を選択して保存します。
-
「Add rule」を選択し、「Add my own rules and rule groups」を選択します。
-
「Rule type」では「Rule Builder」を選択します。
-
ルール名を入力します。
-
「Type」では「Regular rule」を選択します。
-
「If a request」ドロップダウンリストを「matches all the statements (AND)」に設定します。
-
Statement 1 のパラメータを以下のように設定します:
- 「Inspect」:
Has a label
を選択します。 - 「Match scope」:
Label
を選択します。 - 誤検知の原因となるルールのラベル名を入力します。
- 「Inspect」:
- Statement 2 のパラメータを以下のように設定します:
- 「Negate statement results」をオンにします。
- 「Inspect」:
Originates from an IP address in
を選択します。 - 「IP set」:正当な IP アドレスを含む IP セットを入力します。
- 「IP address to use as the originating address」:
Source IP address
を選択します。
- 「Action」では「Block」を選択します。
-
「Set rule priority」セクションで、このルールが AWS Managed Rules ルールグループのあとに評価されるように優先度を設定します。
-
「Save」を選択して保存します。
方法 2: スコープダウンステートメントを利用した誤検知の回避
スコープダウンステートメントとは、AWS WAF において特定のルールが評価するリクエストの範囲を絞り込むための設定です。これによって、マネージドルールグループやレートベースのルールが特定の条件に一致するリクエストのみを対象に評価するように制限できます。例えば、特定の IP アドレスや URI パスに基づいてルールの適用範囲を限定することで、誤検知のリスクを低減し、無関係なリクエストを誤ってブロックすることを防げます。
スコープダウンステートメントを利用した誤検知の回避
ラベルを使用できないルールや、より柔軟な条件設定が必要な場合は、スコープダウンステートメントが有効です。スコープダウンステートメントを使うと、特定の条件に基づいてリクエストをフィルタリングし、問題のあるルールの影響を限定できます。以下の手順では、特定の IP アドレスを除外し、正当なリクエストが誤ってブロックされないように設定します。
設定の流れ
- AWS WAF コンソールを開き、ナビゲーションペインで「IP sets」を選択します。
正当な IP アドレスを含む IP セットを作成します。 -
「Web ACLs」を選択し、対象の Web ACL を選択します。
-
「Rules」セクションで、スコープダウンステートメントを追加したい AWS Managed Rule を選択し、「Edit」を選択します。
-
「Scope of inspection」セクションで「Only inspect requests that match a scope-down statement」を選択します。
-
作成した IP セットを除外するためのスコープダウンステートメントを作成します。設定例は以下の通りです:
- 「If a request」:
Doesn't match the statements (NOT)
を選択します。 - 「Inspect」:
Originates from an IP address in
を選択します。 - 「IP set」:
example-IP-set
を選択します。※example-IP-set
は、除外したい IP アドレスを含む IP セットに置き換えてください。 - 「IP addresses to use as the originating address」:
Source IP address
を選択します。
- 「If a request」:
- 「Save rule」を選択して保存します。
まとめ
AWS WAF マネージドルールグループで発生する誤検知を避けるためには、ルールの詳細を理解し、適切に設定することが重要です。ラベルを活用して特定のリクエストを許可する方法や、スコープダウンステートメントを使って影響範囲を制限するアプローチは、セキュリティを維持しながら誤検知を減らす効果的な手段です。
これらの手法を使って AWS WAF のルールを適切に調整し、システムの安定性を確保しましょう。
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitter2014年入社。 関東近郊の山と銭湯と飲み屋を巡り歩いてます。
Recommends
こちらもおすすめ
-
2024 Japan AWS Top Engineers に選ばれました!
2024.9.12
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16