building-incident-timeline-with-timesketch について
インシデント調査で Timesketch を使い、フォレンジックタイムラインを構築するための実践ガイドです。証拠の取り込みから分析、共同調査、報告書の作成までを扱います。
主な機能
- 01Plaso と CSV/JSONL の取り込み
- 02組み込みイベントアナライザー
- 03検索、タグ、注釈
- 04共同調査ストーリー
活用シーン
- 01エンドポイントやクラウドの証拠を時系列化
- 02アナライザーと Sigma ルールでイベントを精査
- 03調査結果をインシデント報告書にまとめる
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill building-incident-timeline-with-timesketchインストール後、Claude Code で/building-incident-timeline-with-timesketchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
Timesketch でインシデントのタイムラインを構築する
概要
Timesketch は、Google が開発したオープンソースの共同フォレンジック・タイムライン分析ツールです。セキュリティチームは、インシデント調査中に複数のソースから得た時系列データを可視化して分析できます。エンドポイント、サーバー、クラウドサービスからログやアーティファクトを取り込み、統一された検索可能なタイムラインに正規化します。また、組み込みアナライザー、タグ付け、スケッチへの注釈、ストーリーの作成など、強力な分析機能を備えています。Timesketch はアーティファクトの解析に Plaso(log2timeline)を統合しており、インシデント対応中にタイムラインを迅速に構築するため、CSV/JSONL を直接取り込むこともできます。
使用する場面
- 環境で Timesketch のインシデントタイムライン構築機能を導入または設定する場合
- コンプライアンス要件に準拠したセキュリティ管理策を確立する場合
- この領域のセキュリティアーキテクチャを構築または改善する場合
- この実装を必要とするセキュリティ評価を実施する場合
前提条件
- インシデント対応の概念とツールに関する知識
- 安全に実行できるテスト環境またはラボ環境へのアクセス
- 必要な依存関係をインストールした Python 3.8 以降
- テスト活動に対する適切な許可
アーキテクチャとコンポーネント
コアコンポーネント
- Timesketch Server:タイムライン管理用の REST API を備えたウェブアプリケーション
- OpenSearch/Elasticsearch:タイムラインイベントのバックエンドストレージおよび検索エンジン
- PostgreSQL:スケッチ、ストーリー、ユーザーデータ用のメタデータストレージ
- Redis:バックグラウンド処理用のタスクキュー管理
- Celery Workers:タイムラインのアップロードとアナライザーの非同期処理
データフロー
Evidence Sources --> Plaso/log2timeline --> Plaso storage file (.plaso)
| |
v v
CSV/JSONL --> Timesketch Importer --> OpenSearch Index
|
v
Timesketch Web UI
(Search, Analyze, Story)
デプロイ
Docker によるデプロイ(推奨)
# Clone Timesketch repository
git clone https://github.com/google/timesketch.git
cd timesketch
# Run deployment helper script
cd docker
sudo docker compose up -d
# Default access: https://localhost:443
# Admin credentials generated during first run
システム要件
- 最低 8 GB の RAM(大規模な調査では 16 GB 以上を推奨)
- 最低 4 コアの CPU
- OpenSearch のインデックス用 SSD ストレージ
- Docker と Docker Compose がインストールされていること
データの取り込み方法
方法 1:Plaso の統合(包括的)
# Process disk image with log2timeline
log2timeline.py --storage-file evidence.plaso /path/to/disk/image
# Process Windows event logs
log2timeline.py --parsers winevtx --storage-file windows_events.plaso /path/to/evtx/
# Process multiple evidence sources
log2timeline.py --parsers "winevtx,prefetch,amcache,shimcache,userassist" \
--storage-file full_analysis.plaso /path/to/mounted/image/
# Import Plaso file into Timesketch
timesketch_importer -s "Case-2025-001" -t "Endpoint-WKS01" evidence.plaso
方法 2:CSV のインポート(迅速な取り込み)
message,datetime,timestamp_desc,source,hostname
"User login detected","2025-01-15T08:30:00Z","Event Recorded","Security Log","DC01"
"PowerShell execution","2025-01-15T08:31:15Z","Event Recorded","PowerShell","WKS042"
# Import CSV directly
timesketch_importer -s "Case-2025-001" -t "Quick-Triage" events.csv
方法 3:JSONL のインポート(構造化データ)
{"message": "Suspicious logon from 10.1.2.3", "datetime": "2025-01-15T08:30:00Z", "timestamp_desc": "Event Recorded", "source_short": "Security", "hostname": "DC01"}
方法 4:Sigma ルールの統合
# Upload Sigma rules for automated detection
timesketch_importer --sigma-rules /path/to/sigma/rules/
分析ワークフロー
ステップ 1:調査スケッチを作成する
1. Log into Timesketch web interface
2. Create new sketch (investigation case)
3. Add relevant timelines to the sketch
4. Set sketch description and tags
ステップ 2:組み込みアナライザーを実行する
Timesketch には、次の項目を自動的に特定するアナライザーが含まれています。
- ブラウザー検索アナライザー:ブラウザーの履歴から検索クエリを抽出します
- イベント連鎖アナライザー:関連イベント(ダウンロード → 実行)を関連付けます
- ドメインアナライザー:ドメイン名を抽出して分類します
- 特徴抽出アナライザー:IP、URL、ハッシュを特定します
- 地理位置アナライザー:イベントを地理上の位置にマッピングします
- 類似度スコアラー:タイムライン間で類似するイベントを検出します
- Sigma アナライザー:イベントを Sigma 検出ルールと照合します
- アカウントファインダー:ユーザーアカウントのアクティビティパターンを特定します
- タグ付けツール:事前定義されたルールに基づいてラベルを適用します
ステップ 3:検索とフィルタリング
# Search examples in Timesketch query language
# Find all events related to specific user
source_short:Security AND message:"john.admin"
# Find PowerShell execution events
data_type:"windows:evtx:record" AND event_identifier:4104
# Find lateral movement indicators
source_short:Security AND event_identifier:4624 AND xml_string:"LogonType\">3"
# Find events within specific time range
datetime:[2025-01-15T00:00:00 TO 2025-01-15T23:59:59]
# Find file creation events
data_type:"fs:stat" AND timestamp_desc:"Creation Time"
# Search with tags
tag:"suspicious" OR tag:"lateral_movement"
ステップ 4:調査ストーリーを作成する
1. Create new story within the sketch
2. Add search views that support each finding
3. Annotate key events with investigator notes
4. Link events to MITRE ATT&CK techniques
5. Document the attack narrative chronologically
6. Export story for inclusion in incident report
高度な機能
共同調査
- 複数のアナリストが同じスケッチを同時に操作します
- コメントと注釈はイベントに保存されます
- 保存した検索をチーム内で共有できます
- 調査ストーリーに、コンテキストとともに調査結果を記録できます
API による自動化
from timesketch_api_client import config
from timesketch_api_client import client as ts_client
# Connect to Timesketch
ts = ts_client.TimesketchApi(
host_uri="https://timesketch.local",
username="analyst",
password="password"
)
# Get sketch
sketch = ts.get_sketch(1)
# Search events
search = sketch.explore(
query_string='event_identifier:4624 AND LogonType:3',
return_fields='datetime,message,hostname,source_short'
)
# Add tags to events
for event in search.get('objects', []):
sketch.tag_event(event['_id'], ['lateral_movement'])
Dissect との統合
# Use Dissect for faster artifact parsing (alternative to Plaso)
target-query -f timesketch://timesketch.local/case-001 \
targets/hostname/ -q "windows.evtx" --limit 0
タイムライン構築の主要なデータソース
| ソース | パーサー | 証拠としての価値 |
|---|---|---|
| Windows イベントログ(.evtx) | winevtx | 認証、プロセス実行、サービス |
| Prefetch ファイル | prefetch | プログラム実行履歴 |
| MFT($MFT) | mft | ファイルシステムのアクティビティ |
| レジストリハイブ | winreg | システム構成、永続化 |
| ブラウザー履歴 | chrome/firefox | Web アクティビティ、ダウンロード |
| Syslog | syslog | Linux/ネットワーク機器のイベント |
| CloudTrail ログ | jsonl | AWS API のアクティビティ |
| Azure アクティビティログ | jsonl | Azure リソースの操作 |
| ファイアウォールログ | csv/jsonl | ネットワーク接続 |
| プロキシログ | csv/jsonl | HTTP/HTTPS トラフィック |
MITRE ATT&CK マッピング
| テクニック | タイムラインの指標 |
|---|---|
| 初期アクセス(TA0001) | 最初の悪意あるイベント、フィッシングメールの受信 |
| 実行(T1059) | PowerShell/CMD のイベント、プロセスの作成 |
| 永続化(TA0003) | レジストリの変更、スケジュールされたタスク、サービス |
| ラテラルムーブメント(TA0008) | リモートログオン、SMB 接続、RDP セッション |
| 情報の持ち出し(TA0010) | 大容量のデータ転送、クラウドストレージへのアップロード |
参考資料
コメント
Markdown 対応