はじめに
こんにちは、kakeruです。弊社では、SIEM製品としてAzure Sentinelを利用しているのですが、アラートが発生したタイミングで気づけるようにLogic Appを利用してSlackに通知を行なっています。その中でSentinel内のAlertだけでなく、Sentinelに集約した他製品(MCAS,MDfE 等)のAlertも通知したいと思い本作業を実施しました。Logic Appを編集することでTeamsなどへの通知も可能です。
前提条件
- Azure Sentinelの初期設定が完了していること
- Alert通知を行いたい製品のコネクタ接続が完了していること
- MCAS
- MDfE
- MDfO365 等
- 通知を行うためのアカウントに以下の2つの権限とTeamsのライセンスが割り当てられていること
- LogAnalytics 閲覧者
- Azure Sentinel 閲覧者
- 接続先Slackのアカウントを所持していること
- 人に紐づかないシステムアカウントが望ましい
設定手順
LogicAppの作成
- Azure Sentinelにログインする
- [構成]の欄にある[オートメション]をクリックし、[+ 作成] > [新しいプレイブックの追加]の順に遷移する
- logic appの作成画面に飛ぶので、下記情報を入力して作成する
- サブスクリプション:Sentinelと同じサブスクリプションを選択
- リソースグループ:同上
- logic app名:任意で設定する
- リージョン:東日本

Logic app designerの作成
- Blank Logic App(空のロジックアプリ)をクリックする

- [Add a trigger]にて[Sentinel]と入力して検索し、[When a response to an Azure Sentinel alert is triggered]を選択する

- [Action]を追加して、[Run Query and list results]をクリックする
- アイコンが別で同名のアクションがあるので注意すること(画像のアイコンを参照)
- それぞれ下記情報を入力すること
- サブスクリプション:Sentinelと同じ
- リソースグループ:Sentinelと同じ
- リソースタイプ;Log Analytics Workspace
- リソース名;対象のSentinel名を選択
- Time Range;Last 12 hours(任意で変更可)
- クエリに下記を入力すること
SecurityAlert | where ProviderName != 'ASI Scheduled Alerts' and ProviderName != 'CustomAlertRule' | project TimeGenerated,AlertName,AlertSeverity,ProviderName | top 1 by TimeGenerated desc nulls last

- For eachの出力として、[value]を指定する
- 通知先のチャンネル名を指定する
- Messageは、画像を参考に設定すること(好みに応じて修正が可能)
- 入力が完了したら、左上の[Save]をクリックして保存する

Sentinelの分析ロジックの作成
- Sentinelにログインし、[分析] > [+作成] > [スケジュール済みクエリルール]の順に遷移する

- 分析ルール ウィザードが立ち上がるので、任意で名前と説明、重要度を設定すること
- 状態は有効のまま変更しない
- 入力が完了したら、[次:ルールのロジックを設定]をクリックする

- [ルールのロジックを設定]にて、[ルールのクエリ]に下記を入力する
SecurityAlert | where ProviderName != 'ASI Scheduled Alerts' and ProviderName != 'CustomAlertRule'
- [クエリのスケジュール設定]で実行間隔を設定する
- 最短で5分。設定時間内に複数アラートが発生した場合は、通知されないため
- 入力が完了したら、[次:インシデントの設定]をクリックする

- [インシデントの設定]にて、[この分析ルールによってトリガーされるアラートからインシデントを作成する]を無効にする
- 入力が完了したら、[次:自動応答]をクリックする

- [アラートの自動化]にて、先ほど作成したLogic Appを指定する

- [ 次:レビュー]にて内容を確認して問題なければ作成する

動作確認
- Logic Appにログインし、作成したロジックアプリを選択して開く
- [概要]にある、[トリガーの実行]をクリックする

- Slackに通知されれば完了

終わりに
今回は、Azure Sentinelに集約したAlertをSlackに通知する方法についてまとめました。通知自体は、Logic Appを利用していますので、いろんな作り込みが行えます。自社で利用しているシステムと連携して自動化を検討してみてはいかがでしょうか。