Azure Web Application FirewallをApplication Gatewayで使ってみた

Application Gateway,Azure,Web Application Firewall

Azure Web アプリケーション ファイアウォール(WAF)はWebアプリケーション脆弱性を利用した攻撃を検知、ブロックするサービスです。
Azure Application Gateway(アプリケーションゲートウェイ)でもWAFを利用する事が出来ます。

今回はアプリケーションゲートウェイでWAFの初期設定をやってみました。
WAFの設定ではカスタムWAFの設定からアプリケーションゲートウェイへの割り当ても併せてやってみました。

今回利用したアプリケーションゲートウェイの構築手順はこちら。
併せて見て頂けると大変有難いです。

スポンサーリンク

Azure Application Gateway(アプリケーションゲートウェイ)でAzure Web アプリケーション ファイアウォール(WAF)を使う

アプリケーションゲートウェイではWAFを利用する事が出来ます。

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

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

WAFを使うとSQL インジェクションなどの一般的な Web ハッキング手法、クロスサイト スクリプティングなどのセキュリティ脆弱性からWeb アプリを保護してくれます。

標準でOWASPおよびBotのルールが用意されており、適用するだけですぐに使用開始出来ます。
WAFルールにマッチしたトラフィックを検知、ブロックしてくれます。

アプリケーションゲートウェイやFront Doorと併せて利用する事が出来ます。
アプリケーションゲートウェイはv1(s除く)、v2ともに利用可能です。
v2ではWeb Application Firewall ポリシーも利用可能です。

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

Web アプリケーション ファイアウォールの利用にはアプリケーションゲートウェイの利用とは別に課金が発生します。
v1、v2それぞれで利用料金が異なります。

Web アプリケーション ファイアウォール の価格
Application Gateway の価格

Azure Web アプリケーション ファイアウォール(WAF)利用方法は2種類

アプリケーションゲートウェイでWAFを利用する方法は2種類あります。

    • アプリケーションゲートウェイでWAFを有効化して利用する方法
    • Web Application Firewall(WAF) ポリシーを個別に作成してアプリケーションゲートウェイに割り当てる方法

Application Gateway(アプリケーションゲートウェイ)でWAFを利用する

Azure Webアプリケーション ファイアウォール(WAF)を有効化

アプリケーションゲートウェイのSKUでWAF v2を選択するだけでAzure Webアプリケーション ファイアウォール(WAF)が利用できます。

WAFを有効化

アプリケーションゲートウェイの構成でレベルをWAF v2を選択します。

これでWAFを利用する事が出来ます。

※アプリケーションゲートウェイ v1(s除く)でもWAFは利用可能です。

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

WAFモードやルールの設定が出来ます。

    • WAFモード
      • 検知モード:ログ出力のみでトラフィックはブロックしない
      • 防止モード:ログ出力と共にトラフィックをブロックする
        • トラフィックのブロックは一定条件に達した場合に実施される
    • ルール
      • ルール単位で有効、無効の設定が出来る
WAF設定
WAFモードの設定が出来ます。
デフォルトでは検知モードになっています。
グローバルパラメータの設定や除外設定も可能です。
ルールセットを選択する事が出来ます。
ルールの詳細構成を有効にするとルール単位での有効、無効の設定が出来ます。

Web Application Firewall(WAF)ポリシーの作成から割り当てまで

アプリケーションゲートウェイv2では個別に作成したWAFポリシーを利用する事が出来ます。

WAFポリシーの作成

Web Application Firewall(WAF) ポリシーのサービスを作成してアプリケーションゲートウェイに割り当てます。

WAFポリシー作成
Web Application Firewall ポリシーで作成を選択します。

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

アプリケーションゲートウェイと同じ場所を選択します。

管理されているルールのタブではルールセットを選択します。OWASPのバージョンを選択します。

ポリシー設定のタブではグローバルパラメータの設定します。

カスタムルールのタブではカスタムルールの追加が出来ます。

※後で設定します。

関連付けのタブでは利用するアプリケーションゲートウェイを選択します。
関連付けはアプリケーションゲートウェイ、リスナー、ルートパスの単位で出来ます。

※後で設定します。

確認画面で作成を選択します。

Application Gateway(アプリケーションゲートウェイ)ヘWAFポリシーを割り当て

アプリケーションゲートウェイへのWAFポリシーはApplication Gateway WAF ポリシー側のメニューで実施します。

※事前にアプリケーションゲートウェイ側でWAFを有効にしておく必要があります。

WAFポリシー割り当て
関連付けられたアプリケーションゲートウェイを選択します。
関連付けの追加を選択します。
今回はリスナーに設定してみます。
HTTPリスナーを選択します。
アプリケーションゲートウェイとリスナーを選択します。
最後に保存を選択して割り当ては完了です。

今回利用したアプリケーションゲートウェイの構築手順はこちら。

ーーー

防止モード、検出モードの切り替え

防止モード、検出モードの切り替えも1クリックで出来ます。

モード切り替え
防止モードに切り替えるを選択します。
ポリシーモードが防止に変わっている事が分かります。

ルールセットの割り当て

ルールセットの割り当てを使うと追加でbotルールセットを割り当てる事が出来ます。

botルールセット割り当て

管理されているルールで割り当てを選択します。

マネージドルールセットの割り当てが表示されますので、Microsoft_BotManagerRuleSet_0.1を選択して保存します。

マネージドルールセットが追加になっている事が確認出来ます。

WAFルールの無効化

マネージドルールセットのルールは個別で無効化出来ます。
アプリケーション側の事情で特別に許可する必要がある場合等に使用します。

ルールセット無効化
アクションを変更したいルールを選択します。
無効化を選択します。
状態がDisabledになっている事が確認出来ます。

カスタムWAFルールの作成

特定のIPからのアクセスを拒否するルールを作成してみます。
処理は以下の3つのパターンになります。

    • トラフィックを許可する
      • ルールに該当するトラフィックを許可する
    • トラフィックを拒否する
      • ルールに該当するトラフィックをブロックする
    • トラフィックのみをログに記録する
      • ログに記録のみ(トラフィックは許可)
カスタムルールの作成

カスタムルールでカスタムルールの追加を選択します。

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

処理でトラフィックを拒否するを選択します。

保存を選択するとカスタムルールが作成されます。

カスタムルールの確認

カスタムルールでブロックしたIアドレスからアクセスしてみます。

カスタムルールに合致した場合
アクセスがブロックされている事が分かります。
拒否したIPアドレスからアクセスした場合403が戻ります。

※カスタムルールで拒否設定をした場合でも、WAFモードで検出モードを選択した場合はトラフィックは許可されます。

Azure WEBアプリケーションファイアウォールのログについて

アプリケーションゲートウェイのログでWAFのログも見る事が出来ます。
WAFモードを検知から防止に変更すると、アクセス挙動が変わっている事が分かります。
action_sの挙動を確認するとDetectedからBlockedになっている事が確認出来ます。

ログサンプル

Azure WEBアプリケーションファイアウォールについてはこちらに記載していますので併せて見て頂けると大変有難いです。

最後に

アプリケーションゲートウェイのWAFについて色々設定してみました。
今後も色々試してみたいと思います。