Log Analytics を使用して Azure Application Gateway のファイアウォール ログを調べる

概要

Log Analytics を使用して Azure Application Gateway のファイアウォール ログを調べ、Azure Web Application Firewall (WAF) が何を評価し、何に一致し、何をブロックしたかを確認します。 これらのログを分析すると、トラフィック パターンとセキュリティ イベントを特定するのに役立ちます。 ログ クエリの詳細については、「 Azure Monitorを参照してください。

この記事では、WAF ログについて説明します。 他の Application Gateway ログも同様の方法で設定できます。

[前提条件]

次の前提条件を満たしていることを確認します。

ファイアウォール ログを Log Analytics に送信する

ファイアウォール ログをLog Analyticsにエクスポートするには、Application Gateway の Diagnostic ログを参照してください。 Log Analytics ワークスペースにファイアウォール ログがある場合は、データの表示、クエリの記述、視覚化の作成、ポータル ダッシュボードへの追加を行うことができます。

クエリの例を使用してファイアウォール ログ データを探索する

AzureDiagnostics テーブルを使用して、次のクエリを実行して、ファイアウォール ログ内の生データを表示します。

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| limit 10

このクエリは、次のクエリのようになります。

Log Analytics query のスクリーンショット

次のクエリを実行して、 リソース固有 のテーブルを使用して、ファイアウォール ログ内の生データを表示します。

AGWFirewallLogs
| limit 10

リソース固有のテーブルの詳細については、 監視データのリファレンスを参照してください

ここから、データにドリルダウンしたり、グラフをプロットしたり、視覚化を作成したりできます。 次の例は、使用できる AzureDiagnostics クエリを示しています。

IP で一致した要求またはブロックされた要求

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize count() by clientIp_s, bin(TimeGenerated, 1m)
| render timechart

URI で一致した要求またはブロックされた要求

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize count() by requestUri_s, bin(TimeGenerated, 1m)
| render timechart

最上位に一致するルール

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize count() by ruleId_s, bin(TimeGenerated, 1m)
| where count_ > 10
| render timechart

一致するルールグループの上位5つ

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize Count=count() by details_file_s, action_s
| top 5 by Count desc
| render piechart

ファイアウォール ログ クエリをダッシュボードに追加する

クエリを作成したら、ダッシュボードに追加します。 Log Analytics ワークスペースの [ダッシュボードにピン留めする] を選択します。 前の 4 つのクエリをダッシュボードの例にピン留めすると、次の図のようになります。

クエリを追加できるAzure ダッシュボードのスクリーンショット。

参考資料

Application Gateway のバックエンドの正常性、診断ログ、およびメトリック