Microsoft Sentinel を用いて、インシデントを Slack に自動通知させる

# 1. はじめに
Microsoft Sentinel を用いて、インシデント検知時に Slack への自動通知を設定したのでメモ。

# 2. 構成図
本構成のシステム構成図を紹介します。
目的は Microsoft Sentinel を運用監視する際に、高インシデントが発生したタイミングで Slack にインシデント情報アラートを発行することです。
Microsoft Defender for Cloud は Microsoft Sentinel に対する脅威アラート生成として、今回はサンプルアラート機能を用いて検証を行っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/a3b9688f-0871-6827-48e8-8894a796f23c.png)

# 3. 設定方法
-  Microsoft Sentinel より、オートメーションにて、「プレイブックテンプレート」から 「Slack にメッセージを投稿する」を選択します。
    -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/4ee21135-61bf-889a-1723-5f6076e8f07a.png)
-  プレイブックの作成から、必要なパラメータを記載してデプロイを行います。
    -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/b11e7d06-1d45-d14d-194e-e57af80bd31d.png)
-  -  ロジックアプリにて、「**PostMessageSlack**」が作成されたことを確認します。
    -  デプロイすると、ロジックアプリに移動し、Slack への接続が赤い色で表示されます。
        -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/b4c536f3-5201-3571-f1e1-24b38639b21a.png)
    -  クリックすると、Slack の認証画面がポップアップしますので、対象のアカウントでサインインします。
        -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/a85c71aa-2bc8-4cf8-178c-e33c84c68f45.png)
        -  Slack のワークスペース名が分からない場合は、自分のアカウント名から確認が出来ます。
        -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/76eb6b74-c26a-4e1a-0ba1-7e36fd1e0344.png)
    -  サインイン後に Microsoft Azure Logic-Apps と Slack のアクセス権限承認を許可します。
        -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/3fedad38-3edb-975e-eb78-80704df4477e.png)
    -  無事接続が出来ると、Logics Apps 側から Slack のチャネルを読み出して選択が出来るようになります。
        -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/33abded4-a333-96b3-3f06-f284b2beab81.png)
    -  投稿する先のチャネルを選択すると、Slackに投稿する内容を確認することが出来ます。
        -  日本語化や必要となるカラムの追加などを検討したい場合は、こちらの画面から編集します。
        -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/9ec96f63-6d4f-24bd-1b5e-f48ade27300d.png)
    -  「保存」をして　Logic Apps 側は完成です。
-  Microsoft Sentinel に戻り、「オートメーション ルール」の作成を行います。
    -  プレイブックの実行で権限がない場合は、Sentinel の実行権限が無い表示が出ますが、その際に直下に表示される「編集」設定を実施することで、Sentinel の実行権限を直接付与して進めることも出来ます。
    -  本設定では、「重要度 = 高」の際に、Slack 通知を行う設定を入れました。
    -  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/06e03ce8-3598-f7f1-cef8-cb46785504f1.png)


# 4. 試してみる ～ 動作確認
今回は Microsoft Sentinel のアラート通知のため、Microsoft Defender for Cloud のサンプルアラート機能を用いました。
Microsoft Defender for Cloud では、IaaS/PaaS 環境に対する保護として Microsoft Defender シリーズの構成、導入を行える機能（CWPP - Cloud Workload Protection Platform）があり、サンプルアラートを生成する機能があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/02ca9c2c-10e3-e174-e77c-79ee878e07b6.png)

- 本機能を用いてサンプルアラートを生成すると、Microsoft Defender for Cloud からは、「セキュリティ警告」にサンプルのイベントが生成されます。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/6ab5c8dc-cb65-f288-6891-89f2ab6672ef.png)
- Microsoft Sentinel 側でコネクターを有効にしておくと、Microsoft Sentinel 側でも脅威イベントのイベントをインシデントとして検知することが出来ます。
    - Sentinel を活用することで、IPアドレスやホスト名といった脅威アクターを識別し、エンティティとして他のインシデントと関連付けて調査することが出来るようになります。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/9d45fc05-bd41-ab96-ae12-3377d50e791a.png)
- サンプルのインシデントを通じて、Microsoft Sentinel のオートメーション機能から Slack の通知が行われているか確認します。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/0386a016-2941-75e5-dd39-4811ee7c2bcb.png)

#5. カスタマイズしてみる ～ Slack をより使いやすく
- 標準のテンプレートだと、味気ない通知しか出ないため、カスタマイズしてみました。
- Slack のドキュメントを見たところ、TEXT 形式でも Markdown 書式に対応しているため、Azure Logic Apps の成型時に MarkDown のフォーマットを用いることで容易にカスタマイズが出来ます。
    - Slack の Markdown 書式については、[公式ドキュメント](https://api.slack.com/reference/surfaces/formatting#line-breaks)がありますので参考にしてください。
    - また、Slack 独自の拡張機能として絵文字 emoji に対応しているようなので、試してみました。
        - Slack の絵文字変換表は[すずきライフ様](https://belltree.life/slack-emoji-smailly-human/)にお世話になりました。
- カスタマイズ例
    - Logic Apps 側 (MarkDown でカスタマイズ)
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/3bad17c3-0023-3f0b-4d8e-ba661ad89bd8.png)
    - 出力サンプル
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/6b5275e6-f7e6-d7d6-85f7-572cf1de0e74.png)


# 6. 注意事項など
当方の環境では、個々のイベント（今回の1インシデント）が 200 -500 msと、電子メールや Microsoft Teams 通知方式と比較して高速に処理されていました。HTTP POST 通知だけなので比較的高速に通知されているように思われます。
ただしインシデントの通知が大量に発生する環境では、イベントの遅延やリソース課金などの影響も考えられるため、今回のような通知に対する閾値を考慮した運用通知設計を考えて頂くのが良いのではないかと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/3ec25f77-6fed-bbba-2eac-534ba66472d9.png)


# 7. まとめ
以上、Microsoft Sentinel のセキュリティインシデントを Slack に通知する設定例でした。
どなたかの参考になれば幸いです。

＊本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。