AWS WAF を使用して、User-Agent ヘッダーを含まない HTTP リクエストをブロックするにはどうすればよいですか?

最終更新日: 2022 年 7 月 27 日

特定の User-Agent を含まない HTTP リクエストや、リクエストに特定の User-Agent ヘッダー値を含まない HTTP リクエストを制限したいと考えています。

簡単な説明

デフォルトでは、AWS WAF フィルターは HTTP リクエストパラメータが存在するかどうかを確認しません。HTTP リクエストパラメータが存在するかどうかを確認するには、次を実行します。

AWS マネージドルールを使用して、User-Agent ヘッダーを含まないリクエストをブロックします。

- または -

カスタムルールを使用して、User-Agent ヘッダーを含まないリクエストをブロックするか、リクエストに特定の User-Agent が含まれている場合はトラフィックをブロックします。

解決方法

AWS マネージドルールを使用して、User-Agent ヘッダーを含まないリクエストをブロックする

AWS WAF の AWS マネージドルールを使用すると、独自のルールを記述することなく、User-Agent ヘッダーを含まない HTTP リクエストをブロックできます。

注: マネージドルールについては、バージョンが変更されたり、有効期限が切れたりする場合があります。詳細については、「Best practices for handling managed rule group versions」(マネージドルールグループのバージョンを処理するためのベストプラクティス) を参照してください。

次のルールは、HTTP User-Agent ヘッダーがないリクエストと、ウェブブラウザからのものではないと考えられる User-Agent 文字列を検査します。

NoUserAgent_HEADER
このルールは、コアルールセット (CRS) マネージドルールグループからのものです。このルールは、HTTP User-Agent ヘッダーがないリクエストを検査します。

SignalNonBrowserUserAgent
このルールは、AWS WAF Bot Control ルールグループからのものです。このルールは、User-Agent を持たないリクエストを含む、ウェブブラウザからのものではないと考えられる User-Agent 文字列を検査します。

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

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインの [AWS WAF] の下で、[Web ACL] (ウェブ ACL) を選択します。
  3. [Region] (リージョン) で、ウェブ ACL を作成した AWS リージョンを選択します。
    注: ウェブ ACL が Amazon CloudFront 用に設定されている場合は、[Global] (グローバル) を選択します。
  4. ウェブ ACL を選択します。
  5. [Rules] (ルール) を選択し、[Add Rules] (ルールを追加) を選択します。ドロップダウンから [Add managed rule groups] (マネージドルールグループの追加) を選択します。
  6. [AWS managed rule groups] (AWS マネージドルールグループセクション) を展開します。
  7. ルールグループを見つけて、[Add to web ACL] (ウェブ ACL に追加) を有効にします。
    例えば、NoUserAgent_HEADER ルールを含む [Core rule set] (コアルールセット) の [Add to web ACL] (ウェブ ACL に追加) をオンにすることができます。
  8. (オプション) [Edit] (編集) を選択して、ルールグループの設定を表示および変更します。
  9. [Add Rules] (ルールを追加) を選択します。
  10. [Save] (保存) を選択します。

ウェブ ACL の既存の AWS マネージドルールグループを編集するには

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインの [AWS WAF] の下で、[Web ACL] (ウェブ ACL) を選択します。
  3. [Region] (リージョン) で、ウェブ ACL を作成した AWS リージョンを選択します。
    注: ウェブ ACL が Amazon CloudFront 用に設定されている場合は、[Global] (グローバル) を選択します。
  4. ウェブ ACL を選択します。
  5. [Rules] (ルール) を選択し、 [Edit] (編集) を選択して設定を表示および変更します。
    注: 設定の編集の詳細については、「Working with managed rule groups」(マネージドルールグループの操作) を参照してください。
  6. 編集が完了したら、[Save] (保存) を選択します。

AWS マネージドルールルールグループで誤検出のシナリオが発生した場合は、「AWS Managed Rules for AWS WAF」(AWS WAF の AWS マネージドルール) を参照してください。

カスタムルールを使用して、User-Agent ヘッダーを含まないリクエストをブロックする

カスタムルールを使用して User-Agent ヘッダーを含まないリクエストをブロックするには、次を実行します。

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインの [AWS WAF] の下で、[Web ACL] (ウェブ ACL) を選択します。
  3. [Region] (リージョン) で、ウェブ ACL を作成した AWS リージョンを選択します。
    注: ウェブ ACL が Amazon CloudFront 用に設定されている場合は、[Global] (グローバル) を選択します。
  4. ウェブ ACL を選択します。
  5. [Rules] (ルール) を選択し、[Add Rules] (ルールを追加)、[Add my own rules and rule groups] (独自のルールとルールグループを追加) の順に選択します。
  6. [Rule type] (ルールタイプ) で、[Rule Builder] (ルールビルダー) を選択します。
  7. [Name] (名前) で、このルールを特定するための名前を入力します。
  8. [Type] (タイプ) で、[Regular rule] (通常のルール) を選択します。
  9. [If a request] (リクエストが次の場合) で、[doesn't match the statement (NOT)] (ステートメントと一致しない (NOT)) を選択します。
  10. [Statement] (ステートメント) の [Inspect] (検査) で、[Single header] (単一ヘッダー) を選択します。
    [Header field name] (ヘッダーフィールド名) で、フィールドの名前を入力します。例: User-Agent
    [Match type] (一致タイプ) で、[Size greater than] (次を超えるサイズ:) を選択します。
    [Size in bytes] (サイズ (バイト)) で、0 (ゼロ) を入力します。
    (オプション) [Text transformation] (テキスト変換) を選択するか、[None] (なし) を選択します。
  11. [Action] (アクション) で [Block] (ブロック) を選択します。
  12. [Add Rule] (ルールを追加) を選択します。
  13. (オプション) [Set Rule Priority] (ルール優先度を設定) で、ルールを選択し、優先順位を移動します。ルールは、表示される順序で処理されます。詳細については、ウェブ ACL でのルールとルールグループの処理順序を参照してください。
  14. [Save] (保存) を選択します。

カスタムルールを使用して、リクエストに特定の User-Agent が含まれている場合はトラフィックをブロックする

カスタムルールを使用して、リクエストに特定の User-Agent が含まれている場合にトラフィックをブロックするには、次を実行します。

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインの [AWS WAF] の下で、[Web ACL] (ウェブ ACL) を選択します。
  3. [Region] (リージョン) で、ウェブ ACL を作成した AWS リージョンを選択します。
    注: ウェブ ACL が Amazon CloudFront 用に設定されている場合は、[Global] (グローバル) を選択します。
  4. ウェブ ACL を選択します。
  5. [Rules] (ルール) を選択し、[Add Rules] (ルールを追加)、[Add my own rules and rule groups] (独自のルールとルールグループを追加) の順に選択します。
  6. [Rule type] (ルールタイプ) で、[Rule Builder] (ルールビルダー) を選択します。
  7. [Name] (名前) で、このルールを特定するための名前を入力します。
  8. [Type] (タイプ) で、[Regular rule] (通常のルール) を選択します。
  9. [If a request] (リクエストが次の場合) で、[matches a statement] (ステートメントに一致) を選択します。
  10. [Statement] (ステートメント) の [Inspect] (検査) で、[Single header] (単一ヘッダー) を選択します。
    [Header field name] (ヘッダーフィールド名) で、フィールドの名前を入力します。例: User-Agent
    [Match type] (一致タイプ) で、[Contains string] (文字列を含む) を選択します。
    [String to match] (照合する文字列) で、ブロックする特定の User-Agent の値を入力します。
    (オプション) [Text transformation] (テキスト変換) を選択するか、[None] (なし) を選択します。
  11. [Action] (アクション) で [Block] (ブロック) を選択します。
  12. [Add Rule] (ルールを追加) を選択します。
  13. (オプション) [Set Rule Priority] (ルール優先度を設定) で、ルールを選択し、優先順位を移動します。ルールは、表示される順序で処理されます。詳細については、ウェブ ACL でのルールとルールグループの処理順序を参照してください。
  14. [保存] を選択します。

この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?