目次

  1. 1. はじめに
  2. 2. SQL インジェクションルールステートメント とは
  3. 3. 設定方法
  4. 4. WafCharm での対応
  5. 5. おわりに

1. はじめに

2022年7月15日 PTD に AWS WAF のドキュメントの更新があり、SQL インジェクションルールステートメントに感度レベルが設定できるようになりましたので、設定方法について説明します。

2. SQL インジェクションルールステートメント とは

AWS WAF では自身で正規表現等を利用してルールを作成することができますが、ルールの作成が難しい場合でも、手軽に利用できるように SQL インジェクションを検知するためのルールステートメントが予め用意されています。
リクエストボディなど検査対象を指定してルールステートメントに SQL インジェクションルールステートメントを設定するだけで検知可能になります。

今回登場した感度レベルは LOW と HIGH の設定が選べます。
デフォルトでは LOW が設定されていますが、 HIGH を利用することでより多くのパターンに対応できるようになるということになります。

ただし、検知の確率をあげるということは、誤検知の増加にもつながる可能性があります。そのため、ユーザー自身で感度を選択することで調整できるようにしているようです。

3. 設定方法

今回は SQL インジェクションをボディ部分で検知するルールを作成していきます。
対象の ACL を開き「add my own rules ~」を選択します。

ルール名を入力後、inspect で body を選択後に match type で「Contains SQL Injection attacks」を選択します。

Statement 項目の下部に感度レベルの設定箇所があるので、状態を選択することで設定は完了です。

設定済みの SQL インジェクションルールの感度レベルを変更したい場合は、既存のルールを編集することで、対応可能でした。

4. WafCharm での対応

WafCharm では独自のルールを正規表現を利用して作成しています。感度レベル等の設定はなく、SQL インジェクションルールステートメントも利用しておりません。

また、お客様独自ルールとして SQL インジェクションルールステートメントを利用したルールをWafCharm が設定された Web ACL に登録しないでください。近日中にシステムの改修を行い、お客様側で SQL インジェクションルールステートメントを利用しても問題ないように対応いたします。

5. おわりに

ルールの内容はわからないため、感度レベルの違いは詳細には分かりませんが、利用するシステムによっては誤検知が多発することも考えられますので、既に利用中の環境で変更する場合は、COUNT 状態で様子見してから正式にBLOCKするなど、慎重に対応する方がいいかもしれません。