AWS WAF は HTTP リクエストの本文検査をどのように処理しますか?

所要時間1分
0

AWS WAF は HTTP リクエストの本文検査をどのように処理しますか?

解決方法

AWS WAF は、リクエスト本文の最初の 8 KB (8,192 バイト) を検査します。これはハード的なサービス制限であり、変更することはできません。

例:

  • 本文が 5,000 バイトの場合: 本文のすべてのコンテンツは AWS WAF で検査することができます。
  • 本文が 8,500 バイトの場合: バイト 1 から 8,192 バイトのコンテンツが AWS WAF によって検査されます。8,193 バイトから 8,500 バイトまでのすべてのコンテンツは検査されません。

AWS WAF は 8,192 バイト後の本文の内容を確認することができないため、ルールを設定する際にこの制限は重要です。XSS 攻撃または SQL インジェクションパターンは、8,192 バイト後には検出されません。

未検査の本文部分への攻撃を防ぐには、次のいずれかを使用します。

AWS マネージドルールコアルールセット

AWS マネージドルールコアルールセット (CRS) 内の SizeRestrictions_Body ルールは、8 KB (8,192 バイト) を超えるリクエスト本文をチェックします。8 KB を超えるリクエストボディはブロックされます。

カスタム本文検査ルール

カスタム本文検査ルールを設定する場合、オーバーサイズリクエスト処理アクションを選択することができます。このアクションでは、リクエスト本文が 8,192 バイトより大きい場合に有効になります。

たとえば、XSS インジェクション攻撃を含むリクエスト本文を含むカスタムルールを設定し、リクエスト本文が 9,000 バイトであるとします。以下のオーバーサイズ処理アクションから選択できます。

  • 続行: AWS WAF は、XSS 攻撃がないか本文コンテンツの 1 バイトから 8,192 バイトを検査します。残りの 8,193~9000 バイトのコンテンツは検査されません。
  • 一致: AWS WAF は、このリクエストを XSS 攻撃を含むものとしてマークし、ルールアクション (ALLOW または BLOCK) を実行します。リクエスト本文に XSS 攻撃パターンが含まれているかどうかは関係ありません。
  • 一致しない: AWS WAF は、リクエスト本文の内容に関係なく、このリクエストを XSS 攻撃を含まないものとしてマークします。

AWS マネージドコアルールセットを使用する場合、本文サイズが 8,192 バイトを超える正当なリクエストは、SizeRestrictions_Body ルールによってブロックされる可能性があります。許可ルールを作成して、リクエストを明示的に許可することができます。

たとえば、お客様が URL「/upload」から正当なリクエストを受け取った場合、ルールを次のように構成することができます。

1.    ウェブ ACL で、ルールグループからカウントするように SizeRestrictions アクションをオーバーライドします。

2.    コアルールセットの後に、ウェブ ACL にラベル一致ルールを追加します。ルールでは次のロジックを使用します。

Has a label “awswaf:managed:aws:core-rule-set:SizeRestrictions_Body”
AND
    NOT (URL path contains “/upload”)
Action: BLOCK

前述の設定を使用すると、本文のサイズが 8,192 バイトを超える URL「/upload」のリクエストが許可されます。この URL 以外のリクエストはブロックされます。


関連情報

リクエストコンポーネントのオーバーサイズ処理

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ