Timesketch - Kollaborative Forensic Timeline Analysis Cheatsheet
Timesketch ist ein Open-Source-Tool (von Google) für kollaborative forensische Timeline-Analyse. Ermittler erfassen zeitgestempelte Daten — Disk/Triage-Artefakte geparst von Plaso, Logs, CSVs — in eine „Skizze”, dann suchen, filtern, markieren, kommentieren und markieren Sie Ereignisse auf einer gemeinsamen Timeline. Es wurde für DFIR-Teamwork gebaut: mehrere Analysten arbeiten am selben Vorfall, teilen gespeicherte Suchen und führen automatisierte Analyser aus, um verdächtige Aktivitäten zu erkennen. Es passt natürlich zu Sammlungstools wie Velociraptor.
Bereitstellung
| Method | Befehl / Anmerkung |
|---|
| Docker Compose (empfohlen) | Folgen Sie der offiziellen docker-compose Bereitstellung in den Docs |
| Quick Dev-Install | Verwenden Sie die deploy/docker Konfiguration des Projekts |
| Einen Benutzer erstellen | tsctl create-user <username> |
| Zur Gruppe hinzufügen | tsctl add-user-to-group ... |
| Web-UI | Wird auf dem konfigurierten Host/Port nach dem Start bereitgestellt |
Timesketch ist eine Server-Anwendung (Elasticsearch/OpenSearch + PostgreSQL + Web-UI), keine einzelne Binärdatei. Bereitstellung mit Docker Compose für die einfachste Einrichtung.
Daten erfassen
| Quelle | Wie |
|---|
| Plaso Storage-Datei | Eine .plaso Datei hochladen, die von log2timeline.py produziert wird |
| CSV / JSONL | Hochladen mit erforderlichen datetime, message, timestamp_desc Spalten |
| CLI Import | timesketch_importer -u user -p pass --host URL data.csv |
| API Import | Verwenden Sie den Python-Client import_streamer |
Plaso → Timesketch
# Erstellen Sie eine Super-Timeline aus einem Image/Triage mit Plaso, dann importieren Sie
log2timeline.py --storage-file evidence.plaso /mnt/triage
timesketch_importer --host https://ts.example.com \
-u analyst evidence.plaso --sketch_id 1
Durchsuchen der Timeline
Timesketch verwendet eine Elasticsearch/Lucene-ähnliche Abfragesyntax.
| Abfrage | Passt |
|---|
powershell | Ereignisse mit dem Begriff |
data_type:"windows:evtx:record" | Ein spezifischer Parser-Datentyp |
message:*mimikatz* | Wildcard im Message-Feld |
tag:bad | Ereignisse, die Sie als „schlecht” markiert haben |
datetime:[2026-06-01 TO 2026-06-02] | Ein Zeitbereich |
event_identifier:4624 AND username:admin | Boolesche Kombinationen |
Arbeiten mit Ereignissen
| Aktion | Beschreibung |
|---|
| Star | Markieren Sie interessante Ereignisse |
| Tag | Wenden Sie Labels an (z.B. bad, suspicious, lateral-movement) |
| Comment | Fügen Sie Investigator-Notizen zu einem Ereignis hinzu |
| Saved search | Speichern Sie eine Abfrage zur Wiederverwendung / zum Teilen |
| Story | Schreiben Sie eine Erzählung, die gespeicherte Suchen und Erkenntnisse einbettet |
Analyser
Analyser laufen automatisch über eine Timeline, um Muster zu kennzeichnen.
| Analyser | Erkennt |
|---|
| Browser Search / Artifacts | Web-Aktivität von Interesse |
| Login/Windows Events | Authentication Anomalien |
| Sigma | Passt Sigma-Erkennungsregeln gegen Ereignisse an |
| Yet, Threat Intel Feeds | Bekannt-schlechte Indikatoren |
| Tagger | Auto-Tags Ereignisse nach Regeln |
| Task | Wie |
|---|
| Einen Analyser ausführen | Auslösen von der UI oder API in einer Timeline |
| Sigma-Regeln | Verwalten Sie Regeln, damit der Sigma-Analyser sie abgleichen kann |
| Aggregationen | Erstellen Sie Diagramme (z.B. Ereignisse über Zeit, Top-Benutzer) |
API / Automatisierung
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)
Häufige Arbeitsabläufe
# Erstellen Sie eine Super-Timeline aus der Triage-Ausgabe und laden Sie sie in eine Skizze
log2timeline.py --storage-file case.plaso /evidence
timesketch_importer -u analyst case.plaso --sketch_id 5
# In der UI: Suchen Sie nach verdächtiger Aktivität, markieren Sie Erkenntnisse, schreiben Sie eine Story
# message:*mimikatz* → tag "credential-access" → add to Story
| Aspekt | Timesketch | Plaso (log2timeline) | Splunk |
|---|
| Rolle | Kollaborative Analyse-UI | Timeline-Generierung | SIEM/Log-Analytik |
| Zusammenarbeit | First-Class (Sketches, Stories) | Keine (CLI) | Team-Dashboards |
| Eingabe | Plaso, CSV, JSONL | Filesystem/Artifacts | Forwarders/Indexes |
| Best for | Team DFIR Timeline Review | Timeline erzeugen | Breites Enterprise-Logging |
Ressourcen