Microsoft Sentinel と Azure OpenAI を接続して試せる実践ワークショップのご紹介

# 1. はじめに
この度、Microsoft Sentinel の SOAR 機能（ロジックアプリ）を活用して、Azure OpenAI に RESTAPI で接続して、セキュリティインシデント情報を分析・活用することを学習できる実践ワークショップを作成しました。
本ワークショップを通じて、**Azure OpenAI との接続方法**（認証方式、RESTAPI フォーマットなど）、**Microsoft Sentinel インシデント情報を活用するため**のアイデア、``ChatGPT 3.5/GPT-4`` モデルに対する **ChatCompletion API** を学習することが出来るようになっています。

Azure 環境であれば、そのまま Azure OpenAI サービスを申請 & デプロイいただき Microsoft Sentinel と連携が出来るようになりますので、ご興味がある方は是非試していただければと思います。

# 2. コンテンツ
ワークショップのコンテンツはこちらです。
以下 GitHub レポジトリにて公開していますのでご確認下さい。

https://github.com/hisashin0728/SentinelAzureOpenAI/

# 3. 体験できること

以下の順番で演習を進めることで、接続方法や ARM テンプレートを用いて Azure OpenAI との連携がテスト出来るコンテンツになっています。

- [事前準備 Azure OpenAI サービスの作成](https://github.com/hisashin0728/SentinelAzureOpenAI/blob/main/preconfiguration.md)
- [演習1. Azure OpenAI ロジックアプリを用いて、メールによる応答を実践する](https://github.com/hisashin0728/SentinelAzureOpenAI/blob/main/Work1.md)
- [演習2. Microsoft Sentinel のインシデントトリガーを用いて、ロジックアプリを用いて Azure OpenAI に分析ルールの翻訳を実行させる](https://github.com/hisashin0728/SentinelAzureOpenAI/blob/main/Work2.md)
- [振り返り Azure OpenAI の prompt 活用を考える](https://github.com/hisashin0728/SentinelAzureOpenAI/blob/main/Work3.md)
- [演習3. [応用] Microsoft Sentinel のインシデント情報から Azure OpenAI への問い合わせをカスタマイズする](https://github.com/hisashin0728/SentinelAzureOpenAI/blob/main/Work4.md)
- [FAQ](https://github.com/hisashin0728/SentinelAzureOpenAI/blob/main/FAQ.md)

# 4. SOAR 機能によって様々なことが出来る Azure OpenAI 連携
演習の中で ARM テンプレートを配布しています。
このテンプレートを活用いただくことで、以下のようなセキュリティオペレーターの支援を行います。

- **Microsoft Sentinel テンプレートルールの詳細を和訳**
    - ![和訳](https://user-images.githubusercontent.com/55295601/239114159-a47781f4-9cc0-45d3-b531-26211e89b6d5.png)
- **インシデント情報の概要説明**
    - ![概要](https://user-images.githubusercontent.com/55295601/239114511-f15064d4-847f-4940-ae90-29274f96773c.png)
- **インシデントを分析するためのハンティングクエリーアイデア**
    - ![KQLアイデア](https://user-images.githubusercontent.com/55295601/239114660-c44c5510-4f77-49fe-9331-6e6abb0e6095.png)

# 4. 応用パッケージ
幾つかのフィードバックから、Microsoft Sentinel のスケジュール分析ルールで設定されている KQL (Kusto Query) が何をやっているのか、Azure OpenAI で解説させるパッケージも作成いたしました。
Sentinel のテンプレートルールを導入頂くお客様は多いと思いますが、実際にこのルールがどのような目的で検知されたのかルール原文を確認したい方は多いと思いますが、KQL の知識が必要になります。このテンプレートを導入いただくことで、検知したインシデントで使われた分析ルールの KQL を解説してくれます。

https://github.com/hisashin0728/SentinelAzureOpenAIQueryCheck

- イメージ例 (使われている分析ルールの KQL を Azure OpenAI が解説します)
![KQL解説](https://user-images.githubusercontent.com/55295601/241656014-bd462bab-37ed-4c1e-8cf3-ae141a2706b7.png)

# 5. 裏技あります
Chat Completion API の Re内容をカスタマイズすることで、「～風」な日本語で返す裏技があります。いつも大変なセキュリティオペレーションですが、こういった遊びも宜しければ楽しんで下さい。
- ロジックアプリ側
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/93f24bac-362e-b098-88f4-d1617cee869f.png)
- 応答例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/aa3cb71a-37fe-877a-8984-d16df3ccca20.png)

# 6. というわけで
以前、[Microsoft Sentinel と本家 OpenAI の連携は実践した](https://qiita.com/hisnakad/items/43f09145669427c551a4)のですが、テンプレート化も含めて Azure OpenAI 版を作成いたしました。メリットとして、Azure サブスクリプションでの一括請求になることや、セキュリティ的な恩恵を受けること（API キー接続では無くAAD 認証など）、また様々な応用が利きますし Microsoft Sentinel のインシデント発生件数を考えると Azure OpenAI の活用はコスト的にも安価なので、色々と試して頂ければと思います。
もしご意見などありましたら、GitHub レポジトリの方でコメントなど頂ければ幸いです。

それでは皆様楽しい Microsoft Sentinel ライフを！
本記事がどなたかの参考になれば幸いです。

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