AWS WAFルールの基本をわかりやすく解説!マネージドルールも併せて紹介

サイバー攻撃の脅威を対策するためにAWS WAFを導入する企業が増えています。ただし、AWS WAFを導入しただけでは、不正アクセスや攻撃を防ぐことができず、AWS WAFのルールの設定が必要です。

この記事では、不正アクセスや攻撃を検知する役割を担うAWS WAFルールの基本構成について解説します。ルールの設定方法や設定を楽にするマネージドルールについても紹介するので、AWS WAFを導入しようとしている方はぜひ最後までご覧ください。

目次

そもそもAWS WAFとは?

AWS WAFは、AWSが提供するWAF(Webアプリケーションファイアウォール)で、Webアプリケーションをサイバー攻撃から守るサービスです。AWS WAFの導入によって、SQLインジェクションやクロスサイトスクリプティングなど情報漏えいやデータ改ざんをもたらすサイバー攻撃を防御できます。

サイバー攻撃を防御するためにはAWS WAFのルールの設定が必要です。ルールに設定された条件によって、AWS WAFが実施するアクションが異なるので、自社のセキュリティポリシーを把握したうえで、AWS WAFのルールを適切に設定する必要があります。

関連リンク

AWS WAFルールの基本構成

AWS WAFルールは、ルールステートメントとルールアクションの2部構成で成り立っています

ルールステートメントを用いて、どのようなリクエストが許可され、またはブロックされるべきかを定義します。一方、ルールアクションはそのステートメントに基づいて実際にどのようなアクションを取るかを決定します。

ここでは、それぞれについて解説します。

ルールステートメント

ルールステートメントは、リクエストが特定の条件に一致するかどうかを判定するためのものです。下記はルールステートメントとして利用できる条件です。

  • 地理的一致:リクエストの発信地域に基づいてフィルタリングします。
  • IPセット一致:リクエストのIPアドレスをフィルタリングします。
  • ラベル一致:ほかのルールによってラベルが付与されたリクエストを検知します。
  • 正規表現一致:直接記述やRegexPatternSetで指定した正規表現をリクエストと照合してフィルタリングします。
  • サイズ制約:リクエストのサイズに基づいてフィルタリングします。
  • SQLi攻撃:リクエストに悪意のあるSQLコードが含まれているかどうかを検出します。
  • 文字列一致:リクエスト内に特定の文字列の有無を検知します。
  • XSSスクリプティング攻撃:リクエストでのクロスサイトスクリプティング(XSS)攻撃を検出します。

さらに、「AND」や「OR」など論理ルールステートメントを使用することで、上記の条件を組み合わせて、より高度な検知を実現することができます。

ルールアクション

ルールアクションは、ルールステートメントに一致したリクエストに対して取るべき行動を定義します。AWS WAFで設定できる主なルールアクションは以下の通りです。

  • Allow:条件に一致したリクエストを許可し、サービスに転送します。Allowは終了アクションで、その他のルールにおける判定処理は継続されません。
  • Block:条件に一致したリクエストを拒否します。デフォルトでは、クライアントにHTTP 403のステータスコードで返しますが、返答をカスタマイズすることも可能です。また、Blockも終了アクションです。
  • Count:条件に一致するリクエストの数をカウントするだけで、リクエスト自体はブロックまたは許可しません。Countは非終了アクションで、該当リクエストをAWS WAF内のほかのルールによる検査が継続されます。
  • CAPTCHAおよびChallenge:CAPTCHAパズルやサイレントチャレンジを表示させ、リクエストがボットからのものではないことを確認します。CAPTCHAパズルやサイレントチャレンジが成功すると、元のリクエストをサービスに転送します。

このようにAWS WAFのルールアクションを適切に設定することで、WebアプリケーションやAPIを不正アクセスや攻撃から守ることができます。

AWS WAFルールの設定方法

ここではAWS WAFにルールを追加する方法を説明します。AWS WAFの設定がまだ完了していない場合、こちらの記事の手順に沿って設定してください。

  1. “Add rules and rule groups”のページで、“Add rules”、“Add my own rules and rule groups”、“Rule builder、“Rule visual editor”の順にクリックします。
  2. 該当ルールの名前を決めて、“Name”に入力します。
  3. “Type”で”Regular rule”を選択します。DDoS攻撃を対策するレートベースルールを作成する場合”Rate-based rule”を選択します。レートベースルールの詳細についてはこちらの記事をご参照ください。
  4. “If a request”からルールステートメントを選択します。ステートメントの組み合わせもこちらで設定できます。リクエストの本文を検査した場合”Body”にします。Body以外にも、”JSON body(JSON 本文)”、”Headers(ヘッダー)”、”Cookies”なども選択できます。
  5. “Match type”を選択し、“String to match”に検知したい値を入れます。
  6. “Action”でルールアクションを設定します。
  7. “Add rule”をクリックしてルールを追加します。

ルールを設定したあと、ルールの適用順序を決めるために優先順位の調整が必要となります。ルールの優先順位は“Set rule priority”ページで“Move up”か“Move down”で調整できます。

AWS WAFのマネージドルールとは

AWS WAFのマネージドルールとは、AWSが提供しているプリセットされたルールセットです。AWSによって構成・管理されるので、マネージドルールを適用することでAWS WAFのルールを一から作成する必要がなく、OWASP Top 10をはじめとした一般的な脅威からアプリケーションを守ることができます

ただし、AWSマネージドルールはあくまでもプリセットされたルールセットなので、自社特有のセキュリティリスクや脅威に完全に対応しきれない可能性があります。また、誤検知も発生するかもしれません。

そのため、AWSマネージドルールを適用したとしても、特定のセキュリティ要件に合わせたカスタムルールの追加が必要になる場合があります。ここではAWSマネージドルールについて詳しく解説します。

関連リンク

AWSマネージドルールの種類

AWSマネージドルールには主に下記の6つのルールグループがあります。それぞれのルールグループの防御対象が異なるので、自社のセキュリティニーズによって選択する必要があります。

  1. ベースラインルールグループ:一般的な攻撃から保護するルールグループです。OWASP Top 10をはじめとするリスクの高い脅威を対策する「コアルールセット(CRS)マネージドルールグループ」や公開されている管理ページを外部アクセスから遮断する「管理者保護マネージドルールグループ」など、基本的なルールグループが含まれます。
  2. ユースケース固有のルールグループ:SQLデータベースやWordPressなど、特定のアプリケーションや環境に特化したルールグループが含まれます。
  3. IP評価ルールグループ:IPアドレスによってリクエストの遮断を判断するルールグループです。Amazon内部脅威インテリジェンスが管理しているAmazon IP評価リストに基づいてIPアドレスをフィルタリングするルールグループが含まれます。
  4. AWS WAF Fraud Control Account Creation Fraud Prevention(ACFP)ルールグループ:アカウント作成プロセスにおける不正行為を防止するためのルールが含まれます。
  5. AWS WAF Fraud Controlアカウント乗っ取り防止(ATP)のルールグループ:アカウントを不正に乗っ取ろうとするリクエストを管理し防止するルールグループです。
  6. AWS WAF Bot Controlルールグループ:悪意のあるBotからのリクエストを管理・制御するルールグループです。

また、AWS WAF Fraud Controlアカウント乗っ取り防止(ATP)のルールグループ及びAWS WAF Bot Controlルールグループは有料オプションとなります。AWS WAFの基本利用料金に含まれないので注意してください。

AWSマネージドルールの注意点

すぐにルールを設定できる面で便利なAWSマネージドルールですが、利用にあたって注意点があります。

AWSマネージドルールはプリセットされた汎用的なルールセットのため、一般的な脅威は対策できるものの、個社特有の脅威に対応しきれない恐れがあります。個社特有のセキュリティリスクに対応するためには、独自のカスタムルールの追加が必要になります。

カスタムルールの作成には、セキュリティにおける専門知識が必要となるため、社内にセキュリティ人材がいないと難しいと言えるでしょう。

また、AWSマネージドルールは汎用ルールであるため誤検知が発生する可能性があります。誤検知が発生した場合、発生原因の特定やカスタムルールの作成・調整が必要となるので、運用工数が増える可能性があります。

さらに、新しい脅威にも対策できるようにAWSマネージドルールを最新バージョンに保たなければなりません。AWSマネージドルールのアップデート情報を積極的に収集し、適宜アップデートを行う必要があります。

こういった理由から、AWSマネージドルールを入れたとしても適切な運用が必要になります。

AWS WAFの運用を楽にする!WAF自動運用サービス「WafCharm」

AWS WAFではさまざまなルールステートメントとアクションを組み合わせることで、高度な検知と攻撃の防御を実現できますが、運用における課題が残ります。例えば個社特有のセキュリティ脅威に対策するためのカスタムルール作成や誤検知の対応です。

AWS WAFの運用課題を解決するためには、WAF自動運用サービス「WafCharm」の利用がおすすめです。

WafCharmを導入することで、一般的な脅威だけでなく個社特有のセキュリティ脅威も対策することができます。ルールの作成・調整・管理はすべてWafCharmが行うので、AWS WAFの運用工数の負担がなくなります。

また、WafCharmには日本語サポートが付いていて、誤検知が発生した場合は、原因の特定からルール調整などをWafCharmサポートに依頼できます。そのため、誤検知対応もWafCharm導入で最小限に抑えることができます!

WafCharmを入れることで、セキュリティ担当者をAWS WAFの運用から解放することができます。

WafCharmの詳細がわかる資料を用意しております。こちらからダウンロードしてください。