Azure Application GatewayのWAF有効化から、WAFポリシー設定、カスタムルール作成、ログ確認までの手順

2022-07-17Application Gateway,Azure,Web Application Firewall

Azure Application Gateway(アプリケーションゲートウェイ)でのWAF(Azure Web Application Firewall)の設定手順です。

WAFはWebアプリケーションの脆弱性を狙った攻撃を検知・ブロックするサービスです。
Azure Application GatewayやAzure Front Doorなどで利用できます。

今回は、WAFの有効化、WAFポリシーの作成、Azure Application GatewayへのWAFポリシー割り当て、WAFポリシーでのカスタムルール作成、検出モードと防止モードの切り替え、ログの確認方法など、Azure Application GatewayにおけるWAFの設定手順を紹介します。

Azure Application Gatewayの概要、構成要素、リソース作成手順については、こちらで紹介しています。

※本記事では、一部を除きAzure Web Application Firewall(Webアプリケーションファイアウォール)をWAFとして表記しています。
※本記事では、一部を除きAzure Application Gateway(アプリケーションゲートウェイ)をApplication Gatewayとして表記しています。

スポンサーリンク

WAF(Azure Web Application Firewall)の概要

WAF(Azure Web Application Firewall)とは

Azure Web アプリケーション ファイアウォールとは

WAFを使用することで、SQLインジェクションやクロスサイトスクリプティングなどの一般的なWeb攻撃手法やセキュリティ脆弱性からWebアプリケーションを保護できます。
標準でOWASPのルールセットおよびBot対策ルールが用意されており、適用するだけで容易に利用を開始できます。

WAFは、設定したルールにマッチしたトラフィックを検知またはブロックします。
WAFは、Application GatewayやAzure Front Doorと組み合わせて利用可能です。
Web Application Firewallポリシーのカスタマイズも可能です。

※WAFはApplication GatewayのBasic SKUでは利用できません。

WAFの価格

WAFの利用には、Application Gatewayの利用料金とは別にWAFの課金が発生します。
WAFもApplication Gatewayと同様に、稼働時間に応じて課金されます。

Application Gateway の価格

※Application Gatewayを停止している場合は、WAFの課金も発生しません。

WAFポリシーが利用可能

Application Gatewayでは、WAFポリシーが利用できます。
WAFポリシーを利用することで、カスタムルールを作成して適用することができます。
また、Application Gateway全体だけでなく、HTTPリスナーやルートパス単位で適用することもできます。

    • Application GatewayのWAFを有効化
    • Application Gateway WAFポリシーのリソースを作成
    • Application GatewayにWAFポリシーを割り当て

Azure Application GatewayのWAF有効化から設定手順

Application GatewayでWAFを有効化

WAF機能を有効化する場合は、Application GatewayのSKUにWAF v2を選択します。

WAFの有効化手順

Application Gatewayの構成を表示します。
レベルの項目でWAF v2を選択します。
設定を保存すると、WAF機能が有効化されます。

構成でWAF v2 SKUを有効化(Application GatewayのWAF有効化手順)

WAFの検知モードと防止モードの切り替えやルールの無効化設定

WAFモードで検知モードか防御モードかを選択できます。
また、ルールの詳細設定で、ルールごとに有効または無効の設定ができます。

    • WAFモード
      • 検知モード:ログを出力するのみで、トラフィックは通過させます
      • 防止モード:ログを出力するとともに、一定の条件に達した場合にトラフィックをブロックします
    • ルールの詳細設定
      • 適用するルールセットを選択します
      • ルール単位で有効または無効かを設定します
WAF モードやルールの設定手順

Web アプリケーション ファイアウォールの設定を表示します。
WAFの状態で有効化または無効化の設定ができます。
WAFモードで検知モードか防御モードかを選択できます。
デフォルトでは検知モードになっています。
グローバルパラメータの設定や除外設定も可能です。

WAFの状態やモードの設定(Application GatewayのWAF有効化手順)
ルールのタブを表示します。
適用するルールセットを選択します。
ルールの詳細構成を有効にすると、ルールごとに有効または無効を設定できます。
ルールセットの選択(Application GatewayのWAF有効化手順)
ルールの詳細構成設定(Application GatewayのWAF有効化手順)

今後はWAFポリシーが必須になる

Application Gateway WAF v2での WAF 構成は 2027 年 3 月 15 日に廃止予定となっています。
今後は、WAFポリシーが必須になる予定です。

Azure Application Gateway WAFポリシーへのアップグレード

—広告—

WAFポリシーの作成からApplication Gatewayへ割り当てるまでの手順

Application Gatewayに個別に作成したWAFポリシーを適用できます。
この場合、Application GatewayでWAFを有効化しておく必要があります。

WAFポリシーのリソース作成手順

WAFポリシーのリソースは、Application Gatewayとは別に個別に作成します。
WAFポリシーは、Application Gatewayのリソースと関連付けて利用します。
WAFポリシーの関連付けは、Application Gatewayのリソース単位、リスナー単位、またはルートパス単位で設定できます。

WAFポリシーのリソース作成手順
Web アプリケーション ファイアウォールのメニューから作成します。 WAFポリシーのリソース作成(Application GatewayのWAFポリシー作成、設定手順)

WAFポリシーでリージョンのWAF(Application Gateway)を選択します。
Application Gatewayのリソースと同じリージョンを選択します。

WAFポリシーの基本設定(Application GatewayのWAFポリシー作成、設定手順)

マネージドルールの設定画面が表示されます。
既定のルールセットでOWASPのバージョンを選択できます。
追加のルールセットとして、ボット管理ルールセットも選択できます。

WAFポリシーのマネージドルール設定(Application GatewayのWAFポリシー作成、設定手順)

ポリシー設定の画面が表示されます。
上限設定など、ポリシー全体に共通して適用される動作を制御する項目を設定します。
今回は設定せずに、そのまま先に進みます。

Web Application Firewall の要求とファイル アップロードのサイズ制限

WAFポリシーのポリシー設定(Application GatewayのWAFポリシー作成、設定手順)

カスタムルールの画面が表示されます。
カスタムルールを追加できます。
今回は設定せずに、そのまま先に進みます。

WAFポリシーのカスタムルール設定(Application GatewayのWAFポリシー作成、設定手順)

関連付けの画面が表示されます。
関連付けするApplication Gateway、リスナー、ルートパスを選択します。
今回は設定せずに、そのまま先に進みます。

WAFポリシーの関連付け設定(Application GatewayのWAFポリシー作成、設定手順)
確認画面が表示されます。
作成を選択します。
WAFポリシーの作成確認画面(Application GatewayのWAFポリシー作成、設定手順)

※今回、画面例ではOWASP 3.2を選択していますが、記事更新日時点ではMicrosoft_DefaultRuleSet 2.1が推奨されています。

Web Application Firewall の DRS および CRS の規則グループと規則

Application GatewayへのWAFポリシー割り当て手順

WAFポリシーをApplication Gatewayで利用する場合は、関連付けを行います。
WAFポリシーにある関連付けのメニューから設定します。
今回はリスナーに関連付けしています。

※Application Gatewayのリソース側でWAFが有効化されている必要があります。

WAFポリシーの割り当て手順
関連付けを表示します。
関連付けの追加でリスナーを選択します。
WAFポリシーで関連付けを追加(Application GatewayのWAFポリシー作成、設定手順)
関連付けするApplication GatewayのリソースとHTTPリスナーを選択します。
追加を選択します。
追加が完了すると、WAFポリシーが関連付けられたリソースが表示されます。
WAFポリシーでリスナーへの関連付けを追加(Application GatewayのWAFポリシー作成、設定手順)
関連付け追加後の画面(Application GatewayのWAFポリシー作成、設定手順)

WAFポリシーの防止モード、検出モードの切り替え手順

WAFポリシーは、防止モードと検出モードを切り替えて利用できます。
なお、WAFポリシーが適用されている場合は、WAFポリシー側のポリシーモードが優先されます。

Azure Web アプリケーション ファイアウォール (WAF) ポリシーの概要

複数のポリシーを異なるスコープで関連付けている場合は、適用スコープがより具体的(パスベース > リスナー単位 > グローバル)なポリシーが有効になります

防止モード、検出モードを切り替え
WAFポリシーの概要でポリシーモードを切り替えることができます。
検出モードで設定している場合は、防止モードに切り替えると表示されます。
防止モードで設定している場合は、検出モードに切り替えると表示されます。
WAFポリシーで防止モードへ切り替え(Application GatewayのWAFポリシー作成、設定手順)
WAFポリシーで検出モードへ切り替え(Application GatewayのWAFポリシー作成、設定手順)

マネージドルールセットの割り当て手順

マネージドルールセットを追加で割り当てることができます。
マネージドルールセットでは、既定のルールセット、ボット管理ルールセット、HTTP DDoSルールセットを選択できます。

Web Application Firewall の DRS および CRS の規則グループと規則
Azure Application Gateway WAF の HTTP DDoS ルールセット

※なお、記事更新日時点では、HTTP DDoSルールセットはプレビューとなっております。

マネージドルールセットの割り当て手順

管理されているルールのメニューで割り当てを選択します。
マネージドルールセットの割り当て画面が表示されます。
適用するルールセットを選択して保存します。

 

※今回、画面例ではOWASP 3.2を選択していますが、記事更新日時点ではMicrosoft_DefaultRuleSet 2.1が推奨されています。

Web Application Firewall の DRS および CRS の規則グループと規則

個別にマネージドルールセット内のルールを無効化

マネージドルールセット内の各ルールは、個別に無効化できます。
アプリケーションの要件などに応じて、特定のルールを無効化する際に使用します。

マネージドルールセット内のルールを個別に無効化
無効化したいルールを選択します。
無効にするを選択します。
状態がEnabledからDisabledに変わっていることを確認できます。
WAFポリシーのマネージドルールを無効化(Application GatewayのWAFポリシー作成、設定手順)
WAFポリシーのマネージドルールを無効化(Application GatewayのWAFポリシー作成、設定手順)

—広告—

WAFポリシーでカスタムルールを作成する手順

カスタムルールとは

個別に条件とアクションを指定するルールです。
マネージドルールセットでは対応できない要件に合わせて、独自の条件とアクションでトラフィックを制御できます。
例えば、特定の国(GeoMatch)や特定のIPアドレスレンジ(IPMatch)からのアクセスを遮断することに利用できます。
逆に、アクセスを許可することも可能です。

Azure Application Gateway の Web アプリケーション ファイアウォール v2 カスタム規則

条件には、RemoteAddr(クライアントIP)やRequestUriなどを指定できます。
評価順序は、カスタムルール > マネージドルールの順になります。

条件に合致したリクエストに対して、トラフィックの扱いを指定できます。

    • Allow
      • リクエストを許可します
      • 以降(優先度が低いルール)の評価はスキップされます
    • Block
      • 防止モード時にリクエストを遮断します
      • 以降(優先度が低いルール)の評価はスキップされます
    • Log
      • トラフィックは許可
      • ログに記録
      • 以降(優先度が低いルール)の評価は継続します
    • JSChallenge
      • JavaScript チャレンジでクライアントの正当性を確認します

その他にも、レート制限といったことも可能です。

Application Gateway の Web アプリケーション ファイアウォールのレート制限とは何ですか

カスタムルールについては、こちらの記事でも紹介しています。

※なお、Front Doorに適用するWAFポリシーと、Application Gatewayに適用するWAFポリシーでは設定できる内容に差異があります。

WAFポリシーでカスタムルールを作成する手順

今回は、特定のIPからのアクセスを拒否するカスタムルールを作成します。

カスタムルールの作成手順

WAFポリシーのカスタムルールメニューから設定します。
カスタムルールの追加を選択します。

カスタムルールの追加画面が表示されます。
カスタムルール名と優先度を入力します。
条件でIPアドレスと含まれるを選択し、ブロックしたいIPアドレスを入力します。

処理でトラフィックを拒否するを選択します。
保存を選択すると、カスタムルールが新規作成されます。

※ルールの種類でレート制限を選択すると、レート制限用の設定メニューが表示されます。

WAFポリシーのレート制限設定画面例(Application GatewayのWAFポリシー作成、設定手順)

WAFポリシーのカスタムルールを追加(Application GatewayのWAFポリシー作成、設定手順)
WAFポリシーのカスタムルールを追加(Application GatewayのWAFポリシー作成、設定手順)

作成したカスタムルールの動作を確認

カスタムルールでブロック設定したIPアドレスからアクセスし、カスタムルールが正しく動作することを確認します。

カスタムルールの動作を確認
カスタムルールでアクセス拒否設定したIPアドレスからアクセスした場合、HTTPステータスコード403が返されます。 WAFポリシーでブロックされた場合の画面例(Application GatewayのWAFポリシー作成、設定手順)

※WAFポリシーが検出モードに設定されている場合は、カスタムルールでトラフィックを拒否すると設定した場合でもトラフィックは許可されます。

カスタムルールの作成手順については、こちらの記事でも紹介しています。

WAFポリシーで作成したカスタムルールのログをLog Analyticsで確認

Application Gatewayの診断設定を使用して、WAFのログをLog Analyticsワークスペースへ転送できます。
Application Gatewayの診断設定のログカテゴリにあるApplication Gateway Firewall Logが、WAFのログに該当します。

Application Gatewayのログ設定から確認までの手順については、こちらで紹介しています。

WAF ログを確認

設定したカスタムルールに基づきトラフィックがブロックされたことが確認できます。

WAFポリシーのカスタムルールでブロックされた場合のログ例(Application GatewayのWAFポリシー作成、設定手順)

—広告—

最後に

今回は、Application GatewayでWAFを利用するための手順について確認しました。
WAFポリシーではマネージドルールだけでなく、カスタムルールを作成して適用できることを確認しました。
また、WAFポリシーはApplication Gateway全体だけでなく、リスナー単位などで個別に関連付けできるため、ホスト単位などでアクセスを細かく制御できます。

引き続き、さまざまな機能を試していきたいと思います。

Application Gatewayのカスタムエラーページ設定手順については、こちらで紹介しています。

スポンサーリンク