コンテンツにスキップ

Timesketch - 協調フォレンジック タイムライン分析 チートシート

Timesketch - 協調フォレンジック タイムライン分析 チートシート

Timesketch は、協調フォレンジック タイムライン分析 用のオープン ソース ツール (Google 製) です。調査官は、タイムスタンプ付きデータ (Plaso によって解析されたディスク/トリアージ アーティファクト、ログ、CSV) を「スケッチ」に取り込み、共有タイムラインのイベントを検索、フィルター、タグ付け、コメント、スターします。これは DFIR チームワーク向けに構築されています。複数のアナリストが同じインシデントを処理し、保存された検索を共有し、自動アナライザーを実行して疑わしいアクティビティを表示します。Velociraptor などの収集ツールと自然に組み合わせます。

デプロイメント

メソッドコマンド / 注記
Docker Compose (推奨)ドキュメントの公式 docker-compose デプロイメント を従う
クイック開発インストールプロジェクトの deploy/docker 設定を使用
ユーザーを作成tsctl create-user <username>
グループに追加tsctl add-user-to-group ...
Web UIスタートアップ後に構成されたホスト/ポートで処理される

Timesketch はサーバー アプリケーション (Elasticsearch/OpenSearch + PostgreSQL + Web UI) であり、単一バイナリではありません。Docker Compose でデプロイして、最もスムーズなセットアップを行います。

データの取り込み

ソース方法
Plaso ストレージ ファイルlog2timeline.py によって作成された .plaso ファイルをアップロード
CSV / JSONL必須の datetime, message, timestamp_desc カラムでアップロード
CLI インポートtimesketch_importer -u user -p pass --host URL data.csv
API インポートPython クライアント import_streamer を使用

Plaso → Timesketch

# Plaso でイメージ/トリアージから スーパー タイムラインを作成、次にインポート
log2timeline.py --storage-file evidence.plaso /mnt/triage
timesketch_importer --host https://ts.example.com \
  -u analyst evidence.plaso --sketch_id 1

タイムラインの検索

Timesketch は Elasticsearch/Lucene スタイルのクエリ構文を使用します。

クエリマッチ対象
powershell用語を含むイベント
data_type:"windows:evtx:record"特定のパーサー データ タイプ
message:*mimikatz*メッセージ フィールド内のワイルドカード
tag:bad「bad」とタグ付けしたイベント
datetime:[2026-06-01 TO 2026-06-02]時間範囲
event_identifier:4624 AND username:adminブール結合

イベントの操作

アクション説明
スター関心のあるイベントをマーク
タグラベルを適用 (例: bad, suspicious, lateral-movement)
コメントイベントに調査官のメモを追加
保存済みの検索再利用/共有用にクエリを保存
ストーリー保存済みの検索と結果を埋め込むナレーティブを作成

アナライザー

アナライザーは自動的にタイムラインに対して実行され、パターンにフラグを立てます。

アナライザー表示内容
ブラウザ検索 / アーティファクト関心のある Web アクティビティ
ログイン/Windows イベント認証異常
Sigmaイベントに対して Sigma 検出ルールをマッチング
Yet、脅威インテリジェンス フィード既知の不正インジケーター
Taggerルールでイベントに自動タグを付け
タスク方法
アナライザーを実行UI または API からタイムラインで トリガー
Sigma ルールSigma アナライザーがそれらをマッチングするようにルールを管理
集計チャートを作成 (例: 時間ごとのイベント、トップ ユーザー)

API / 自動化

from timesketch_api_client import client
ts = client.TimesketchApi("https://ts.example.com", "analyst", "password")
sketch = ts.get_sketch(1)
for event in sketch.explore("tag:bad", as_pandas=True).itertuples():
    print(event.message)

一般的なワークフロー

# トリアージ出力からスーパー タイムラインを構築し、スケッチに読み込み
log2timeline.py --storage-file case.plaso /evidence
timesketch_importer -u analyst case.plaso --sketch_id 5

# UI で: 疑わしいアクティビティを検索、結果にタグを付け、ストーリーを作成
#   message:*mimikatz*  →  タグ "credential-access"  →  ストーリーに追加

Timesketch と その他のタイムライン ツール

側面TimesketchPlaso (log2timeline)Splunk
ロール協調分析 UIタイムライン生成SIEM/ログ分析
コラボレーションファースト クラス (スケッチ、ストーリー)なし (CLI)チーム ダッシュボード
入力Plaso、CSV、JSONLファイルシステム/アーティファクトフォワーダー/インデックス
最適な用途チーム DFIR タイムライン レビュータイムラインの作成広範なエンタープライズ ログ

リソース