いつもの前置き
- Splunkには色々なAppがある。
- そこで私がトライした内容は後学のために共有したいと思いここに書き残します。
- ゆるい情報なので参考程度でご勘弁。
Streamって?何ができるの?
- Splunk Streamは、 WireデータのL2-L7レイヤーを対象にすべて解析し、詳細な情報を含むイベントを生成。イメージは電話の通話内容記録(*FlowDataはホストとホスト間の接続を示すことができますが、これらの会話の内容は記録されていない=電話の発着信履歴)
Splunk Stream
- 今回使うAppです。Splunk BuildのためSplunk社が最新版についてサポートしてます
Splunk Stream ダウンロードサイト - インストールガイドは英語で公式のものもあります
Install Guide
構成イメージ
セットアップ手順
- Splunk App for StreamをSplunk(Deployment Server兼用)サーバにインストール
- Splunk_TA_streamを/opt/splunk/etc/deployment-apps/ディレクトリ配下にコピー
- ~/deployment-apps/Splunk_TA_stream/local/inputs.confを新規作成し、 (ServerIP)を任意に書き換え
inputs.conf
[streamfwd://streamfwd]
splunk_stream_app_location = https://(ServerIP):8000/en-us/custom/splunk_app_stream/
- Splunk_TA_StreamをDeployment Server機能を使ってWeb Serverに配布
- UFの再起動
見える化
正常にWire Dataがキャプチャ出来ていると以下のような画面が見えてきます。
そして同じsrcとflow_idを束ねて1つのtransactionとして集計
パスワードフォームに入力されたパスワード文字列を抽出し、どのユーザ名とパスワードの組み合わせでログイン試行が行われたかが確認できる(参考元サンプルデータ:Boss of the SOC (BOTS) Dataset Version 1)
気づき
- apacheのアクセスログ(default)と比べると、数倍のサイズ量にはなる。同じアクセス1回分のイベントを比較して見るとわかるが、上がaccess_combinedで下がstream:httpのデータ内容。
- サービスインしているWebサーバのPOSTデータを記録していない場合、apacheの出力レベルを変更する代わりにstreamで代用が可能と思われる。
Tips
-
Estimate mode
-
必要なフィールドのみ選択して余計なデータをsplunkに溜めない。分析に使いたいフィールドのみを選択してstreamをキャプチャできます。
-
手っ取り早くstreamデータのサンプルログが見たい人はgithub上にて公開中のBOTSデータを参考に。Boss of the SOC (BOTS) Dataset Version 1
次回は
SSL Decryptの設定を行ってみたいと思います。https:アクセスログを可視化してみたいと思います。