WAFをAzure Application Gatewayで使ってみた(WAFポリシーもやってます)
Azure Web Application Firewall(Web アプリケーションファイアウォール)(WAF)はWebアプリケーション脆弱性を利用した攻撃を検知、ブロックするサービスです。
Azure Application Gateway(アプリケーションゲートウェイ)やAzure Front DoorでWAFを利用する事が出来ます。
Application GatewayでWAFの初期設定をやってみました。
WAFの設定ではカスタムWAFポリシーの作成、WAF自体の設定、Application Gatewayへの割り当て、カスタムルールの作成、モード切替、ログ確認も併せてやってみました。
今回利用したAzure Application Gatewayの構築手順はこちら。
Azure Application GatewayでWAFを使う
Application GatewayではWAFを利用する事が出来ます。
Azure Web Application Firewall(Webアプリケーション ファイアウォール)(WAF)とは
Azure Web アプリケーション ファイアウォール
Azure Web アプリケーション ファイアウォールとは
WAFを使うとSQL インジェクションなどの一般的な Web ハッキング手法、クロスサイト スクリプティングなどのセキュリティ脆弱性からWeb アプリを保護してくれます。
標準でOWASPおよびBotのルールが用意されており、適用するだけですぐに使用開始出来ます。
WAFルールにマッチしたトラフィックを検知、ブロックしてくれます。
Application GatewayやFront Doorと併せて利用する事が出来ます。
Application Gatewayはv1(s除く)、v2ともに利用可能です。
v2ではWeb Application Firewall ポリシーも利用可能です。
価格
WAFの利用にはApplication Gatewayの利用とは別に課金が発生します。
v1、v2それぞれで利用料金が異なります。
Web アプリケーション ファイアウォール の価格
Application Gateway の価格
利用方法は2種類
Application GatewayでWAFを利用する方法は2種類あります。
-
- Application GatewayでWAFを有効化して利用する方法
- Web Application Firewall(WAF) ポリシーを個別に作成してApplication Gatewayに割り当てる方法
Application GatewayでWAFを利用する
WAFを有効化
Application GatewayのSKUでWAF v2を選択するだけでWAFが利用できます。
WAFを有効化 | |
Application Gatewayの構成でレベルをWAF v2を選択します。 |
![]() |
※Application Gateway v1(s除く)でもWAFは利用可能です。
WAFの設定
WAFモードやルールの設定が出来ます。
-
- WAFモード
- 検知モード:ログ出力のみでトラフィックはブロックしない
- 防止モード:ログ出力と共にトラフィックをブロックする
- トラフィックのブロックは一定条件に達した場合に実施される
- ルール
- ルール単位で有効、無効の設定が出来る
- WAFモード
WAF設定 | |
WAFモードの設定が出来ます。 デフォルトでは検知モードになっています。 グローバルパラメータの設定や除外設定も可能です。 |
![]() |
ルールセットを選択する事が出来ます。 | ![]() |
ルールの詳細構成を有効にするとルール単位での有効、無効の設定が出来ます。 | ![]() |
WAFポリシーの作成から割り当てまで
Application Gatewayv2では個別に作成したWAFポリシーを利用する事が出来ます。
WAFポリシーの作成
Web Application Firewall(WAF) ポリシーのサービスを作成してApplication Gatewayに割り当てます。
Application GatewayヘWAFポリシーを割り当て
Application GatewayへのWAFポリシーはApplication Gateway WAF ポリシー側のメニューで実施します。
※事前にApplication Gateway側でWAFを有効にしておく必要があります。
WAFポリシー割り当て | |
関連付けられたApplication Gatewayを選択します。 | ![]() |
関連付けの追加を選択します。 今回はリスナーに設定してみます。 HTTPリスナーを選択します。 |
![]() |
Application Gatewayとリスナーを選択します。 | ![]() |
最後に保存を選択して割り当ては完了です。 | ![]() |
今回利用したApplication Gatewayの構築手順はこちら。
ーーー
防止モード、検出モードの切り替え
防止モード、検出モードの切り替えも1クリックで出来ます。
モード切り替え | |
防止モードに切り替えるを選択します。 | ![]() |
ポリシーモードが防止に変わっている事が分かります。 | ![]() |
ルールセットの割り当て
ルールセットの割り当てを使うと追加でbotルールセットを割り当てる事が出来ます。
botルールセット割り当て | |
管理されているルールで割り当てを選択します。 マネージドルールセットの割り当てが表示されますので、Microsoft_BotManagerRuleSet_0.1を選択して保存します。 |
![]() |
マネージドルールセットが追加になっている事が確認出来ます。 | ![]() |
WAFルールの無効化
マネージドルールセットのルールは個別で無効化出来ます。
アプリケーション側の事情で特別に許可する必要がある場合等に使用します。
ルールセット無効化 | |
アクションを変更したいルールを選択します。 無効化を選択します。 |
![]() |
状態がDisabledになっている事が確認出来ます。 | ![]() |
カスタムWAFルールの作成
特定のIPからのアクセスを拒否するルールを作成してみます。
処理は以下の3つのパターンになります。
-
- トラフィックを許可する
- ルールに該当するトラフィックを許可する
- トラフィックを拒否する
- ルールに該当するトラフィックをブロックする
- トラフィックのみをログに記録する
- ログに記録のみ(トラフィックは許可)
- トラフィックを許可する
カスタムルールの作成 | |
カスタムルールでカスタムルールの追加を選択します。 ルールの設定画面が表示されます。 処理でトラフィックを拒否するを選択します。 |
![]() |
保存を選択するとカスタムルールが作成されます。 | ![]() |
カスタムルールの確認
カスタムルールでブロック設定したIPアドレスからアクセスしてみます。
カスタムルールに合致した場合 | |
アクセスがブロックされている事が分かります。 拒否したIPアドレスからアクセスした場合403が戻ります。 |
![]() |
※カスタムルールで拒否設定をした場合でも、WAFモードで検出モードを選択した場合はトラフィックは許可されます。
WAFのログはLog Analyticsで確認出来る
Application Gatewayの診断設定を使うと、Log Analyticsへログを転送する事が出来ます。
転送対象の中にApplication Gateway Firewall Logを加える事で転送出来ます。
Application Gateway Firewall LogがWAFのログになります。
WAFモードを検知から防止に変更すると、アクセス挙動が変わっている事が分かります。
action_sの挙動を確認するとDetectedからBlockedになっている事が確認出来ます。
ログサンプル |
![]() |
Azure Application Gatewayでのログ確認についてはこちらにで載しています。