Azure Sentinel のセキュリティ プレイブックを作成し、リスク検知時に Teams にメッセージを投稿する

#はじめに
Azure Sentinel はクラウドネイティブの SIEM (Security Information and Event Management ) です。
Azure 上の サービスだけでなく、AWS CloudTrail や F5 のアプライアンスなど、Syslog エージェントを介して、ログを集約し、多次元的に分析が可能なツールです。

Azure Sentinel の基本的なセットアップ手順は以下にまとめていますので参考にしていただけると幸いです。

-参考情報
Azure Sentinel に Azure AD と Identity Protection のログを取り込んで可視化してみる
URL:https://qiita.com/Shinya-Yamaguchi/items/7b4e30065857be797c82

今回は、Azure AD Identity Protection で検知したリスクを Teams のチャネルに自動通知する方法を検証してみました。
通知を含むワークフローの機能は、Azure Sentinel の「プレイブック」で実現可能です。
実際には Login App と連携して構成します。

-参考情報
チュートリアル:Azure Sentinel で脅威への自動対応を設定する
URL:https://docs.microsoft.com/ja-jp/azure/sentinel/tutorial-respond-threats-playbook

#やってみる

概要画面より左ペインの「プレイブック」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/e5085a91-a6f0-d2c8-ec3d-d7cbb8e8cf89.png)

画面上部の「＋プレイブックの追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/6010af7f-d3c6-5f22-6982-64cee437ba73.png)

必須項目をプルダウンメニューから選択、もしくは入力して、画面下の「確認および作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/1bf738f6-fb0d-723c-7979-1880278b1f26.png)

「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/efe064d4-dffb-c623-26dc-c18d70d36313.png)

Logic App 作成後に、Azure Sentinel のプレイブックに戻ると、セキュリティ プレイブックが 1 つできているので、リンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/5e467919-79a4-8ce6-a9cb-f5c8020760c1.png)

Logic Apps デザイナーが表示されるので、検索ボックスで「Azure Sentinel」と入力します。
トリガーが 1 つ表示されるので選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/d4a15060-dc6d-5406-5da7-f4e7482caf95.png)

「サインイン」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/24c4c066-d125-780b-0345-780cc7184353.png)

Azure AD の Teams の通知を行いたい資格情報を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/014e49e3-297b-c326-1a4f-a0247c702243.png)

次に、画面下の「＋新しいステップ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/22ab12a1-0005-e969-6356-ac665a345f94.png)

Microsoft Teams と検索ボックスで入力し、複数アイコンが表示されるのかで、Microsoft Teams のアイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/22cc6056-9d97-8871-eac2-8932cb271aa6.png)

アクションの一覧から、「メッセージを投稿する (V3)」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/444e5381-23c2-a17a-86f5-6eecb738316a.png)

チーム名と、チャネルをプルダウンメニューから選択し、通知する際のメッセージを入力します。
今回は、以下のようなメッセージと共に、Azure ポータルのリンクを埋め込んで、Teams から Azure ポータルにアクセスするように促す感じで書いています。

作成したら、画面左上の「保存」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/9ea9bb18-b31a-1d8a-f44d-b2fd10a9137e.png)

作成したプレイブックの概要画面に戻って、画面上部の「トリガーの実行」をクリックします。
まずは手動実行で Teams に意図した通知が来るか確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/9d713654-525c-6427-160b-b3a7779e4d78.png)

Teams の指定したチャネルに意図したメッセージとリンクが挿入されたことを確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/a0e38a0b-de94-4bb4-27c2-6cab11a45289.png)

次は、Identity Protection でリスクを検知した際に、自動的に通知がくるようにスケジュール化します。
Azure Sentinel の概要画面に戻って、左ペインの「分析」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/df746b5d-b2a8-dd3d-ab8f-ed812f141662.png)

Identity Protection のインシデントを自動的に作成するルールは「Create incidents based on all alerts generated in Azure Active Directory Identity Protection」なのですが、調べてみたところ、このルールに対して、[Real-time automation](リアルタイム オートメーション) として、作成したプレイブック (Sentinel0223) を紐づけることができません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ef933d6a-b0b7-1ca1-de91-80dc1c52839b.png)

従って、新規にルールを作成します。画面上部の「＋作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/bfa33014-ff7c-086c-24cb-155257d424c1.png)

「スケジュール済みクエリ ルール」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/bb8856b7-b6ff-4dbe-a673-261155173294.png)

全般のタブでルール名を記入し、「次：ルールのロジックを設定」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/4b9ed0ac-9c92-e81f-2201-fc0f992a7a9a.png)

ルールのクエリの欄に以下クエリを挿入します。

```SQL
union (SecurityAlert
| where ProviderName != 'ASI Scheduled Alerts' and ProviderName != 'CustomAlertRule')
```

挿入後に、「クエリ結果の表示」のリンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/5df5c771-e329-d2e5-78e8-653ea6fc18b1.png)

クエリの実行結果として、 Teams に通知したいリスク名 (今回は Anonymous IP address) が結果として出力されることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/93bdca22-026c-c15e-5829-e5e56e0f59df.png)

ルールの画面に戻り、クエリの実行間隔、過去データをどこまで遡るか、アラートの閾値を設定し、「次：インシデントの設定」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/4e706331-26c7-8159-5ac3-bfaead483f6d.png)

今回は「通知」だけして欲しいので、この分析ルールによってトリガーされるアラートからインシデントを作成するは「無効」にします。
「次：自動応答」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/611d77a1-f335-3179-f5dd-8afc66339e08.png)

「自動応答」のタブで作成したプレイブックのチェックボックスにチェックを入れます。
選択したプレイブックに「Sentinel0223」が選択されていることを確認し、「次：レビュー」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/31371020-8b81-456c-8702-e0d5732d9475.png)

検証に成功しました。と表示されていることを確認し、「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/5580342e-7db4-6f5a-af7a-274b6ecf82e0.png)

下記画面ショットのように作成したルールが一覧に表示されることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/91639086-4199-91b4-4d52-712bcdecb644.png)

この状態で疑似的に Azure AD テナント上にいるユーザーで Tor Browser を使ってリスク (Anonymous IP address) を発生させます。

Tor Browser のリンクと作業手順は以下 Microsoft の公開情報に記載されていますので、参考にしてみてください。

-参考情報
匿名 IP アドレス
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/identity-protection/howto-identity-protection-simulate-risk#anonymous-ip-address

疑似的にリスクを発生し、Azure Sentinel がリスクとして検視したタイミングで下記画面ショットのように Teams に通知が飛んできました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/0e28d116-865c-81fd-23c6-5a0183a95e4c.png)

Azure ポータルから Azure Sentinel のインシデント画面に行くと、下記画面ショットのように Teams に通知された時刻と、Azure Sentinel が検知した時刻が同時刻 (02:00) であることが分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/f26d7a13-c2bb-a625-0761-73ebdf805fbc.png)

#おわりに
今回は Azure Sentinel の活用方法の一つである、プレイブックを利用したリスク検知時の Teams への自動投稿を検証してみました。
Logic App は当然ですが Teams だけでなく、Outlook や SaaS のインシデント管理システムである ServiceNow などと連携することも可能で、リスク処理を自動的に処理することも構成上は可能です。

今回の記事がプレイブック活用に向けて少しでも参考になれば幸いです。