Communitygithub.com

building-incident-timeline-with-timesketch

Construisez des chronologies d'incidents forensiques collaboratives en utilisant Timesketch pour ingérer, normaliser et analyser des données provenant de multiples sources.

Qu'est-ce que building-incident-timeline-with-timesketch ?

Cette compétence permet aux équipes de sécurité de construire des chronologies d'incidents forensiques détaillées et collaboratives à l'aide de Timesketch, un outil open-source développé par Google. Timesketch ingère des logs et artefacts provenant de terminaux, serveurs et services cloud, les normalise en une chronologie unifiée et interrogeable, et fournit des capacités d'analyse puissantes comme des analyseurs intégrés, des tags, des annotations et la construction d'histoires. La compétence couvre le déploiement (via Docker), l'ingestion de données (Plaso, CSV, JSONL, règles Sigma), le workflow d'analyse (création de sketchs, recherche, filtrage, construction d'histoires) et les fonctionnalités avancées comme la collaboration en temps réel, l'automatisation via l'API REST, et l'intégration avec des outils comme Dissect. Elle est idéale pour les analystes en réponse aux incidents, les chasseurs de menaces et les équipes SOC qui ont besoin d'une plateforme centralisée pour analyser les preuves chronologiques lors d'enquêtes.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/building-incident-timeline-with-timesketch

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Construction d'une chronologie d'incidents avec Timesketch

Vue d'ensemble

Timesketch est un outil collaboratif open-source d'analyse de chronologies forensiques développé par Google. Il permet aux équipes de sécurité de visualiser et d'analyser des données chronologiques provenant de multiples sources lors d'enquêtes sur des incidents. Il ingère des logs et artefacts de terminaux, serveurs et services cloud, les normalise en une chronologie unifiée et interrogeable, et offre des capacités d'analyse puissantes, notamment des analyseurs intégrés, du marquage, des annotations de sketch et la création d'histoires. Timesketch s'intègre à Plaso (log2timeline) pour l'analyse des artefacts et prend en charge l'ingestion directe de CSV/JSONL pour une construction rapide de chronologies lors d'incidents actifs.

Quand l'utiliser

  • Lors du déploiement ou de la configuration de capacités de construction de chronologies d'incidents avec Timesketch dans votre environnement
  • Lors de la mise en place de contrôles de sécurité alignés sur les exigences de conformité
  • Lors de la construction ou de l'amélioration de l'architecture de sécurité pour ce domaine
  • Lors de la réalisation d'évaluations de sécurité nécessitant cette implémentation

Prérequis

  • Connaissance des concepts et outils de réponse aux incidents
  • Accès à un environnement de test ou de laboratoire pour une exécution sécurisée
  • Python 3.8+ avec les dépendances nécessaires installées
  • Autorisation appropriée pour toute activité de test

Architecture et composants

Composants principaux

  • Serveur Timesketch: Application web avec API REST pour la gestion des chronologies
  • OpenSearch/Elasticsearch: Stockage backend et moteur de recherche pour les événements de la chronologie
  • PostgreSQL: Stockage des métadonnées pour les sketches, les histoires et les données utilisateur
  • Redis: Gestion des files d'attente de tâches pour le traitement en arrière-plan
  • Travailleurs Celery: Traitement asynchrone des téléchargements de chronologies et des analyseurs

Flux de données

Sources de preuves --> Plaso/log2timeline --> Fichier de stockage Plaso (.plaso)
     |                                           |
     v                                           v
  CSV/JSONL --> Importateur Timesketch --> Index OpenSearch
                                           |
                                           v
                                    Interface Web Timesketch
                                    (Rechercher, Analyser, Histoire)

Déploiement

Déploiement Docker (Recommandé)

# Cloner le dépôt Timesketch
git clone https://github.com/google/timesketch.git
cd timesketch

# Exécuter le script d'aide au déploiement
cd docker
sudo docker compose up -d

# Accès par défaut : https://localhost:443
# Identifiants administrateur générés lors de la première exécution

Configuration système requise

  • Minimum 8 Go de RAM (16+ Go recommandé pour les enquêtes importantes)
  • 4 cœurs CPU minimum
  • Stockage SSD pour les index OpenSearch
  • Docker et Docker Compose installés

Méthodes d'ingestion de données

Méthode 1 : Intégration Plaso (Complète)

# Traiter une image disque avec log2timeline
log2timeline.py --storage-file evidence.plaso /chemin/vers/image/du/disque

# Traiter les journaux d'événements Windows
log2timeline.py --parsers winevtx --storage-file windows_events.plaso /chemin/vers/evtx/

# Traiter plusieurs sources de preuves
log2timeline.py --parsers "winevtx,prefetch,amcache,shimcache,userassist" \
  --storage-file full_analysis.plaso /chemin/vers/image/montee/

# Importer le fichier Plaso dans Timesketch
timesketch_importer -s "Cas-2025-001" -t "Terminal-WKS01" evidence.plaso

Méthode 2 : Import CSV (Ingestion rapide)

message,datetime,timestamp_desc,source,hostname
"Connexion utilisateur détectée","2025-01-15T08:30:00Z","Événement enregistré","Journal de sécurité","DC01"
"Exécution PowerShell","2025-01-15T08:31:15Z","Événement enregistré","PowerShell","WKS042"
# Importer directement un CSV
timesketch_importer -s "Cas-2025-001" -t "Tri-Rapide" events.csv

Méthode 3 : Import JSONL (Données structurées)

{"message": "Connexion suspecte depuis 10.1.2.3", "datetime": "2025-01-15T08:30:00Z", "timestamp_desc": "Événement enregistré", "source_short": "Sécurité", "hostname": "DC01"}

Méthode 4 : Intégration des règles Sigma

# Télécharger les règles Sigma pour la détection automatisée
timesketch_importer --sigma-rules /chemin/vers/regles/sigma/

Workflow d'analyse

Étape 1 : Créer un sketch d'investigation

1. Connectez-vous à l'interface web de Timesketch
2. Créez un nouveau sketch (cas d'investigation)
3. Ajoutez les chronologies pertinentes au sketch
4. Définissez la description et les tags du sketch

Étape 2 : Exécuter les analyseurs intégrés

Timesketch inclut des analyseurs qui identifient automatiquement :

  • Analyseur de recherche navigateur : Extrait les requêtes de recherche de l'historique du navigateur
  • Analyseur de chaîne d'événements : Lie les événements associés (téléchargement -> exécution)
  • Analyseur de domaine : Extrait et catégorise les noms de domaine
  • Analyseur d'extraction de caractéristiques : Identifie les IP, URL, hachages
  • Analyseur de géolocalisation : Cartographie les événements vers des emplacements géographiques
  • Scoreur de similarité : Trouve des événements similaires sur différentes chronologies
  • Analyseur Sigma : Fait correspondre les événements aux règles de détection Sigma
  • Chercheur de comptes : Identifie les modèles d'activité des comptes utilisateur
  • Tagger : Applique des étiquettes basées sur des règles prédéfinies

Étape 3 : Rechercher et filtrer

# Exemples de recherche dans le langage de requête Timesketch

# Trouver tous les événements liés à un utilisateur spécifique
source_short:Sécurité ET message:"john.admin"

# Trouver les événements d'exécution PowerShell
data_type:"windows:evtx:record" ET event_identifier:4104

# Trouver les indicateurs de mouvement latéral
source_short:Sécurité ET event_identifier:4624 ET xml_string:"LogonType">3

# Trouver les événements dans une plage horaire spécifique
datetime:[2025-01-15T00:00:00 TO 2025-01-15T23:59:59]

# Trouver les événements de création de fichier
data_type:"fs:stat" ET timestamp_desc:"Heure de création"

# Rechercher avec des tags
tag:"suspect" OU tag:"mouvement_lateral"

Étape 4 : Construire une histoire d'investigation

1. Créez une nouvelle histoire dans le sketch
2. Ajoutez des vues de recherche qui étayent chaque constatation
3. Annotez les événements clés avec les notes de l'enquêteur
4. Liez les événements aux techniques MITRE ATT&CK
5. Documentez le récit de l'attaque de manière chronologique
6. Exportez l'histoire pour l'inclure dans le rapport d'incident

Fonctionnalités avancées

Investigation collaborative

  • Plusieurs analystes travaillent simultanément sur le même sketch
  • Les commentaires et annotations persistent sur les événements
  • Les recherches sauvegardées sont partagées au sein de l'équipe
  • Les histoires d'investigation documentent les constatations dans leur contexte

Automatisation via API

from timesketch_api_client import config
from timesketch_api_client import client as ts_client

# Se connecter à Timesketch
ts = ts_client.TimesketchApi(
    host_uri="https://timesketch.local",
    username="analyste",
    password="motdepasse"
)

# Obtenir un sketch
sketch = ts.get_sketch(1)

# Rechercher des événements
recherche = sketch.explore(
    query_string='event_identifier:4624 AND LogonType:3',
    return_fields='datetime,message,hostname,source_short'
)

# Ajouter des tags aux événements
for event in recherche.get('objects', []):
    sketch.tag_event(event['_id'], ['mouvement_lateral'])

Intégration avec Dissect

# Utiliser Dissect pour une analyse plus rapide des artefacts (alternative à Plaso)
target-query -f timesketch://timesketch.local/cas-001 \
  cibles/nomdhote/ -q "windows.evtx" --limit 0

Sources de données clés pour la construction de chronologies

SourceAnalyseurValeur de preuve
Journaux d'événements Windows (.evtx)winevtxAuthentification, exécution de processus, services
Fichiers PrefetchprefetchHistorique d'exécution des programmes
MFT ($MFT)mftActivité du système de fichiers
Ruches de registrewinregConfiguration système, persistance
Historique du navigateurchrome/firefoxActivité web, téléchargements
SyslogsyslogÉvénements Linux/équipement réseau
Journaux CloudTrailjsonlActivité API AWS
Journaux d'activité AzurejsonlOpérations sur les ressources Azure
Journaux de pare-feucsv/jsonlConnexions réseau
Journaux de proxycsv/jsonlTrafic HTTP/HTTPS

Cartographie MITRE ATT&CK

TechniqueIndicateurs de chronologie
Accès initial (TA0001)Premier événement malveillant, réception d'e-mail de phishing
Exécution (T1059)Événements PowerShell/CMD, création de processus
Persistance (TA0003)Modifications du registre, tâches planifiées, services
Mouvement latéral (TA0008)Connexions à distance, connexions SMB, sessions RDP
Exfiltration (TA0010)Transferts de données volumineux, téléchargements vers le cloud

Références

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Skills associés