AWS WAF を使用して、User-Agent ヘッダーを指定しない HTTP リクエストをブロックする方法

最終更新日: 2019 年 12 月 6 日

リクエストに User-Agent ヘッダーがないか、User-Agent ヘッダー値が空である HTTP リクエストをブロックしたいと考えています。AWS WAF を使用してこれらのリクエストをブロックする方法

簡単な説明

デフォルトでは、AWS WAF フィルタは HTTP リクエストパラメータをチェックしません。ただし、HTTP リクエストを確認するために、以下のいずれかの条件でルールを作成できます。

解決方法

方法 #1: 正規表現一致条件でルールを作成する

まず、正規表現一致条件を作成します。

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインで、[String and Regex matching] を選択します。
  3. [Create condition] を選択します。
  4. [Name] に「UA-condition」と入力します。
  5. [Region] で、ウェブアクセスコントロールリスト (web ACL) を作成したリージョンを選択します。
    注意 : web ACL が Amazon CloudFront 用に設定されている場合は、[Global] を選択します。
  6. [Type] で、[Regex match] を選択します。
  7. [Part of the request to filter on] で、[Header] を選択します。
  8. [Header] で、[User-Agent] を選択します。
  9. [Transformation] で、 [None] を選択します。
  10. [Regex patterns to match to request] では、デフォルトの [Create regex pattern set] を選択したままにします。
  11. [New pattern set name] に 「testpattern」と入力します。
  12. 正規表現「+」を入力し、プラス [+] 記号を選択します。
    注意: 正規表現 (regex) は、行末記号を除くすべての文字に一致します。
  13. [Create pattern set and add filter] を選択します。
  14. [Create] を選択します。

次に、ルールを作成し、条件を追加します。

  1. ナビゲーションペインで [Rules] をクリックします。
  2. [Create Rule] を選択します。
  3. [Name] に [UA-Rule] と入力します。
    注意 : Amazon CloudWatch メトリクス名は、[Name] フィールドの入力内容に基づいて自動的に入力されます。
  4. [Rule type] で、[Regular rule] を選択します。
  5. [Region] で、web ACL を作成したリージョンを選択します。
    注意 : web ACL が CloudFront 用に設定されている場合は、[Global] を選択します。
  6. [Add conditions] で、[match at least one of the filters in the string match condition] と条件に一致 [しない を選択します。
  7. 条件ドロップダウンメニューから [UA-condition] を選択します。
  8. [Create] を選択します。

最後に、このルールを web ACL に追加します。

  1. ナビゲーションペインで、[Web ACLs] をクリックします。
  2. web ACL の名前を選択します。
  3. [Rules] タブを選択し、[Edit web ACL] を選択します。
  4. [Rules] で、[UA-Rule] を選択します。
  5. [Add rule to web ACL] を選択します。
  6. [Action で [Block] が選択されていることを確認します。
  7. [Default action] で、[Allow all requests to match any rules] を選択します。
  8. [Update] を選択します。

方法 #2: サイズ制約条件でルールを作成する

注意 : デフォルトでは、アカウントあたりのパターンセット数は 5 です。この AWS WAF の制限 を超えた場合は、次のサイズ制約ソリューションを使用できます。

まず、Size 制約条件を作成します。

  1. AWS WAF コンソールを開きます。
  2. ナビゲーションペインで、[Size constraints] を選択します。
  3. [Create condition] を選択します。
  4. [Name] に [UA-condition2] と入力します。
  5. [Region] で、web ACL を作成したリージョンを選択します。
    注意 : web ACL が CloudFront 用に設定されている場合は、[Global] を選択します。
  6. [Part of the request to filter on] で、[Header] を選択します。
  7. [Header] に「User-Agent」と入力します。
  8. [Comparison operator] で、[Greater than or equal] を選択します。
  9. [Size (Bytes)] で、デフォルト値の 0のままにします。
  10. [Transformation] で、 [None] を選択します。
  11. [Add filter] を選択します。
  12. [Create] を選択します。

次に、ルールを作成し、条件を追加します。

  1. ナビゲーションペインで [Rules] をクリックします。
  2. [Create Rule] を選択します。
  3. [Name] に [UA-Rule2] と入力します。
    注意 : CloudWatch メトリクス名は、[Name] フィールドの入力内容に基づいて自動的に入力されます。
  4. [Rule type] で、[Regular rule] を選択します。
  5. [Region] で、web ACL を作成したリージョンを選択します。
    注意 : web ACL が CloudFront 用に設定されている場合は、[Global] を選択します。
  6. [条件の追加] で、一致 [しない ] を選択し、サイズ制約条件のフィルタを少なくとも 1 つ選択します。
  7. 条件ドロップダウンメニューから [UA-condition2] を選択します。
  8. [Create] を選択します。

最後に、このルールを web ACL に追加します。

  1. ナビゲーションペインで、[Web ACLs] をクリックします。
  2. web ACL の名前を選択します。
  3. [Rules] タブを選択し、[Edit web ACL] を選択します。
  4. [Rules] で、[UA-Rule] を選択します。
  5. [Add rule to web ACL] を選択します。
  6. [Action] に [Block] が選択されていることを確認します。
  7. [Default action] で、[Allow all requests to match any rules] を選択します。
  8. [Update] を選択します。

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

改善できることはありますか?


さらにサポートが必要な場合