Sysdig SecureのSplunk TA (Technical Add-on) for Vulnerability Management

脆弱性管理用のSysdig Splunk TA(Technical Add-on)がリリースされたので、導入手順をご紹介します。
このSysdig Splunk TA は、ワークロードとホストの両方でSysdigランタイム脆弱性データのエクスポートを可能にします（パイプラインやレジストリの脆弱性スキャン結果は対象外です）。

# ドキュメント
https://docs.sysdig.com/en/docs/sysdig-secure/integrations-for-sysdig-secure/vulnerability-integrations/splunk/

# テスト環境
* EC2インスタンス: m5.xlarge
* Ubuntu 20.04.4 LTS
* Splunk Enterprise 9.1.2

# Splunk Enterpriseのインストール
1. Splunkのトライアルアカウントを作成する。
2. 9.1.2 debパッケージをwgetを使ってLinuxサーバにダウンロードする。
3. Splunkをインストールする
```
sudo dpkg -i splunk-9.1.2-b6b9c8185839-linux-2.6-amd64.deb
```

4\. Splunk Enterpriseを起動する。

https://docs.splunk.com/Documentation/Splunk/9.1.2/Installation/StartSplunkforthefirsttime#On_UNIX

```
cd /opt/splunk/bin
sudo ./splunk start
```
指示に従ってusername (ex. admin) とpasswordを設定する。
```
Please enter an administrator username: admin
Password must contain at least:
   * 8 total printable ASCII character(s).
Please enter a new password:
Please confirm new password:
Copying '/opt/splunk/etc/openldap/ldap.conf.default' to '/opt/splunk/etc/openldap/ldap.conf'.
Generating RSA private key, 2048 bit long modulus
................+++++
....+++++
e is 65537 (0x10001)
writing RSA key

Generating RSA private key, 2048 bit long modulus
.....................+++++
...........................................+++++
e is 65537 (0x10001)
writing RSA key

Moving '/opt/splunk/share/splunk/search_mrsparkle/modules.new' to '/opt/splunk/share/splunk/search_mrsparkle/modules'.

Splunk> The IT Search Engine.

Checking prerequisites...
	Checking http port [8000]: open
	Checking mgmt port [8089]: open
	Checking appserver port [127.0.0.1:8065]: open
	Checking kvstore port [8191]: open
	Checking configuration... Done.
		Creating: /opt/splunk/var/lib/splunk
		Creating: /opt/splunk/var/run/splunk
		Creating: /opt/splunk/var/run/splunk/appserver/i18n
		Creating: /opt/splunk/var/run/splunk/appserver/modules/static/css
		Creating: /opt/splunk/var/run/splunk/upload
		Creating: /opt/splunk/var/run/splunk/search_telemetry
		Creating: /opt/splunk/var/run/splunk/search_log
		Creating: /opt/splunk/var/spool/splunk
		Creating: /opt/splunk/var/spool/dirmoncache
		Creating: /opt/splunk/var/lib/splunk/authDb
		Creating: /opt/splunk/var/lib/splunk/hashDb
New certs have been generated in '/opt/splunk/etc/auth'.
	Checking critical directories...	Done
	Checking indexes...
		Validated: _audit _configtracker _internal _introspection _metrics _metrics_rollup _telemetry _thefishbucket history main summary
	Done
	Checking filesystem compatibility...  Done
	Checking conf files for problems...
	Done
	Checking default conf files for edits...
	Validating installed files against hashes from '/opt/splunk/splunk-9.1.2-b6b9c8185839-linux-2.6-x86_64-manifest'
	All installed files intact.
	Done
All preliminary checks passed.

Starting splunk server daemon (splunkd)...
Generating a RSA private key
...........+++++
............................................................................................................+++++
writing new private key to 'privKeySecure.pem'
-----
Signature ok
subject=/CN=ip-172-31-47-58/O=SplunkUser
Getting CA Private Key
writing RSA key
PYTHONHTTPSVERIFY is set to 0 in splunk-launch.conf disabling certificate validation for the httplib and urllib libraries shipped with the embedded Python interpreter; must be set to "1" for increased security
Done

Waiting for web server at http://127.0.0.1:8000 to be available................. Done

If you get stuck, we're here to help.
Look for answers here: http://docs.splunk.com

The Splunk web interface is at http://ip-172-31-33-239:8000
Open port 8000 from my IP at Security Group.
```
5\. Webブラウザで下記URLにアクセスする
`https://<SplunkサーバのIPアドレス>:8000`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/ae4bb38e-84f0-ef80-3c24-bdd99d22db17.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/50b92149-686d-72dd-fd7e-764cefbf670c.png)

# Splunk TA for Vulnerability Managementの導入
1. splunkbaseにアクセスする。
https://splunkbase.splunk.com/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/9e56657d-ae8b-e1cd-e22d-d553864d3185.png)

2\. 自身のSplunkアカウントでログインする。

3\. __Sysdig VM__ で検索し、Sysdig VM Splunk TAをダウンロードする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/7f724604-973e-9b37-52c2-11380a8d90d6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/ba4ae7a3-d502-e04d-884d-bcaa0645f9d9.png)

4\. 自身のSplunkサーバのUIに移動し、__App__ をクリックし、ドロップダウンメニューから __Appの管理__ を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/1d7a055c-46a8-b746-82c7-0a778074121a.png)

5\. __ファイルからAppをインストール__ をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/dd406eb6-c87b-285b-a2ce-0824059fd9e7.png)

6\. __ファイルを選択__ をクリックし、ダウンロードしたTAファイルを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/7400ddd3-6ec9-6bc2-5875-30439a8113f7.png)

7\. アドオンがインストールされたあと、Splunkインスタンスを再起動する必要があるかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/3ef75ac5-04b9-651b-fd68-e4b24f70a5df.png)
```
sudo /opt/splunk/bin/splunk restart
```
8\. 上部メニューから __設定__ をクリックし、__インデックス__ を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/da5e5bc3-52f2-3926-fe37-88674828419f.png)

9\. __新規インデックス__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/c445109c-187b-d964-6226-c1dc1314aee8.png)

10\. __インデックス名__ を入力し (e.g. sysdig_vuln)、__App__ で`Sysdig Vulnerabilities`を選択し、__保存__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/3b594a34-615a-641d-cd62-996249a59ee2.png)

11\. 追加したインデックスが一覧に表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/d4f6dbe2-43cf-6453-ebf1-9d95f823c0d0.png)

12\. __App__ メニューの __Sysdig Vulnerabilities__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/1fc46587-d93b-f176-e10e-e2152e7b3279.png)

13\. __入力__ タブを選択し、__Create New Input__　をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/08df5365-f641-37d0-7e85-1b55c90c3f45.png)

14\. 必要な項目を入力します。Indexとしては、先ほど作成した脆弱性管理用のインデックス名 (e.g. sysdig_vuln) を入力し、__追加__ をクリックします。

:::note warn
データ取得間隔のIntervalはテストのために`300`秒と設定していますが、大量のログが記録されるため、実際の運用では適切な値に調整してください。
:::

:::note info
Sysdig Secure URLの値はご利用のSysdig SaaSリージョンにより異なります。下記ドキュメントをご参照ください。
https://docs.sysdig.com/en/docs/administration/saas-regions-and-ip-ranges/
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/7494f40f-566e-4833-b8dd-f1da14b254a9.png)

15\. 入力一覧に追加されたことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/c83d953c-aa72-05bb-20e8-5f73aab66274.png)

# Sysdig Secureのランタイム脆弱性データの確認
1. __Search__ タブの検索欄に、脆弱性管理用に作成したインデックス名である`index="sysdig_vuln"`と入力して検索します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/fdce8bff-f770-0ed6-70eb-b0c6b230b41b.png)

:::note info
検索結果が何も表示されないときは、インデックス名を囲むダブルクォーテーション(") が正しいかを確認します。Macでは「スマート引用符とスマートダッシュを使用」機能で勝手に変換されて、機能しないダブルクォーテーション（“）になっていることがあります。
:::

2\. レコードの１つを展開して内容を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/743fd9b3-aee8-ad8d-bca9-9b5204a6e838.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/5814aaac-369d-0b71-cb82-6d286f552e68.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802821/4ce3ac00-43f4-789a-df20-67522938152d.png)

# まとめ
Sysdig SecureのSplunk TA (Technical Add-on) for Vulnerability Managementによって、Sysdig Secureのランタイム脆弱性スキャンの結果をSplunk側で簡単に取り込めることが確認できました。