スキップしてコンテンツを表示

SQL インジェクションや XSS 攻撃対策用の AWS WAF ルールを作成する方法を教えてください。

所要時間2分
0

SQL インジェクションやクロスサイトスクリプティング (XSS) 攻撃対策用の AWS WAF ルールを作成したいと考えています。

簡単な説明

次のいずれかの保護手法で SQL インジェクションと XSS 攻撃に対策します。

  • 組み込みの SQL インジェクションと XSS 対策エンジン
  • SQL インジェクションと XSS インジェクション攻撃に対する AWS マネージドルール

注: AWS WAF では、リクエスト本文、ヘッダー、Cookie の検査には、最大サイズクォータが適用されます。詳細については、「Oversize web request components in AWS WAF」(AWS WAF におけるサイズ超過したウェブリクエストコンポーネント) を参照してください。

解決策

注: 本番以外の環境で [アクション] を [カウント] に設定し、ルールをテストすることをお勧めします。AWS WAF ログの Amazon CloudWatch メトリクスを参考に、ルールを評価します。ルールをテストした後、[アクション] を [ブロック] に変更します。

組み込みの SQL インジェクションと XSS 対策エンジンを使用する

攻撃は、HTTP ヘッダー、クエリ文字列、URI など、HTTP リクエストの複数部分に対して行われる可能性があります。AWS WAF ルールで設定を行い、HTTP リクエストの複数部分を組み込みの攻撃対策エンジンと照合します。

悪意のある SQL コードの有無を検査するには、SQL インジェクション攻撃に対するルールステートメントを作成します。ウェブリクエストコンポーネントに悪意のあるスクリプトが含まれていないかを検査するには、XSS 攻撃に対するルールステートメントを作成します。

SQL インジェクションまたは XSS 攻撃に対するルールステートメントを作成する

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインの [AWS WAF] で [保護パック (ウェブ ACL)] をクリックします。
  3. 目的の保護パックを選択します。
  4. [ルールの管理] をクリックし、[ルールを編集] を選択します。
  5. [カスタムルール] を選択し、[次へ] をクリックします。
  6. [カスタムルール] をもう一度選択し、[次へ] をクリックします。
  7. ルールに次のオプションを使用します。
    [アクション] で [BLOCK] を選択します。
    [ルール名] に、ルールの名前を入力します。
    [リクエストが以下の場合:] で [ステートメントに一致] を選択します。
    [検査] で、ルールステートメントにより評価するリクエストコンポーネントを選択します。
    [マッチタイプ] で [SQL インジェクション攻撃を含む] または [XSS インジェクション攻撃を含む] を選択します。
    (オプション) テキスト変換を選択します。
  8. [ルールを追加] をクリックします。

SQL インジェクションまたは XSS 攻撃対策ルールステートメントを作成し、複数のリクエストコンポーネントに対する評価を行う

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインの [AWS WAF] で [保護パック (ウェブ ACL)] をクリックします。
  3. 目的の保護パックを選択します。
  4. [ルールの管理] をクリックし、[ルールを編集] を選択します。
  5. [カスタムルール] を選択し、[次へ] をクリックします。
  6. [カスタムルール] をもう一度選択し、[次へ] をクリックします。
  7. ルールに次のオプションを使用します。
    [アクション] で [BLOCK] を選択します。
    [ルール名] に、ルールの名前を入力します。
    [リクエストが以下の場合:] で、[少なくとも 1 つのステートメント (OR) と一致する] を選択します。
    [検査] で、ルールステートメントにより評価するリクエストコンポーネントを選択します。
    [マッチタイプ] で [SQL インジェクション攻撃を含む] または [XSS インジェクション攻撃を含む] を選択します。
    (オプション) テキスト変換を選択します。
    [ステートメント 2] の [検査] で、ルールステートメントにより評価するリクエストコンポーネントを選択します。
    [マッチタイプ] で [SQL インジェクション攻撃を含む] または [XSS インジェクションを含む] を選択します。
    (オプション) テキスト変換を選択します。
  8. [ルールを追加] をクリックします。

注: ルールを動作させるには、正しいテキスト変換を適用する必要があります。例えば、AWS WAF でクッキーを検査する場合は、URL デコード、HTML エンティティのデコード、小文字を使用する必要があります。

SQL インジェクションおよび XSS インジェクション攻撃に対し、AWS マネージドルールを使用する

独自のルールは作成せずに、アプリケーションの脆弱性やその他の望ましくないトラフィック保護するには、AWS WAF で AWS マネージドルールを使用します。

注:

  • マネージドルールグループのプロバイダーにより、ルールグループが更新されたり失効したりする可能性があります。詳細については、「Using versioned managed rule groups in AWS WAF」(バージョン管理されたマネージドルールグループを AWS WAF で使用する) を参照してください。
  • マネージドルールグループを本番環境で使用する前に、非本番環境でテストして誤検出を軽減してください。

SQL インジェクション攻撃から保護するには、SQL データベースマネージドルールグループを使用します。XSS インジェクション攻撃から保護するには、コアルールセット (CRS) マネージドルールグループを使用します。

ウェブ ACL に AWS マネージドルールのルールグループを追加する

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインの [AWS WAF] で [保護パック (ウェブ ACL)] をクリックします。
  3. 目的の保護パックを選択します。
  4. [ルールの管理] をクリックし、[ルールを編集] を選択します。
  5. [AWS マネージドルールグループ] を選択し、[次へ] をクリックします。
  6. [SQL データベース] または [コアルールセット] ルールグループを選択します。
  7. ルールの詳細を更新したら、[ルールを追加] をクリックします。
    注: 既存の AWS マネージドルールのルールグループを使用するには、マネージドルールグループを選択し、詳細を編集します。詳細については、「Working with managed rule groups」(マネージドルールグループの使用) を参照してください。

関連情報

Getting started with AWS WAF using the new console experience (新しいコンソールエクスペリエンスを使用した AWS WAF の開始)

Testing and tuning your AWS WAF protections (AWS WAF 保護のテストと調整)

AWS公式更新しました 7ヶ月前
1コメント

This article was reviewed and updated on 2026-02-27.

エキスパート

応答済み 1ヶ月前

関連するコンテンツ