Splunk 7.3.1.1で,Boss of the SOC(BOTS) V1を使えるようにする
更新履歴
- 初版 2019/10/28
はじめに
- Splunk社が,年に1回程度?プライベートトレードショーをやっているようなのだけれど,その中でハッカソンのようなイベント,Boss Of The SOCというものを開催しているそうで,その出題内容はgithubで公開されている.
- Boss of the SOCでは,問題を解いていくタイムアタックでの腕自慢なんだけれど,実際には和気あいあいと使いかたを学んでいくような感じらしい.
- Boss of the SOCで使われた問題と学習用データは,オープンソースでgithubに公開されているので,今回はそれを使えるようにセットアップしてみる.
Boss of the SOC(BOTS) Investigatin Workshop for Splunkのインストール
- まずは,学習用のSplunk Appのインストールから.今回は,Splunk Baseからファイルをダウンロードしてインストール.
- 以下のリンクを訪問.
Boss of the SOC (BOTS) Advanced APT Hunting Companion App for Splunk
https://splunkbase.splunk.com/app/4430/ c
- 次のように表示される.
- ダウンロードする.(当然,Splunkに無料ユーザ登録が必要)
- ダウンロードしたいファイルは次の通り.
- 約16MB.
- SplunkのApp画面でファイルを選択してアップロード.
- 問題なくインストールできたら,この様に表示される.
演習用データの入手
- 演習用データは,Githubに登録してある.
splunk/botsv1
https://github.com/splunk/botsv1
- ここにあるデータを全てダウンロードしてインストールすると,11.3GBになる.ちなみに,フリー版だと1日500MBという制限があるが,このデータは分析済みデータなので入れる時にチャージされない様だ.
- そのサイトにあるリンクに掲載されているbotsv1-attack-only.tgzというファイルは圧縮して135MBだけれど演習に十分なデータが入っているそうなので,これを入手する.
$ wget https://s3.amazonaws.com/botsdataset/botsv1/botsv1-attack-only.tgz🆑
--2019-10-22 17:44:13--
https://s3.amazonaws.com/botsdataset/botsv1/botsv1-attack-only.tgz
s3.amazonaws.com (s3.amazonaws.com) をDNSに問いあわせています...
52.216.165.133
s3.amazonaws.com (s3.amazonaws.com)|52.216.165.133|:443 に接続しています.
.. 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 134331235 (128M) [application/x-tar]
`botsv1-attack-only.tgz' に保存中
botsv1-attack-only.tgz 100%[=====================================>]
128.11M 482KB/s 時間 2m 42s
2019-10-22 17:46:56 (811 KB/s) - `botsv1-attack-only.tgz' へ保存完了
[134331235/134331235]
$
- ダウンロードできたら,ファイルを確認.
$ ls -la botsv1-attack-only.tgz🆑
-rw-r--r-- 1 ujpadmin staff 134331235 4 30 2018 botsv1-attack-only.tgz
$
- 135MB.
- 圧縮ファイルを展開.
$ tar xzvf botsv1-attack-only.tgz🆑
x botsv1_data_set/
x botsv1_data_set/LICENSE
x botsv1_data_set/bin/
x botsv1_data_set/var/
x botsv1_data_set/default/
x botsv1_data_set/README.txt
x botsv1_data_set/metadata/
x botsv1_data_set/metadata/local.meta
x botsv1_data_set/metadata/default.meta
x botsv1_data_set/default/app.conf
x botsv1_data_set/default/indexes.conf
x botsv1_data_set/default/data/
x botsv1_data_set/default/data/ui/
x botsv1_data_set/default/data/ui/nav/
x botsv1_data_set/default/data/ui/views/
x botsv1_data_set/default/data/ui/views/README
x botsv1_data_set/default/data/ui/nav/default.xml
x botsv1_data_set/var/lib/
x botsv1_data_set/var/lib/splunk/
x botsv1_data_set/var/lib/splunk/botsv1/
x botsv1_data_set/var/lib/splunk/botsv1/thaweddb/
x botsv1_data_set/var/lib/splunk/botsv1/datamodel_summary/
x botsv1_data_set/var/lib/splunk/botsv1/colddb/
x botsv1_data_set/var/lib/splunk/botsv1/db/
x botsv1_data_set/var/lib/splunk/botsv1/db/.bucketManifest
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
x botsv1_data_set/var/lib/splunk/botsv1/db/CreationTime
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
x botsv1_data_set/var/lib/splunk/botsv1/db/GlobalMetaData/
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
SourceTypes.data
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
1470864737-1470864649-3842594044383916393.tsidx
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
Sources.data
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
splunk-autogen-params.dat
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
merged_lexicon.lex
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
optimize.result
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
1470868141-1470799731-3987826563906861801.tsidx
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
Hosts.data
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/.
sizeManifest4.1
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
rawdata/
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/.
rawSize
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
Strings.data
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
rawdata/journal.gz
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
rawdata/slicemin.dat
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1470868141_1470799731_28/
rawdata/slicesv2.dat
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
SourceTypes.data
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
Sources.data
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
splunk-autogen-params.dat
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
1472055410-1472055311-2848570253371219060.tsidx
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
merged_lexicon.lex
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
1472058450-1472053148-2997229452421710715.tsidx
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
optimize.result
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
Hosts.data
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/.
sizeManifest4.1
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
rawdata/
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/.
rawSize
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
1472063264-1472058288-3063067740541508307.tsidx
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
Strings.data
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
rawdata/journal.gz
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
rawdata/slicemin.dat
x botsv1_data_set/var/lib/splunk/botsv1/db/db_1472063264_1472053148_48/
rawdata/slicesv2.dat
x botsv1_data_set/bin/README
$
- 展開したファイルのファイルサイズを確認.
$ ls -la🆑
total 147520
drwx------+ 5 ujpadmin staff 160 10 22 17:53 .
drwxr-xr-x+ 20 ujpadmin staff 640 10 22 17:37 ..
-rw------- 1 ujpadmin staff 0 12 9 2018 .localized
-rw-r--r-- 1 ujpadmin staff 134331235 4 30 2018 botsv1-attack-only.tgz
drwxr-xr-x 8 ujpadmin staff 256 11 19 2017 botsv1_data_set
$ du -sh botsv1_data_set/🆑
322M botsv1_data_set/🈁
$
- 結構大きいねぇ.
- アプリケーションが格納されているディレクトリを確認.
$ ls -la /Applications/Splunk/etc/apps🆑
total 0
drwxr-xr-x 23 ujpadmin wheel 736 10 23 23:12 .
drwxr-xr-x 36 ujpadmin wheel 1152 10 23 23:11 ..
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 SplunkForwarder
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 SplunkLightForwarder
drwxr-xr-x 7 ujpadmin wheel 224 9 19 09:24 alert_logevent
drwxr-xr-x 7 ujpadmin wheel 224 9 19 09:24 alert_webhook
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 appsbrowser
drwxr-xr-x 6 ujpadmin wheel 192 9 19 09:24 gettingstarted
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 introspection_generator_addon
drwxr-xr-x 9 ujpadmin wheel 288 10 23 23:12 investigate_workshop🈁
drwxr-xr-x 6 ujpadmin wheel 192 9 19 09:24 launcher
drwxr-xr-x 5 ujpadmin wheel 160 9 26 22:52 learned
drwxr-xr-x 3 ujpadmin wheel 96 9 19 09:24 legacy
drwxr-xr-x 8 ujpadmin wheel 256 10 22 18:32 lookup_editor🈁
drwxr-xr-x 6 ujpadmin wheel 192 9 19 09:24 sample_app
drwxr-xr-x 10 ujpadmin wheel 320 10 7 00:03 search
drwxr-xr-x 6 ujpadmin wheel 192 9 26 23:17 splunk_archiver
drwxr-xr-x 9 ujpadmin wheel 288 9 19 09:25 splunk_gdi
drwxr-xr-x 3 ujpadmin wheel 96 9 19 09:24 splunk_httpinput
drwxr-xr-x 8 ujpadmin wheel 256 9 26 22:52 splunk_instrumentation
drwxr-xr-x 8 ujpadmin wheel 256 9 19 09:25 splunk_metrics_workspace
drwxr-xr-x 11 ujpadmin wheel 352 9 26 22:53 splunk_monitoring_console
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 user-prefs
$
- 先ほど入れたBoss of the SOCのApp(investigate_workshop)が入っていることが確認できる.
- このディレクトリに,ダウンロードしたデータファイルを配置する.
$ mv botsv1_data_set /Applications/Splunk/etc/apps/.🆑
$
$ ls -la /Applications/Splunk/etc/apps🆑
total 0
drwxr-xr-x 24 ujpadmin wheel 768 10 23 23:17 .
drwxr-xr-x 36 ujpadmin wheel 1152 10 23 23:11 ..
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 SplunkForwarder
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 SplunkLightForwarder
drwxr-xr-x 7 ujpadmin wheel 224 9 19 09:24 alert_logevent
drwxr-xr-x 7 ujpadmin wheel 224 9 19 09:24 alert_webhook
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 appsbrowser
drwxr-xr-x 8 ujpadmin staff 256 11 19 2017 botsv1_data_set🈁
drwxr-xr-x 6 ujpadmin wheel 192 9 19 09:24 gettingstarted
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 introspection_generator_addon
drwxr-xr-x 9 ujpadmin wheel 288 10 23 23:12 investigate_workshop
drwxr-xr-x 6 ujpadmin wheel 192 9 19 09:24 launcher
drwxr-xr-x 5 ujpadmin wheel 160 9 26 22:52 learned
drwxr-xr-x 3 ujpadmin wheel 96 9 19 09:24 legacy
drwxr-xr-x 8 ujpadmin wheel 256 10 22 18:32 lookup_editor
drwxr-xr-x 6 ujpadmin wheel 192 9 19 09:24 sample_app
drwxr-xr-x 10 ujpadmin wheel 320 10 7 00:03 search
drwxr-xr-x 6 ujpadmin wheel 192 9 26 23:17 splunk_archiver
drwxr-xr-x 9 ujpadmin wheel 288 9 19 09:25 splunk_gdi
drwxr-xr-x 3 ujpadmin wheel 96 9 19 09:24 splunk_httpinput
drwxr-xr-x 8 ujpadmin wheel 256 9 26 22:52 splunk_instrumentation
drwxr-xr-x 8 ujpadmin wheel 256 9 19 09:25 splunk_metrics_workspace
drwxr-xr-x 11 ujpadmin wheel 352 9 26 22:53 splunk_monitoring_console
drwxr-xr-x 4 ujpadmin wheel 128 9 19 09:24 user-prefs
$
- 有効にするために,Splunkを再起動する.
- ここは好みの問題だけれど,Stopして停止する.
$ /Applications/Splunk/bin/splunk stop🆑
Stopping splunkd...
Shutting down. Please wait, as this may take a few minutes.
..
Stopping splunk helpers...
Done.
$
- 停止したので,起動する.
$ /Applications/Splunk/bin/splunk start🆑
Splunk> Australian for grep.
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.
Checking critical directories... Done
Checking indexes...
Validated: _audit _internal _introspection _telemetry
_thefishbucket botsv1🈁 history ipaccess_access ipaccess_error
juno_syslog main ujp1_access ujp1_error summary ujp_access ujp_error
ujp_mail ujp_mailaccess
Done
Checking filesystem compatibility... Done
Checking conf files for problems...
Done
Checking default conf files for edits...
Validating installed files against hashes from '/Applications/Splunk/
splunk-7.3.1.1-7651b7244cf2-darwin-64-manifest'
File '/Applications/Splunk/etc/system/default/web.conf' changed.
Problems were found, please review your files and move
customizations to local
All preliminary checks passed.
Starting splunk server daemon (splunkd)...
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://gaia.local:8000
$
- 起動しました.インデックスも認識されている模様.
追加で必要になるAppとAdd-on
- BOTSの例題では,著名でスタンダードなアプリケーションやネットワーク機器を使ったりしているという仮定があるようで,それら専用のSplunk App/Add-onを入れておく.
- 知らないものもたくさんあるので,違うことを書いているかもしれないけれど,それはご愛嬌で.
-Fortinet Fortigate Add-on for Splunk
--https://splunkbase.splunk.com/app/2846
--中小企業によく入っているネットワークセキュリティアプライアンス.
ファイアウォールと言えばいいのかなぁ.
-Splunk Add-on for Tenable
--https://splunkbase.splunk.com/app/1710
--フリーのペネトレーションテストツールのNessusのログを扱うものっぽい.
-Splunk Stream Add-on
--https://splunkbase.splunk.com/app/1809/
--Splunkの機能のStream.パケットキャプチャ機能的なもの?のアドオン.
-Splunk App for Stream
--https://splunkbase.splunk.com/app/1809/
--Splunk StreamのSplunk App版.といいうか,最近はAdd-onじゃなくてAppになった模様.
-Splunk Add-on for Microsoft Windows
--https://splunkbase.splunk.com/app/742/
--WindowsのActive Direcotory関連のログ分析用アドオン.
-TA-Suricata
--https://splunkbase.splunk.com/app/2760/
--フリーのIPSであるSuricataのログを扱うものらしい.
-Microsoft Sysmon Add-on
--https://splunkbase.splunk.com/app/1914/
--Microsoftが無償で提供しているSysmonのログ.Sysmonはプロセスの作成やファ
イルアクセスなどのイベントが取れるものらしい.
-URL Toolbox
--https://splunkbase.splunk.com/app/2734/
--よくわからないけれどログデータの中のURLをみやすくしてくれるってことかな...

