Construcción de Línea de Tiempo de Incidentes con Timesketch
Resumen
Timesketch es una herramienta de análisis forense colaborativo de cronologías de código abierto desarrollada por Google que permite a los equipos de seguridad visualizar y analizar datos cronológicos de múltiples fuentes durante las investigaciones de incidentes. Ingiere registros y artefactos de endpoints, servidores y servicios en la nube, los normaliza en una línea de tiempo unificada y buscable, y proporciona potentes capacidades de análisis que incluyen analizadores integrados, etiquetado, anotaciones en bocetos y construcción de historias. Timesketch se integra con Plaso (log2timeline) para el análisis de artefactos y admite la ingesta directa de CSV/JSONL para la construcción rápida de líneas de tiempo durante incidentes activos.
Cuándo Usarlo
- Al implementar o configurar capacidades de construcción de líneas de tiempo de incidentes con Timesketch en tu entorno.
- Al establecer controles de seguridad alineados con requisitos de cumplimiento.
- Al construir o mejorar la arquitectura de seguridad para este dominio.
- Al realizar evaluaciones de seguridad que requieran esta implementación.
Prerrequisitos
- Familiaridad con conceptos y herramientas de respuesta a incidentes.
- Acceso a un entorno de prueba o laboratorio para una ejecución segura.
- Python 3.8+ con las dependencias requeridas instaladas.
- Autorización adecuada para cualquier actividad de prueba.
Arquitectura y Componentes
Componentes Principales
- Servidor Timesketch: Aplicación web con API REST para la gestión de líneas de tiempo.
- OpenSearch/Elasticsearch: Almacenamiento backend y motor de búsqueda para eventos de la línea de tiempo.
- PostgreSQL: Almacenamiento de metadatos para bocetos, historias y datos de usuario.
- Redis: Gestión de colas de tareas para procesamiento en segundo plano.
- Trabajadores Celery: Procesamiento asíncrono de cargas de líneas de tiempo y analizadores.
Flujo de Datos
Fuentes de Evidencia --> Plaso/log2timeline --> Archivo de almacenamiento Plaso (.plaso)
| |
v v
CSV/JSONL --> Importador de Timesketch --> Índice de OpenSearch
|
v
Interfaz Web de Timesketch
(Buscar, Analizar, Historia)
Despliegue
Despliegue con Docker (Recomendado)
# Clonar el repositorio de Timesketch
git clone https://github.com/google/timesketch.git
cd timesketch
# Ejecutar el script auxiliar de despliegue
cd docker
sudo docker compose up -d
# Acceso predeterminado: https://localhost:443
# Las credenciales de administrador se generan durante la primera ejecución
Requisitos del Sistema
- Mínimo 8 GB de RAM (se recomiendan 16+ GB para investigaciones grandes).
- Mínimo 4 núcleos de CPU.
- Almacenamiento SSD para los índices de OpenSearch.
- Docker y Docker Compose instalados.
Métodos de Ingesta de Datos
Método 1: Integración con Plaso (Completo)
# Procesar imagen de disco con log2timeline
log2timeline.py --storage-file evidence.plaso /ruta/a/la/imagen/disco
# Procesar registros de eventos de Windows
log2timeline.py --parsers winevtx --storage-file windows_events.plaso /ruta/a/evtx/
# Procesar múltiples fuentes de evidencia
log2timeline.py --parsers "winevtx,prefetch,amcache,shimcache,userassist" \
--storage-file full_analysis.plaso /ruta/a/imagen/montada/
# Importar archivo Plaso en Timesketch
timesketch_importer -s "Caso-2025-001" -t "Endpoint-WKS01" evidence.plaso
Método 2: Importación CSV (Ingesta Rápida)
message,datetime,timestamp_desc,source,hostname
"Inicio de sesión de usuario detectado","2025-01-15T08:30:00Z","Evento Registrado","Registro de Seguridad","DC01"
"Ejecución de PowerShell","2025-01-15T08:31:15Z","Evento Registrado","PowerShell","WKS042"
# Importar CSV directamente
timesketch_importer -s "Caso-2025-001" -t "Triaje-Rápido" events.csv
Método 3: Importación JSONL (Datos Estructurados)
{"message": "Inicio de sesión sospechoso desde 10.1.2.3", "datetime": "2025-01-15T08:30:00Z", "timestamp_desc": "Evento Registrado", "source_short": "Seguridad", "hostname": "DC01"}
Método 4: Integración con Reglas Sigma
# Cargar reglas Sigma para detección automatizada
timesketch_importer --sigma-rules /ruta/a/reglas/sigma/
Flujo de Trabajo de Análisis
Paso 1: Crear un Boceto de Investigación
1. Iniciar sesión en la interfaz web de Timesketch.
2. Crear un nuevo boceto (caso de investigación).
3. Añadir las líneas de tiempo relevantes al boceto.
4. Establecer la descripción del boceto y las etiquetas.
Paso 2: Ejecutar Analizadores Integrados
Timesketch incluye analizadores que identifican automáticamente:
- Analizador de Búsquedas del Navegador: Extrae consultas de búsqueda del historial del navegador.
- Analizador de Cadena de Eventos: Vincula eventos relacionados (descarga -> ejecución).
- Analizador de Dominios: Extrae y categoriza nombres de dominio.
- Analizador de Extracción de Características: Identifica IPs, URLs, hashes.
- Analizador de Geolocalización: Asigna eventos a ubicaciones geográficas.
- Puntuador de Similitud: Encuentra eventos similares entre líneas de tiempo.
- Analizador Sigma: Compara eventos con reglas de detección Sigma.
- Buscador de Cuentas: Identifica patrones de actividad de cuentas de usuario.
- Etiquetador: Aplica etiquetas basadas en reglas predefinidas.
Paso 3: Buscar y Filtrar
# Ejemplos de búsqueda en el lenguaje de consulta de Timesketch
# Encontrar todos los eventos relacionados con un usuario específico
source_short:Seguridad AND message:"juan.admin"
# Encontrar eventos de ejecución de PowerShell
data_type:"windows:evtx:record" AND event_identifier:4104
# Encontrar indicadores de movimiento lateral
source_short:Seguridad AND event_identifier:4624 AND xml_string:"LogonType\">3"
# Encontrar eventos dentro de un rango de tiempo específico
datetime:[2025-01-15T00:00:00 TO 2025-01-15T23:59:59]
# Encontrar eventos de creación de archivos
data_type:"fs:stat" AND timestamp_desc:"Hora de Creación"
# Buscar con etiquetas
tag:"sospechoso" OR tag:"movimiento_lateral"
Paso 4: Construir una Historia de Investigación
1. Crear una nueva historia dentro del boceto.
2. Añadir vistas de búsqueda que respalden cada hallazgo.
3. Anotar eventos clave con notas del investigador.
4. Vincular eventos a técnicas MITRE ATT&CK.
5. Documentar la narrativa del ataque de forma cronológica.
6. Exportar la historia para incluirla en el informe del incidente.
Funcionalidades Avanzadas
Investigación Colaborativa
- Varios analistas trabajan en el mismo boceto simultáneamente.
- Los comentarios y anotaciones persisten en los eventos.
- Las búsquedas guardadas se comparten en todo el equipo.
- Las historias de investigación documentan los hallazgos en contexto.
Automatización con API
from timesketch_api_client import config
from timesketch_api_client import client as ts_client
# Conectar a Timesketch
ts = ts_client.TimesketchApi(
host_uri="https://timesketch.local",
username="analista",
password="contraseña"
)
# Obtener boceto
sketch = ts.get_sketch(1)
# Buscar eventos
search = sketch.explore(
query_string='event_identifier:4624 AND LogonType:3',
return_fields='datetime,message,hostname,source_short'
)
# Añadir etiquetas a eventos
for event in search.get('objects', []):
sketch.tag_event(event['_id'], ['movimiento_lateral'])
Integración con Dissect
# Usar Dissect para un análisis de artefactos más rápido (alternativa a Plaso)
target-query -f timesketch://timesketch.local/caso-001 \
targets/hostname/ -q "windows.evtx" --limit 0
Fuentes de Datos Clave para la Construcción de Líneas de Tiempo
| Fuente | Analizador | Valor de Evidencia |
|---|---|---|
| Registros de Eventos de Windows (.evtx) | winevtx | Autenticación, ejecución de procesos, servicios |
| Archivos Prefetch | prefetch | Historial de ejecución de programas |
| MFT ($MFT) | mft | Actividad del sistema de archivos |
| Hives del Registro | winreg | Configuración del sistema, persistencia |
| Historial del Navegador | chrome/firefox | Actividad web, descargas |
| Syslog | syslog | Eventos de Linux/dispositivos de red |
| Registros de CloudTrail | jsonl | Actividad de API de AWS |
| Registros de Actividad de Azure | jsonl | Operaciones de recursos de Azure |
| Registros de Cortafuegos | csv/jsonl | Conexiones de red |
| Registros de Proxy | csv/jsonl | Tráfico HTTP/HTTPS |
Mapeo MITRE ATT&CK
| Técnica | Indicadores en la Línea de Tiempo |
|---|---|
| Acceso Inicial (TA0001) | Primer evento malicioso, recepción de correo de phishing |
| Ejecución (T1059) | Eventos de PowerShell/CMD, creación de procesos |
| Persistencia (TA0003) | Modificaciones del registro, tareas programadas, servicios |
| Movimiento Lateral (TA0008) | Inicios de sesión remotos, conexiones SMB, sesiones RDP |
| Exfiltración (TA0010) | Grandes transferencias de datos, cargas a almacenamiento en la nube |