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

AWS WAF を使用して DDoS 攻撃を軽減する方法を教えてください。

所要時間4分
0

AWS WAF 保護パックを使用して、アプリケーションレイヤーでの分散型サービス拒否 (DDoS) 攻撃を軽減したいと考えています。

簡単な説明

アプリケーションレイヤーの DDoS 攻撃に対する主な緩和策として AWS WAF を使用するには、次のアクションを実行します。

  • レートベースのルールを使用します。
  • AWS WAF ログをクエリして、不正なアクティビティに関する特定の情報を収集します。
  • 地理的一致ルールを作成し、ビジネスにおいて想定されない国からの不正リクエストをブロックします。
  • IP セットの一致ルールを作成し、不正なリクエストをブロックします。
  • 文字列一致ルールを作成し、不正なリクエストをブロックします。
  • 正規表現一致ルールを作成し、不正なリクエストをブロックします。
  • Bot Control を有効にして、特定のターゲットに対応する保護レベルを使用します。
  • Amazon IP 評価リストマネージドルールグループを使用します。

インフラストラクチャレイヤーの攻撃に対しては、Amazon CloudFront や Elastic Load Balancing (ELB) などの AWS サービスを使用して DDoS を自動的に防ぎます。詳細については、「AWS best practices for DDoS resiliency」(DDoS 耐性に関する AWS のベストプラクティス) を参照してください。AWS Shield Advanced 自動アプリケーションレイヤーを使用して、レイヤー 3 ~ 7 などの高度な攻撃を軽減することもできます。詳細については、「Automating application layer DDoS mitigation with Shield Advanced」(Shield Advanced を使用してアプリケーションレイヤーでの DDoS 対策を自動化する) を参照してください。

解決策

レートベースのルールを使用する

包括的レートベースのルールを作成する

包括的なレートベースのルールを使用して、IP アドレスがウェブアプリケーションに対して実行できるリクエスト数のしきい値を設定します。

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. [リージョン] で、保護パックを作成した AWS リージョンを選択します。
  3. ナビゲーションペインで [リソースと保護パック] をクリックします。
  4. 保護パックの右側で、リージョン名の横にあるアイコンを選択して保護パックを選択します。
  5. 選択した保護パックで [ルール] をクリックします。
  6. [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
  7. 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
  8. [カスタムルール] を選択し、[次へ] をクリックします。
  9. [レートベースのルール] を選択し、[次へ] をクリックします。
  10. ルールを設定するには、次の値を指定します。
    [アクション][ブロック] を選択します。
    [名前] に、ルール名を入力します。
    [レート制限] には、10 から 2,000,000,000 までの数値を入力します。
    注: 設定するレート制限を判断できない場合は、ルールアクションを使用してリクエストパターンをカウント、監視してください。次に、ベースラインに基づいてレート制限を設定します。
    [評価ウィンドウ] に 1 分、2 分、5 分、または 10 分を入力します。
    [ルール設定ブロック] ドロップダウン内:
    [レート制限に使用する IP アドレス][送信元 IP アドレス] または [ヘッダーの IP アドレス] を選択します。
    注: リクエストレートの変更を送信した後、AWS WAF がルールアクションを適用または削除する際に遅延が発生する可能性があります。
    [検査範囲][すべてのリクエストを考慮する] を選択します。
  11. [ルールを作成] をクリックします。

カスタムキー (URI パス) でのレートベースのルールを作成する

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. [リージョン] で、保護パックを作成した AWS リージョンを選択します。
  3. ナビゲーションペインで [リソースと保護パック] をクリックします。
  4. 保護パックの右側で、リージョン名の横にあるアイコンを選択して保護パックを選択します。
  5. 選択した保護パックで [ルール] をクリックします。
  6. [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
  7. 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
  8. [カスタムルール] を選択し、[次へ] をクリックします。
  9. [レートベースのルール] を選択し、[次へ] をクリックします。
  10. ルールを設定するには、次の値を指定します。
    [アクション] で [ブロック] を選択します。
    [名前] に、ルール名を入力します。
    [レート制限] には、10 から 2,000,000,000 までの数値を入力します。
    注: 設定するレート制限を判断できない場合は、ルールアクションを使用してリクエストパターンをカウント、監視してください。次に、ベースラインに基づいてレート制限を設定します。
    [評価ウィンドウ] に 1 分、2 分、5 分、または 10 分を入力します。
    [ルール設定ブロック] ドロップダウン内:
    [ルール設定] で [カスタムキー] を選択します。
  11. [リクエスト集計キー][URI パス] を選択します。
  12. [テキスト変換][なし] を選択します。
    注: リクエストレートの変更を送信した後、AWS WAF がルールアクションを適用または削除する際に遅延が発生する可能性があります。
    [検査範囲][すべてのリクエストを考慮する] を選択します。
  13. [ルールを作成] をクリックします。

詳細については、「The three most important AWS WAF rate-based rules」(最も重要な 3 つの AWS WAF レートベースのルール) を参照してください。

AWS WAF ログをクエリして、不正なアクティビティに関する特定の情報を収集する

AWS WAF ログを有効にします。次に、AWS WAF ログをクエリして DDoS シナリオを調査します。

次の AWS サービスを使用すると AWS WAF ログをクエリできます。

Amazon Athena ログパーサーまたは AWS Lambda ログパーサーを使用する

AWS WAF には、レートベースのルールで使用できる最低レートの制限があります。ボリューム不足が原因でレートベースのルールを使用できない場合や、カスタマイズ可能なブロック期間が必要な場合は、Athena または Lambda のログパーサーを使用してください。どちらのサービスも Security Automations for AWS WAF で使用できます。

地理的一致ルールステートメントを作成し、ビジネスにおいて想定されない国からの不正リクエストをブロックする

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. [リージョン] で、保護パックを作成した AWS リージョンを選択します。
  3. ナビゲーションペインで [リソースと保護パック] をクリックします。
  4. 保護パックの右側で、リージョン名の横にあるアイコンを選択して保護パックを選択します。
  5. 選択した保護パックで [ルール] をクリックします。
  6. [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
  7. 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
  8. [地域ベースのルール] をクリックします。
  9. ルールを設定するには、次の値を指定します。
    [ルールアクション][ブロック] を選択します。
    [名前] に、ルール名を入力します。
    ステートメントで、ブロックする国コードを選択します。
  10. [ルールを作成] をクリックします。

詳細については、「Geographic match rule statement」(地理的一致ルールのステートメント) を参照してください。

特定の IP アドレスからの不正リクエストをブロックする IP セットの一致ルールを作成する

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. [リージョン] で、保護パックを作成した AWS リージョンを選択します。
  3. ナビゲーションペインで [リソースと保護パック] をクリックします。
  4. 保護パックの右側で、リージョン名の横にあるアイコンを選択して保護パックを選択します。
  5. 選択した保護パックで [ルール] をクリックします。
  6. [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
  7. 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
  8. [IP ベースのルール] を選択し、[次へ] をクリックします。
  9. ルールを設定するには、次の値を指定します。
    [ルールアクション][ブロック] を選択します。
    [名前] に、ルール名を入力します。
    ステートメントで [既存の IP セットを使用] を有効にして、IP セットを選択します。
  10. [ルールを作成] をクリックします。

詳細については、「IP set match rule statement」(IP セット一致ルールのステートメント) を参照してください。

文字列一致ルールステートメントを作成して不正なリクエストをブロックする

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. [リージョン] で、保護パックを作成した AWS リージョンを選択します。
  3. ナビゲーションペインで [リソースと保護パック] をクリックします。
  4. 保護パックの右側で、リージョン名の横にあるアイコンを選択して保護パックを選択します。
  5. 選択した保護パックで [ルール] をクリックします。
  6. [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
  7. 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
  8. [カスタムルール] を選択し、[次へ] をクリックします。
  9. 再度 [カスタムルール] をクリックし、[次へ] をクリックします。
  10. [ルールアクション][ブロック] を選択します。
  11. ルールを設定するには、次の値を指定します。
    [名前] に、ルール名を入力します。
    [リクエストが以下の場合] で、[ステートメントに一致する] を選択します。
    [検査][本文] を選択します。
    [ヘッダーフィールド名] に、ブロックするボットの名前を AWS WAF ログに表示されているとおりに入力します。
    [一致タイプ][完全一致文字列] を選択します。
    [一致する文字列] に、ブロックするボットのを AWS WAF ログに表示されているとおりに入力します。
  12. [ルールを作成] をクリックします。

詳細については、「String match rule statement」(文字列一致ルールのステートメント) を参照してください。

正規表現一致ルールステートメントを作成して不正なリクエストをブロックする

次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. [リージョン] で、保護パックを作成した AWS リージョンを選択します。
  3. ナビゲーションペインで [リソースと保護パック] をクリックします。
  4. 保護パックの右側で、リージョン名の横にあるアイコンを選択して保護パックを選択します。
  5. 選択した保護パックで [ルール] をクリックします。
  6. [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
  7. 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
  8. [カスタムルール] を選択し、[次へ] をクリックします。
  9. 再度 [カスタムルール] をクリックし、[次へ] をクリックします。
  10. ルールを設定するには、次の値を指定します。
    [ルールアクション][ブロック] を選択します。
    [名前] にルール名を入力します。
    [リクエストが以下の場合] で [ステートメントに一致する] を選択します。
    [検査][URI パス] を選択します。
    [一致タイプ][正規表現と一致] を選択します。
    [一致する文字列] に、ブロックする正規表現を入力します。
    [ルールアクション][ブロック] を選択します。
  11. [ルールを作成] をクリックします。

詳細については、「Regex match rule statement」(正規表現一致ルールのステートメント) を参照してください。

Bot Control を有効にして、特定のターゲットに対応する保護レベルを使用する

AWS WAF Bot Control のターゲット対応保護レベルでは、レート制限と CAPTCHA および Challenge アクションの組み合わせを使用してボットのアクティビティを軽減します。ターゲット対応 Bot Control の価格については、「AWS WAF の料金」ページの「ケース F」を参照してください。

Bot Control とターゲット対応保護レベルを有効にするには、次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. [リージョン] で、保護パックを作成した AWS リージョンを選択します。
  3. ナビゲーションペインで [リソースと保護パック] をクリックします。
  4. 保護パックの右側で、リージョン名の横にあるアイコンを選択して保護パックを選択します。
  5. 選択した保護パックで [ルール] をクリックします。
  6. [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
  7. 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
  8. [AWS マネージドルールグループ] を選択し、[次へ] をクリックします。
  9. [支払い済み][Bot Control ルールグループ] を選択します。
  10. [検査レベル][対象] を選択します。
  11. [ルールを作成] をクリックします。

Amazon IP 評価リストマネージドルールグループを使用する

AWSManagedIPReputationList マネージドルールグループは、Amazon 内部の脅威インテリジェンスを使用して DDoS アクティビティに積極的に関与している IP アドレスを特定します。

Amazon IP 評価リストマネージドルールグループを有効にするには、次の手順を実行します。

  1. AWS WAF コンソールを開きます。
  2. [リージョン] で、保護パックを作成した AWS リージョンを選択します。
  3. ナビゲーションペインで [リソースと保護パック] をクリックします。
  4. 保護パックの右側で、リージョン名の横にあるアイコンを選択して保護パックを選択します。
  5. 選択した保護パックで [ルール] をクリックします。
  6. [ルール] の横にある [表示と編集] を選択すると、保護パックに関連付けられたルールを表示、編集できます。
  7. 右側のペインの [ルールの管理] で [ルールを追加] を選択します。
  8. [AWS マネージドルールグループ] を選択し、[次へ] をクリックします。
  9. [無料ルール][AmazonIpReputationList] を選択します。
  10. [ルールを作成] をクリックします。
AWS公式更新しました 1年前