フォレンジック向けツール「Timesketch」を試してみる
概要
フォレンジック向けツールの「Timesketch」を試してみようと思います。
これも気になっていたツールのひとつなのですが、いまいち気分がノらずに見送ってました。
複数人共同で一つのタイムラインを編集したり見ていくのに特化したツールみたいです。
csvファイルやjsonlからイベントをインポートしたり、手動でイベント入れたりもできる。
手順
1. 環境の準備
Dockerで動かすのが楽みたいです。
私は普段遣いのKali LinuxにDocker CEを入れて動かします。
$ echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
$ curl -fsSL https://download.docker.com/linux/debian/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo apt update
$ sudo apt install -y docker-ce docker-ce-cli containerd.io
詳細は下記ページで。
2. Timesketchのインストール
下記コマンドでインストール&ユーザ作成までできました。
$ cd {任意のディレクトリ}
$ curl -s -O https://raw.githubusercontent.com/google/timesketch/master/contrib/deploy_timesketch.sh
$ chmod 755 deploy_timesketch.sh
$ sudo ./deploy_timesketch.sh
...
Would you like to start the containers? [Y/n] (default:no)Y
Would you like to create a new timesketch user? [Y/n] (default:no)Y
Please provide a new username: {任意のユーザ名}
Enter password: {任意のパスワード}
Enter password again: {任意のパスワード}
User account for forensic created/updated
user created
$ cd timesketch
$ sudo docker compose up -d
基本は下記に従ってやればOKです。
3. 使ってみる
localhostにアクセスするとWebUIが開きました。
インストール時に作成した初期ユーザでログインしましょう。
Blank Sketch
をクリックすると新たなプロジェクトファイルを作れます。
初期段階では何もないので、csvやjsonlなどのデータを読み込んでベースのタイムラインを作ります。
とりあえずEvtxECmdでパースしたcsvを入れてみました。
最低限 datetime,message,timestamp_desc
のカラムが必要みたいです。
該当するカラム名がなければマニュアルでどのカラムを割り当てるか設定します。
plasoの基本フォーマットを使うことを想定しているみたいなので、セットで使うほうがよさそうですね。
読み込むとこんな感じ。
使い方的にはログ関連をインポート → 検索して気になるものにStar or Tag付け, 必要に応じてマニュアルでイベント追加 → 最後にStar or Tagがついたイベントを眺めて全体を把握って感じかな。
おわりに
体感上の検索速度はさほど早くないです。
初見のログをとりあえずぶち込んで分析って使い方よりは、事前にある程度の知見がある状態で定型化できない作業を補完するために使う感じがいいのかな。
内部でのキャッシュにRedisを使ってるみたいなので、Timesketch専用サーバを用意してドデカメモリを割り当てたら多少パフォーマンスあがるかも。
お し ま い
Discussion