Azure AD Identity Protection で検知したリスクを Splunk Enterprise 7.3 系 に取り込むために必要な手順

#はじめに

Splunk は言わずと知れた SIEM (Security Information and Event Management ) のトップベンダーで、Splunk にサーバーや NW 機器、アプリケーションのログを取り込んで可視化して運用している方もいらっしゃるのではないでしょうか。

Azure AD 上で出力されるサインイン ログや監査ログも同じように Splunk に取り込むことが可能ですが、今回は Azure AD Identity Protection (以降 Identity Protection と記載) が検知する「リスク イベント」を Splunk Enterprise に取り込んで可視化できるか動作確認してみます。

なお、Microsoft も Azure Sentinel (https://azure.microsoft.com/ja-jp/services/azure-sentinel/) というクラウド ネイティブの SIEM を持っており、今回試そうとしている Identity Protection で検知したリスクについても数クリックで取り込むことが可能です。

実際の手順は以前投稿した下記記事に載っておりますので参考にしてみてください。

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

私個人としては Azure Sentinel を使っていただきたいという気持ちはありますが、既に Splunk をご利用になられている、もしくは Splunk を提案する必要があるという方も当然いらっしゃると思いますので、今回は Splunk でも Identity Protection が検知したリスクが見られるんだ、ということを知っていただければ幸いです。

また、後述の手順にて実際の作業手順は画面ショット付きで載せますが、今回「Microsoft Graph Security API add-on for Splunk」という Splunk 向けのアドオン ツールを Splunk 側にインストールをして Azure AD 上のリスクを取りに行きますが、このアドオン ツールが動作する Splunk Enterprise および Splunk Cloud のバージョンが ***7.x 系に限定されている***ことが検証した結果分かりました。

評価版の Splunk Cloud および Splunk Enterprise のバージョンは 2020/06/07 時点で ***8.0.4*** となっており、そのまま評価版の利用を開始した場合、何をどうやっても「Microsoft Graph Security API add-on for Splunk」にインストールすることができません。
従って、明示的に旧バージョンである ***Splunk Enterprise 7.3.6***をインストールする手順を記載しています。

#やってみる
作業の概要として以下です。
前提として Identity Protection は Azure AD Premium P2 ライセンスが必要になります。
Azure AD Premium P2 ライセンスが Azure AD テナントにないと詳細なリスクを検出できないので、お試しになる際には P2 ライセンスを用意してください。

1. 評価版の Splunk Enterprise 7.3.6 を用意する
2. Microsoft Graph Security API add-on for Splunk を Splunk Cloud 上で追加する
3. Azure AD に Microsoft Graph Security API を実行するアプリを登録する
4. Splunk Enterprise 上で 3. で登録したアプリの情報を登録する
5. Splunk Enterprise 上で Identity Protection のリスク イベントが表示されるか確認する

実は Splunk 社が作成した公開情報 (splunkbase) に既に画面ショット付きでかなり詳細な手順が上記「2. から 4.」までありました。

-参考情報
Microsoft Graph Security Add-on for Splunk (Detailsタブ)
URL:https://splunkbase.splunk.com/app/4564/#Configuring-Microsoft-Graph-Security-data-inputs

ですので、今回は基本的な流れとしては Splunk 社の公開情報とおりに設定してみて Splunk Enterprise 上で Identity Protection で検知したリスクを確認できるかどうかやってみたいと思います。

#####1. 評価版の Splunk Enterprise 7.3.6 を用意する

Splunk Cloudの URL 「https://www.splunk.com/ja_jp/software/splunk-cloud.html」 から画面中央の「無料トライアル版」をクリックします。
※Splunk Enterprise の URL でも同様に「無料トライアル版」からアカウントの作成画面に遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/3884fc6e-0dcc-ba01-e647-192c9aee082d.png)

遷移した画面でアカウント作成のために必要な情報を入力し、画面右下の「アカウントを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/f94daeb6-367a-3e6f-86ae-3f02c50b0199.png)

アカウントの作成が完了すると作成時に登録したメール アドレス宛に確認のメールアドレスが送られてきますので、「登録メールアドレスの確認」をクリックします。

遷移したログイン画面で資格情報を入力し「ログイン」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/de37c1a5-13f8-f4ec-e614-dc20ffed7c22.png)

ログイン後下記画面に遷移するので、赤枠で囲っている「Splunk Enterprise」のトライアル版のダウンロード リンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/1cef58fa-0f60-e457-6616-24de40a50d79.png)

画面ショットに表示されているとおり、評価版は最新版の 8.0.4 を利用することができます。
しかし上述で触れたように「Microsoft Graph Security API add-on for Splunk」は本記事の投稿時点では 7.x 系でしか動作しないので、赤枠で囲っている「Older Releases」のリンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/f494b677-b684-ac05-9775-088ef96f18d2.png)

旧バージョンのダウンロード ページにて Splunk Enterprise をインストールする OS を選択します。
今回は Windows 10 コンピューターにインストールするので「Windows x86_64」のリンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/8a208da3-ee37-adc1-de8c-8b6cceb8c14d.png)

バージョン一覧の画面で、「Microsoft Graph Security API add-on for Splunk」がインストールできる 7.3 系のバージョンのうち、「7.3.6」のリンクをクリックします。リンクをクリックするとダウンロードが開始されるので、ダウンロード完了後に、インストールする Windows 10 コンピューターにインストーラーを格納します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ddeadab5-4d89-bef1-6370-882f640b11f9.png)

Splunk Enterprise のインストールを行う Windows 10 コンピューター上でインストーラーをダブルクリックしてインストーラーを起動させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/92f24810-5ee4-c733-ecb1-116e0950bd6d.png)

ライセンス同意のチェック ボックスにチェックが入っていることを確認し「Next」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/3ba6e1ca-d651-5c16-a01a-a078184faf75.png)

Splunk Enterprise の管理者アカウントをここで作成します、ユーザー名とパスワードを設定し「Next」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/4b5f0c1d-22d4-83c6-3293-4bbb02a72663.png)

そのまま「Install」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/f12a4a83-d824-f535-66b3-7ded3607260a.png)

インストールが完了したら「Finish」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/4a77a6b8-4546-06d7-e066-c8491c0bfbf0.png)

サインイン画面が起動するので作成した管理者アカウントの資格情報を入力し、「サインイン」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/8bbdf9ad-caa1-2d35-5759-256fb87bf0dd.png)

これで Splunk Enterprise 7.3.6 のインストールが完了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/2b10157d-3d32-0e23-fb9b-be64548fbd0f.png)

##### 2. Microsoft Graph Security API add-on for Splunk を Splunk Cloud 上で追加する

「Microsoft Graph Security API add-on for Splunk」をインストールするため、画面左の「＋他の App のサーチ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/cfddc487-964e-b16c-015e-0a5a6960d38d.png)

左上の検索ボックスで「"Microsoft Graph Security"」と入力し表示される「Microsoft Graph Security API add-on for Splunk」の「インストール」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/c0089988-bacd-f856-0955-db6e784484f7.png)

ポップアップされる画面にて、管理者アカウントの資格情報とライセンス規約のチェック ボックスにチェック入れて「ログインとインストール」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/3bbb7f35-5ee6-7045-e90d-b50990c7f2ef.png)

インストールが完了することを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/61f97898-cee1-289b-4fe0-e3b8ef40a652.png)

「今すぐ再起動」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/46f1919a-0376-b4fa-023b-59525a4be8ce.png)

「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/b6f62195-bb8e-2a19-8812-5dc2fedf5dec.png)

再ログインを行った後に、下記画面が表示されるので「アプリを開く」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/33675834-4b34-740f-2a82-a929e0a81088.png)

下記画面ショットのように「Microsoft Graph Security API add-on for Splunk」がアプリとして選択できるようになっていることを確認します。
次に Azure AD 側でアプリの登録作業を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/d970d343-51b1-6615-a2de-6eb6f5672b2e.png)

#####3. Azure AD に Microsoft Graph Security API を実行するアプリを登録する

ここからは、冒頭で紹介した Splunk 社の splunkbase (https://splunkbase.splunk.com/app/4564/#/details) にかなり詳細な手順が載っているのでそちらを参照いただいても全く問題ありません。

上記手順に沿ってアプリを登録していきます。
Azure ポータル (portal.azure.com)  の Azure Active Directory の左ペインより「アプリの登録」を選択し画面左上の「＋新規登録」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/3436c73d-7766-514d-df08-59fadb0d5c11.png)

名前は何でもいいですが、識別できるよう分かりやすい名前を入力し、画面下の「登録」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/994eec08-5fe5-b4d4-a077-1ddddee05afd.png)

「アプリケーション ID」と「ディレクトリ ID」は後述する Splunk Enterprise に登録したアドオン アプリの設定に必要な情報になるのでコピーしてメモ帳などに控えておきます。画面下の「API アクセス許可の表示」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ea50c098-0357-d814-4407-9a51ac2bbec0.png)

API のアクセス許可の画面で「＋アクセス許可の追加」をクリックすると API アクセス許可の要求の画面が右側に表示されるので、画面を下にスクロールさせて表示される「Microsoft Graph」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/746844bc-0ea9-6c01-9255-d48a6a29d433.png)

「アプリケーションの許可」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ee9a6505-580b-4452-f78b-3276df0ab208.png)


実行を許可する API の中で「SecurityEvents」の欄にある「SecurityEvents.Read.All」のチェックボックスにチェックを入れて、画面下の「アクセス許可の追加」をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/691bf571-3f4e-c18d-fa07-50bfdd3105b0.png)

次に、「管理者の同意を与えます」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/bc834489-a046-d62f-b9cb-ab07a44d30a2.png)

表示される画面で「はい」をクリックします。
これにより、当該の Azure AD 管理者が今設定した権限「SecurityEvents.Read.All」については既に管理者が同意したものとしてこのアプリが実行することが可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/19f7fbe6-7b0e-40e1-06c4-04a780d7b275.png)

次に左ペインの「証明書とシークレット」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/de5cea3a-ec7e-580f-cb5b-a662ed6cbfa2.png)

画面下の「＋新しいクライアント シークレット」をクリックし、表示されるシークレットの追加画面で説明文を入力後「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/193d591e-68f4-057c-32e0-d803e369aae3.png)

表示されるクライアント シークレットが必要になりますので、コピーして控えておきます。
これで Azure AD 側の設定は完了ですので、次は Splunk Enterprise 側で追加したアドオンの設定を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/04468f10-5bb3-63db-5c36-5c26c69dfc27.png)

#####4. Splunk Enterprise 上で 3. で登録したアプリの情報を登録する

Splunk Enterprise の画面上部の「設定タブ」を選択後、アカウント タブの画面右にある「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/88dcc9d6-097f-184d-64d5-fc633a792a00.png)

任意のアカウント名を入力し、Azure AD 側のアプリの登録で設定した「アプリケーション ID」と「クライアント シークレット」を入力 (ペースト) し、「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/aa0e0b24-a09b-6860-2842-84aa37f5da88.png)

次に画面上部の「入力」タブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/29ec178b-07ab-57fa-0b55-f6a1f914a059.png)

画面右の「Create New Input」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/af46443e-290f-816c-a977-29bed14b9b92.png)

それぞれ以下のような感じで入力、選択をおこない「追加」をクリックします。

| 項目|       設定値|  
|:-----------------|:------------------|
| 名前          |一意の名前|
| 間隔(秒)|            300| 
| インデックス| 利用の環境に合わせる(規定はデフォルト)| 
| Azure AD tenant ID|                手順3. で登録したアプリがある Azure AD テナント ID| 
| App Account|             追加アカウントで登録したアカウント名を選択|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/17debc85-fd2f-2097-a5ee-f1163f0a7d4f.png)

これで Azure AD 上のリスクを取得する準備が整いました。
それでは実際に Splunk Enterprise からリスクが取得できるか試してみます。

##### 5. Splunk Enterprise 上で Identity Protection のリスク イベントが表示されるか確認する

画面上部の「サーチ」をクリックすると下記画面が表示されます。
サーチのボックスにて「Index=* sourcetype="graphsecurityalert" 」と入力し画面右の「虫眼鏡マーク」をクリックしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/b4e69d11-2065-94bc-107f-08094e32db5d.png)

当然ですが Azure AD の Identity Protection がリスクを検知していなければ Splunk Enterprise でリスクを取得することはできません。

Microsoft の公開情報にリスク イベントを検出するシミュレーション手順が記載されていますので、こちらを参考に試してみてください。
Tor Browser を利用した方法が簡単にシミュレーションできます。

-参考情報
Identity Protection でのリスク検出のシミュレーション
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/identity-protection/howto-identity-protection-simulate-risk

有効化以降しばらく待つと Splunk Enterprise 上で実行するアドオンの API からも下記画面ショットのようにリストとしてリスクの一覧が取得できるようになります。Graph エクスプローラーの実行イメージに近いですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/1b37c4f6-3923-bde5-30ea-20f530d84281.png)

表示形式を「raw」にすると Azure AD のサインイン ログのような形式でリスク イベントを確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/39481a35-2a64-f8cd-4633-87862d373f9d.png)

#おわりに
今回は Splunk Enterprise 7.3.6 の評価版を利用してアドオン ツールである「Microsoft Graph Security Add-on for Splunk 」が Azure AD 上で登録したアプリと連携し Azure AD Identity Protection が検知したリスクを Splunk Enterprise で検索できる環境を構成しました。

「Microsoft Graph Security Add-on for Splunk 」を利用すると Identity Protection だけではなく、Microsoft Graph Security API を実行することで取得できる、「Azure Advanced Threat Protection」、「Azure Security Center」、「Azure Sentinel」、「Azure Information Protection」、「 Microsoft Cloud App Security,」、「Office Advanced Threat Protection」、「Defender Advanced Threat Protection」が検出するリスクも取り込むことが可能となります。

冒頭で触れたように Microsoft が持っているクラウド ネイティブ SIEM である Azure Sentinel を利用した方が Azure セキュリティ製品との親和性が非常に高いので導入がし易いですが、既に Splunk Enterprise を利用している環境で追加として Azure セキュリティ製品が検出するイベントも Splunk Enterprise で取り込みたいという要件があった場合には、役に立つ手順になると思います。

今回の記事が少しでも参考になれば幸いです。