SQL インジェクション攻撃ルールステートメント - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

SQL インジェクション攻撃ルールステートメント

このセクションでは、SQL インジェクションルールステートメントとは何か、またその仕組みについて説明します。

SQL インジェクションルールステートメントは、悪意のある SQL コードを検査します。攻撃者は、データベースを変更したり、データベースからデータを抽出したりするために、悪意のある SQL コードをウェブリクエストに挿入します。

ルールステートメントの特性

ネスト可能 - このステートメントタイプはネスト可能です。

WCU – 基本コストは、ルールステートメントの感度レベルの設定によって異なります。Low のコストは 20 で、High のコストは 30 です。

[All query parameters] (すべてのクエリパラメータ) のリクエストコンポーネントを使用する場合、10 WCU を追加します。[JSON body] (JSON 本文) のリクエストコンポーネントを使用する場合、基本コストの WCU を倍増させます。適用する各テキスト変換について、10 WCU を追加します。

このステートメントタイプは、ウェブリクエストコンポーネントで動作し、次のリクエストコンポーネント設定が必要です。

  • [リクエストコンポーネント] — ウェブリクエストの検査対象部分 (クエリ文字列や本文など)。

    警告

    リクエストコンポーネント [Body] (本文)、[JSON body] (JSON 本文)、[Headers] (ヘッダー)、または [Cookies] (cookie) を検査する場合、AWS WAF で検査できるコンテンツの量の制限を「AWS WAF でのオーバーサイズウェブリクエストコンポーネントの処理」で確認してください。

    ウェブリクエストコンポーネントの詳細については、「AWS WAF でのルールステートメント設定の調整」を参照してください。

  • [Optional text transformations] (オプションのテキスト変換) – リクエストコンポーネントを検査する前に AWS WAF が実行する変換。例えば、小文字に変換したり、空白を正規化したりできます。複数の変換を指定すると、AWS WAF は、リストされている順に処理します。詳細については、AWS WAF でのテキスト変換の使用 を参照してください。

さらに、このステートメントには、次の設定が必要です。

  • 感度レベル – この設定は、SQL インジェクション一致基準の感度を調整します。オプションは LOW と HIGH です。デフォルトの設定は、LOW です。

    HIGH 設定は、より多くの SQL インジェクション攻撃を検出するため、推奨される設定です。感度が高いため、この設定では、特にウェブリクエストに通常とは異なる文字列が一般的に含まれている場合に、より多くの誤検知が生成されます。ウェブ ACL のテストとチューニング中に、誤検知を軽減するためにさらに多くの作業が必要になる場合があります。詳細については、AWS WAF 保護のテストとチューニング を参照してください。

    設定が低いほど、SQL インジェクションの検出の厳格度も緩くなり、誤検知も少なくなります。LOW は、SQL インジェクション攻撃に対する他の保護を備えているリソースや、誤検知に対する許容度が低いリソースにとって、より適切な選択肢である可能性があります。

このルールステートメントの場所

  • コンソールのルールビルダー - [Match type] (一致タイプ) で [Attack match condition] (攻撃一致条件) > [Contains SQL injection attacks] (SQL インジェクション攻撃を含む) を選択します。

  • API – 「SqliMatchStatement