Azure CDF WAF攻撃ログからのアラート通知方法

Microsoft365

Azure CDF WAFで攻撃を検知したらアラートを通知する方法を記載します。
※Azureリソースに対するアラート通知は共通の概念で対応可能なため、ここでの方法でいろいろな監視通知が可能になると思います。

Azureアラート通知の概念図

Azure CDF WAFから攻撃を検知してアラートを通知する仕組みは、WAFのログをLog Analyticsワークスペースに送信し、「Azure Monitor」でそのログを監視、条件にマッチしたら通知アクションを実行します。

アクション(通知)

まず、アクションは「アクショングループ」を作成して管理します。通知の種類は大きくは2つです。

  • Azure Resource Manager(所有者、共同作成者など)のロールへのメール
  • 電子メール/SMS/Azureアプリのプッシュ通知/音声

ロールへのメールでは、リソースによって動的に変化させることが可能なため便利です。
電子メール/SMS/Azureアプリのプッシュ通知/音声は、1セットで定義可能です。

※現在、音声での通知は米国のみでサポートされています。

電子メールでの通知を設定すると、アラートメールの送信元は「@microsoft.com」からでした。

アラートルール

アラートルールは、「スコープ」「条件」「アクション」によって構成されています。

スコープ

スコープでは「WebApplicationFiwallLogs」が保存されている「Log Analytics ワークスペース」を選択します。

条件

条件では、シグナル(クエリテンプレート)を指定します。デフォルトでいくつかのシグナルが用意されていますが、Azure CDN WAFの攻撃検知では、「Custom log search」を選びます。

検索クエリとして攻撃とみなしてブロックしたログを出力してみます。

AzureDiagnostics
| where Category == "WebApplicationFirewallLogs"
| where action_s == "Block"
| order by TimeGenerated

アラートロジックは、上記クエリを実行した結果のログ数が1つ以上である場合とします。

評価基準として分単位の「期間」と「頻度」を設定します。頻度はクエリ実行をする間隔です。5分、10分、15分…と決められた間隔を指定できます。より早く検知させるために5分間隔とします。期間については、クエリで参照するログの範囲です。頻度よりも大きくしてしまうと、前のクエリ実行のときに検知したログも含まれる可能性が出てくるため、頻度と同じに設定しておきます。

アクション

アクションは前述の「アクション(通知)」で定義したアクショングループを指定します。

アラート通知代金

残念ながら、Azure Monitorによるアラート通知は有料です。今回作成した5分間隔でログをチェックするロジックで推定$1.50(米ドル)が必要であると表示されます。できれば無料枠を作ってほしいところですね。

タイトルとURLをコピーしました