記事検索

検索ワードを入力してください。
Sky Tech Blog
【AWS】WAFの​リクエストボディ検査で​覚えて​おきたい​設定値

【AWS】WAFの​リクエストボディ検査で​覚えて​おきたい​設定値

AWS WAFでリクエストボディを検査する際の注意点として、「オーバーサイズ処理」の挙動について解説します。検査サイズの上限値を超えた場合の「Continue」「Match」「No Match」の各設定が、意図しない通信の許可やブロックにどう影響するかを具体的なシナリオを交えて紹介します。

1. ​はじめに

AWS WAFでリクエストボディを検査する際、意図しない通信を許可/ブロックしてしまう可能性があったためこちらで紹介させていただきます。

2. WAFリクエストボディ検査の​2つの​注意点

注意点① リクエストボディ検査ルールでは、まず「オーバーサイズ処理(Oversize handling)」が評価されます。
注意点② 「オーバーサイズ処理」のMatch/No Match設定は、本来のルール評価をスキップさせます。

3. ​「オーバーサイズ処理」とは​何か?

WAFのリクエストボディの検査サイズには上限があり、デフォルトで16KB、最大で64KBの上限値を持っています。
※上限値は利用サービスによって異なりますが、本記事ではAPI Gateway の利用を想定しております。

https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/web-acl-setting-body-inspection-limit.html

この上限値を超えたリクエストをどう扱うかを決めるのが「オーバーサイズ処理」になります。

「オーバーサイズ処理」の各オプションについて以下に示します。

  • Continue :リクエストボディ検査サイズの制限内のリクエストコンポーネントの内容を検査する
  • Match :設定しているリクエストボディ検査サイズの上限を超えるリクエストはすべてルールに一致したものとして扱う
  • No Match :設定しているリクエストボディ検査サイズの上限を超えるリクエストはすべてルールに一致しないものとして扱う

4. 挙動の​パターン

シナリオ1:​「Continue」​設定と​実際の​検査範囲

  • 条件① リクエストボディの検査サイズの上限:16KB
  • 条件② オーバーサイズ処理:Continue
  • 条件③ リクエストボディにSQLインジェクションパターンを含む場合Blockする
リクエストボディサイズ SQLインジェクションの有無 判定 詳細
#1 10KB Allow リクエストは正常に通過
#2 10KB Block リクエストは正常にブロック
#3 50KB 有(検査対象の16KB以内) Block リクエストは正常にブロック
#4 50KB 有(検査対象の16KBの外) Allow 攻撃コードは16KB地点にはないため発見できず、リクエストは通過

ポイント: Continue はあくまで「評価を続行する」という意味であり、検査範囲がボディ全体に拡張されるわけではないです。

シナリオ2:​「Match/No Match」​設定と​実際の​検査範囲

  • 条件① リクエストボディの検査サイズの上限:16KB
  • 条件② オーバーサイズ処理:Match/No Match
  • 条件③ リクエストボディにSQLインジェクションパターンを含む場合Blockする
リクエストボディサイズ オプション SQLインジェクションの有無 判定 詳細
#1 10KB Match/No Match Allow リクエストは正常に通過
#2 10KB Match/No Match Block リクエストは正常にブロック
#3 50KB Match 有/無 Block Matchのオプションにより、リクエストはブロック
#4 50KB No Match 有/無 Allow No Matchのオプションにより、リクエストは通過

ポイント: WAFの評価順序においてはオーバーサイズ処理が先に適用されます。

5. まとめ

以上のような挙動となりますので、AWS WAF を利用したリクエストボディを検査する場合には、リクエストボディの検査サイズの上限値やオーバーサイズ処理の考慮が必要となります。
本記事が皆様の開発の一助となれば幸いです。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム