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