SplunkのアラートをPhantomに連携する方法

はじめに
---
- 以前、投稿した[SOARやろうぜ！無償のPhantom Community版使って。~Playbook設定編~](https://qiita.com/odorusatoshi/items/e88d7dc05cee2fffedec)から、SplunkのアラートをPhantomに連携させるパートのみ切り出して投稿します
- 環境は**python3対応済み**のSplunk 8.0.2とPhantom 4.8.24304で検証しています。
- 前提としてphantom環境の[インストールが終わっている想定](https://qiita.com/odorusatoshi/items/29aa54da7ef5ddfdbe96)で書いています。
- 自動実行させたいplaybookも用意しておく（つなげるだけならデフォルトのplaybookを指定すればOK）

Phantom側のアラート連携設定
----
- まずSplunkからのアラートを受け取るためにPhantomのAPIの口をあける設定をしておきます。下記メニューにてautomationユーザをEditします。

![スクリーンショット 2020-04-24 14.36.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/cfcc7951-458b-8f84-74ee-75256ade4cb5.png)

- ポイントはPhantomのAPIへのアクセス制御をAllowed IPsでしっかりとかけておくこと。

![スクリーンショット 2020-04-24 14.37.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/5ea21a46-496a-c894-2657-af9d21f5c466.png)

- 中段のREST APIトークンを後ほどSplunk側で設定しますのでコピー


Splunk側のアラート連携設定
----
- アラートを飛ばすSplunkに以下のAppをインストールします。

- Phantom関連のAppは紛らわしい名前で4つ近くありますが、アラート連携に使うのは[こちら](https://splunkbase.splunk.com/app/3411/)です。

![スクリーンショット 2020-04-24 14.28.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/8384144f-80b2-ab8c-8a29-16151038edc2.png)

- まずPhantomのAPI連携をするのですが、SSL証明書のVerifyを無効にします。（テスト利用のため）

- ここではSplunkにCLIアクセスしてlocal/phantom.confを修正する必要があります。詳細は[こちら](https://docs.splunk.com/Documentation/PhantomApp/3.0.5/Install/ConfigureCerts#Manage_HTTPS_certificate_validation_using_configuration_files)ご参考ください

![スクリーンショット 2020-04-24 14.33.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/35f86a3e-e46b-ad13-0de5-e5b2a382a96b.png)

- 続いてSplunkとPhantomをAPI連携させます。設定方法詳細は[こちら](https://docs.splunk.com/Documentation/PhantomApp/latest/Install/ConfigurePhantomServer)

- New Server設定時に前にコピーしたtokenを貼り付けて保存。

![スクリーンショット 2020-04-24 14.40.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/2e92ddb0-3b7c-9f35-ccc7-cb7d7acc77a1.png)

- 設定がすむとサーバリストが表示されます。

<img width="1121" alt="スクリーンショット 2020-04-24 14.31.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/9593f954-9106-3e44-b242-6632038ea844.png">

- APIテスト接続とPlaybookの同期をしておきます

![スクリーンショット 2020-04-24 14.43.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/1a82aeda-c4b5-e2ea-96ad-98593fda3103.png)

- Splunkのアラートを作成しアラートアクションにPhantomを設定します。

- アラートのサーチ結果の中身には*src*フィールドが含まれるデータを用意するようにします。
    - src、urlなどphantomのCEFフォーマットに合わせておく必要があります

![スクリーンショット 2020-04-24 14.58.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/d7549a9e-9bfc-276c-c8b3-5e597399bed7.png)

- アラートアクションにて**Run Playbook in Phantom**を選択します
- 設定したPhantom Instanceと利用したいPlaybookを選び、LabelにWebと記入し保存。
    - **phantom appの4.0.10でForwarderを経由してアラートを飛ばすRelayモードが実装されたため、設定メニューが以前から変わっています。**

![スクリーンショット 2020-12-08 13.22.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/7a2abd2e-73af-35ac-811c-3ba73d02f055.png)

- 設定は以上です

連携結果
---
- アラートのアクションが実行されるとPhantomにイベントが入ってきます

![スクリーンショット 2020-12-08 13.29.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/fede2fca-8677-1f34-4997-0c93667b1d5e.png)

- 指定したplaybookが自動実行されます

![スクリーンショット 2020-12-08 13.26.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/cd9bbc16-7a83-ce2c-4177-96bcfe4a9e0a.png)