Indexing the exported Event Logs by Splunk Universal Forwarder

monii
6 min readAug 10, 2021

--

フォレンジックでイベントログを抽出してオフラインで見る場合、Windowsの標準ツールは使い勝手が悪い。

EZツールなどでevtxをcsvに変換して、Timeline ExplorerかSIEM(Splunk等)に入れるかの選択肢になってくる。

しかし、変換が面倒だったりする。evtxのままSplunkのエコシステムに食わせたいというのがモチベーション。

とはいえ、単体のSplunkでは取り込めなかったので一手間が必要。

  • Linux版のSplunkはevtxを取り込むことができない。
  • WindowsのSplunkはevtxの形式を取り込めるかと思いきや、エクスポートしたやつは取り込めない

ということで、 Splunk Universal Forwarder(UF)を使ってエクスポートしたイベントログを取り込めるか試してみた。

なお、evtxに対応しているOSが必要なので、

  • Splunk UF(Windows) → Splunk(Linux)の構成で行う。
  • Splunk UF(Linux) → Splunk(Linux)の構成では取り込めない。

データの準備

Splunk UFをインストールするWindowsのデータをサンプルとして使う。

kapeを起動し、データを取得しておく。 ここでは、保存先は D:\result に設定。

以下の構造でデータが取得できる。

Splunk(Linux)での設定

  • 9997ポートでデータを待ち受けられるように設定。
  • 格納用のindexを作成しておく。今回は wineventlog にする。

Splunk UF(Windows)での設定

appの作成

作成しなくてもいいけど、appを作り設定をまとめておく。

Windowsの場合、以下にUFがインストールされる。

C:\Program Files\SplunkUniversalForwarder

appを作るには、 etc\apps\ の下に適当に splunk_evtx_forwarder_sample というフォルダを作り、合わせてそこにlocalというフォルダも作る。

つまり、パスは以下のようになる。

  • C:\Program Files\SplunkUniversalForwarder\etc\apps\splunk_evtx_forwarder_sample\local\

次に、以下の4つのファイルを作成する

それぞれの中身を以下に書き換える。

  • app.conf
[install]
state = enabled
[package]
check_for_updates = false
[ui]
is_visible = false
is_manageable = false
  • inputs.conf
    - monitorでevtxのファイルパスを指定。
    - indexは最初に作ったindexに設定。
[monitor://D:\result\C\Windows\System32\winevt\logs\*.evtx]
disabled = 0
sourcetype = preprocess-winevt
index = wineventlog
crcSalt = <SOURCE>
  • limits.conf
    - スループットを無制限にする。
[thruput]
maxKBps = 0
  • outputs.conf
    - 転送先のSplunkの情報をセット。
    - serverには転送先Splunk(Linux)のIPとポートを記述。
[tcpout]
defaultGroup = primary_indexers
forceTimebasedAutoLB = true
[tcpout:primary_indexers]
server = 172.20.1.121:9997

UFの実行

準備ができたので、Splunk UFを起動する。

C:\Program Files\SplunkUniversalForwarder\bin>splunk.exe restart

取り込みの確認

Splunk (Linux)側でデータが取得できているか見てみる。

無事に取得。

参考

--

--