vamp-log-analyzer 2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,470 @@
1
+ Metadata-Version: 2.4
2
+ Name: vamp-log-analyzer
3
+ Version: 2.0
4
+ Summary: Log analysis and threat correlation engine for authorized security reviews
5
+ Author-email: VampSecure Studios <contact@vampsecurestudios.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Vampsecure-Labs/vamp-log-analyzer
8
+ Project-URL: Repository, https://github.com/Vampsecure-Labs/vamp-log-analyzer
9
+ Keywords: security,pentest,audit,cybersecurity,vampsecure,log-analysis,siem,threat-hunting,dfir
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Topic :: Security
17
+ Requires-Python: >=3.9
18
+ Description-Content-Type: text/markdown
19
+
20
+ <h1 align="center">vamp-log-analyzer</h1>
21
+
22
+ <p align="center">
23
+ <img src="https://img.shields.io/badge/python-3.9%2B-blue?logo=python&logoColor=white" alt="Python 3.9+"/>
24
+ <img src="https://img.shields.io/badge/stdlib%20only-no%20deps-brightgreen" alt="stdlib only"/>
25
+ <img src="https://img.shields.io/badge/version-2.1-orange" alt="v2.1"/>
26
+ <img src="https://img.shields.io/badge/platform-linux%20%7C%20macOS%20%7C%20windows-lightgrey" alt="Platform"/>
27
+ <img src="https://img.shields.io/badge/license-MIT-green" alt="License MIT"/>
28
+ <img src="https://img.shields.io/badge/VampSecure-Labs-magenta" alt="VampSecure Labs"/>
29
+ </p>
30
+
31
+ ## Overview
32
+
33
+ `vamp-log-analyzer` es una plataforma forense de análisis de logs para incidentes de seguridad.
34
+ Ingesta logs de múltiples fuentes —servidores web, bases de datos, sistemas operativos y
35
+ aplicaciones— los normaliza en una línea de tiempo unificada y aplica 25+ detectores para
36
+ identificar ataques, accesos indebidos, escaladas de privilegios y señales de exfiltración.
37
+
38
+ Diseñado para uso en auditorías autorizadas, peritajes informáticos y respuesta a incidentes.
39
+ No requiere dependencias externas: únicamente librería estándar de Python 3.9+.
40
+
41
+ ## Fuentes de logs soportadas
42
+
43
+ | Categoría | Fuentes |
44
+ |-----------|---------|
45
+ | **Web** | Apache/Nginx (Combined Log Format), IIS (W3C Extended) |
46
+ | **Base de datos** | MySQL (error/slow query/general log), PostgreSQL (CSV log), MongoDB (JSON 4.4+ / texto 3.x) |
47
+ | **Linux/Unix** | `auth.log`, `syslog`, `kern.log`, `/var/log/secure` (RHEL/CentOS), journald (exportación JSON) |
48
+ | **Windows** | Windows Event Log exportado como XML (`wevtutil qe Security /f:XML`) |
49
+ | **macOS** | macOS Unified Log JSON (`log show --style json`) |
50
+ | **Genérico** | JSON estructurado con campo timestamp, texto libre con heurísticas de timestamp |
51
+
52
+ La detección del tipo de log es automática (`--type auto`, predeterminada).
53
+
54
+ ## Características — v2.1
55
+
56
+ - **Sin dependencias externas** — únicamente stdlib Python 3.9+; funciona en cualquier entorno sin instalación adicional
57
+ - **Multi-fichero y directorios** — acepta rutas individuales, múltiples ficheros o un directorio completo (recursivo opcional con `--recursive`)
58
+ - **25 detectores forenses** (prefijo `FORA-001` a `FORA-025`) con severidad CRITICAL / HIGH / MEDIUM / LOW
59
+ - **Timeline unificada** — todos los eventos de todos los ficheros en orden cronológico con detección de saltos y ráfagas
60
+ - **Reconstrucción de sesiones** — agrupa eventos por IP y ventana temporal para reconstruir la secuencia de un atacante
61
+ - **Extractor de IOCs** — exporta indicadores de compromiso (IPs, rutas, user-agents, usuarios) a CSV para importar en SIEM
62
+ - **Cadena de custodia forense** — hashes SHA-256 de los ficheros analizados, timestamp de análisis y datos del perito
63
+ - **Enriquecimiento GeoIP** — resolución de IPs a país/ASN vía API pública (sin dependencias, `--geoip`)
64
+ - **Mapeo MITRE ATT&CK** — clasifica los hallazgos por táctica: Reconnaissance, Initial Access, Credential Access, Lateral Movement, Exfiltration, etc.
65
+ - **Puntuación de riesgo** — fórmula compuesta por severidad × frecuencia × contexto de IP
66
+ - **Filtro temporal** — `--from` / `--to` para acotar el análisis a un rango de fechas
67
+ - **Formato de salida múltiple** — consola, JSON, HTML (tema oscuro), informe forense TXT completo
68
+ - **[v2.1] ScopeConfig** — JSON de calibración: horas laborales, IPs de confianza, detectores excluidos por entorno
69
+ - **[v2.1] BaselineProfiler** — aprende el comportamiento normal de un entorno y compara análisis futuros contra él (delta)
70
+ - **[v2.1] STIX 2.1** — exporta indicadores de compromiso en formato STIX 2.1 bundle para MISP / OpenCTI / TheHive
71
+ - **[v2.1] EvidencePackager** — empaqueta en ZIP sellado con MANIFEST SHA-256 para peritaje judicial con cadena de custodia
72
+ - **[v2.1] NarrativeGenerator** — genera narrativa forense en español vía Ollama (local) o Claude API (cloud)
73
+ - **[v2.1] StreamingAnalyzer** — monitorización en tiempo real de logs en crecimiento (modo `tail -f` con detección live)
74
+
75
+ ## Requisitos
76
+
77
+ - Python 3.9 o superior
78
+ - Sin dependencias externas (stdlib only)
79
+
80
+ ## Instalación
81
+
82
+ ```bash
83
+ git clone https://github.com/Vampsecure-Labs/vamp-log-analyzer.git
84
+ cd vamp-log-analyzer
85
+ # No se necesita pip install ni virtualenv
86
+ python3 vamp_log_analyzer.py --help
87
+ ```
88
+
89
+ ## Uso
90
+
91
+ ```bash
92
+ python3 vamp_log_analyzer.py FICHERO_O_DIRECTORIO [opciones]
93
+ ```
94
+
95
+ ### Ejemplos básicos
96
+
97
+ ```bash
98
+ # Análisis rápido de un log de acceso de Nginx
99
+ python3 vamp_log_analyzer.py /var/log/nginx/access.log
100
+
101
+ # Directorio completo de logs con tipo auto-detectado
102
+ python3 vamp_log_analyzer.py /var/log/ --recursive
103
+
104
+ # Rango de fechas + informe HTML
105
+ python3 vamp_log_analyzer.py /logs/nginx/ --from 2026-01-01 --to 2026-01-31 \
106
+ --report-html incidente_enero.html
107
+
108
+ # Múltiples fuentes simultáneas (correlación cruzada)
109
+ python3 vamp_log_analyzer.py auth.log nginx/access.log mysql/error.log \
110
+ --report-json informe.json
111
+
112
+ # Modo forense completo: cadena de custodia + GeoIP + timeline + informe forense
113
+ python3 vamp_log_analyzer.py /logs/ \
114
+ --chain-of-custody --analyst "Juan Pérez" --case "CASE-2026-001" \
115
+ --geoip --timeline \
116
+ --report-forensic informe_pericial.txt \
117
+ --ioc-csv iocs_exportar.csv \
118
+ --report-html informe_visual.html
119
+
120
+ # Solo hallazgos CRITICAL o HIGH (útil en pipelines CI/CD)
121
+ python3 vamp_log_analyzer.py /var/log/ --min-severity HIGH -o findings.json
122
+ ```
123
+
124
+ ### Ejemplos v2.1 — Nuevas capacidades
125
+
126
+ ```bash
127
+ # Generar un ejemplo de fichero de entorno (scope)
128
+ python3 vamp_log_analyzer.py --scope-example > entorno.json
129
+
130
+ # Análisis calibrado al entorno: suprime falsos positivos de IPs de confianza y horario laboral
131
+ python3 vamp_log_analyzer.py /logs/ --scope entorno.json
132
+
133
+ # Aprender el comportamiento normal de un entorno (primera vez)
134
+ python3 vamp_log_analyzer.py /logs/semana_normal/ --learn baseline.json
135
+
136
+ # Comparar un incidente contra el baseline: muestra IPs nuevas, detectores anómalos y desviaciones horarias
137
+ python3 vamp_log_analyzer.py /logs/incidente/ --baseline baseline.json
138
+
139
+ # Exportar indicadores en formato STIX 2.1 (para MISP, OpenCTI, TheHive)
140
+ python3 vamp_log_analyzer.py /logs/ --stix hallazgos.stix.json
141
+
142
+ # Empaquetar todas las evidencias en un ZIP sellado con MANIFEST SHA-256
143
+ python3 vamp_log_analyzer.py /logs/ \
144
+ --chain-of-custody --analyst "Perito Forense" --case "CASO-2026-001" \
145
+ --stix hallazgos.stix.json \
146
+ --package evidencias_caso.zip
147
+
148
+ # Generar narrativa del incidente con IA local (Ollama, modelo por defecto llama3.2:3b)
149
+ python3 vamp_log_analyzer.py /logs/ --narrative ollama
150
+
151
+ # Narrativa con Ollama remoto o modelo diferente
152
+ python3 vamp_log_analyzer.py /logs/ \
153
+ --narrative ollama \
154
+ --narrative-model llama3.1:8b \
155
+ --narrative-host http://mi-servidor:11434
156
+
157
+ # Narrativa con Claude API
158
+ python3 vamp_log_analyzer.py /logs/ \
159
+ --narrative claude \
160
+ --claude-api-key sk-ant-...
161
+
162
+ # Monitorización en tiempo real de un log en crecimiento (Ctrl+C para finalizar)
163
+ python3 vamp_log_analyzer.py --follow /var/log/nginx/access.log
164
+
165
+ # Flujo peritaje completo con todas las capacidades
166
+ python3 vamp_log_analyzer.py /evidencias/ \
167
+ --chain-of-custody --analyst "Juan Pérez, Perito Col. 00000" --case "Diligencias XX/2026" \
168
+ --scope entorno_cliente.json \
169
+ --baseline baseline_cliente.json \
170
+ --geoip --timeline \
171
+ --report-forensic informe_pericial.txt \
172
+ --ioc-csv iocs.csv \
173
+ --stix hallazgos.stix.json \
174
+ --narrative ollama \
175
+ --package paquete_evidencias.zip
176
+ ```
177
+
178
+ ## Referencia CLI completa
179
+
180
+ ### Entrada
181
+
182
+ | Flag | Valor pred. | Descripción |
183
+ |------|-------------|-------------|
184
+ | `FICHERO [FICHERO ...]` | — | Uno o más ficheros de log, o un directorio |
185
+ | `--type TYPE` | `auto` | Tipo de log: `apache`, `nginx`, `iis`, `mysql`, `postgres`, `mongodb`, `auth`, `syslog`, `windows`, `macos`, `json`, `text`, `auto` |
186
+ | `--recursive / -R` | off | Escanear directorios recursivamente |
187
+ | `--follow FICHERO` | — | Monitorización en tiempo real (modo streaming, Ctrl+C para finalizar) |
188
+
189
+ ### Filtros
190
+
191
+ | Flag | Valor pred. | Descripción |
192
+ |------|-------------|-------------|
193
+ | `--from FECHA` | — | Filtrar eventos a partir de esta fecha (ISO 8601) |
194
+ | `--to FECHA` | — | Filtrar eventos hasta esta fecha |
195
+ | `--min-severity SEV` | `LOW` | Umbral mínimo de severidad: `LOW`, `MEDIUM`, `HIGH`, `CRITICAL` |
196
+ | `--top-n N` | `10` | Número de elementos en rankings (IPs, rutas, UAs) |
197
+ | `--min-session-gap N` | `30` | Minutos de silencio para separar sesiones de atacante |
198
+
199
+ ### Enriquecimiento
200
+
201
+ | Flag | Valor pred. | Descripción |
202
+ |------|-------------|-------------|
203
+ | `--geoip` | off | Enriquecer IPs con país/ASN vía API pública |
204
+ | `--timeline` | off | Generar análisis de línea de tiempo con gaps y ráfagas |
205
+
206
+ ### Cadena de custodia forense
207
+
208
+ | Flag | Valor pred. | Descripción |
209
+ |------|-------------|-------------|
210
+ | `--chain-of-custody` | off | Incluir hashes SHA-256 de ficheros + metadatos de análisis |
211
+ | `--analyst "Nombre"` | — | Nombre del perito para informe forense |
212
+ | `--case "REF"` | — | Referencia del caso para informe forense |
213
+
214
+ ### Calibración de entorno (v2.1)
215
+
216
+ | Flag | Valor pred. | Descripción |
217
+ |------|-------------|-------------|
218
+ | `--scope FICHERO.json` | — | Fichero JSON de configuración de entorno (horas laborales, IPs de confianza, detectores excluidos) |
219
+ | `--scope-example` | — | Imprimir un ejemplo de fichero de entorno y salir |
220
+
221
+ ### Baseline estadístico (v2.1)
222
+
223
+ | Flag | Valor pred. | Descripción |
224
+ |------|-------------|-------------|
225
+ | `--learn BASELINE.json` | — | Analizar el log y guardar el perfil de comportamiento normal en el fichero indicado |
226
+ | `--baseline BASELINE.json` | — | Comparar el análisis actual contra un baseline guardado previamente |
227
+
228
+ ### Narrativa IA (v2.1)
229
+
230
+ | Flag | Valor pred. | Descripción |
231
+ |------|-------------|-------------|
232
+ | `--narrative [ollama\|claude]` | — | Generar narrativa forense en español con IA local (Ollama) o Claude API |
233
+ | `--narrative-model MODELO` | `llama3.2:3b` / `claude-haiku-4-5-20251001` | Modelo a usar para la narrativa |
234
+ | `--narrative-host URL` | `http://127.0.0.1:11434` | Host de Ollama (solo si `--narrative ollama`) |
235
+ | `--claude-api-key KEY` | — | API key de Claude (solo si `--narrative claude`) |
236
+
237
+ ### Salida
238
+
239
+ | Flag | Valor pred. | Descripción |
240
+ |------|-------------|-------------|
241
+ | `-o / --output FILE` | — | Guardar resultados en JSON |
242
+ | `--report-html FILE` | — | Generar informe HTML con tema oscuro |
243
+ | `--report-forensic FILE` | — | Informe forense TXT completo |
244
+ | `--ioc-csv FILE` | — | Exportar IOCs en CSV para SIEM |
245
+ | `--stix FICHERO.json` | — | Exportar bundle STIX 2.1 para MISP / OpenCTI / TheHive |
246
+ | `--package FICHERO.zip` | — | Empaquetar evidencias en ZIP sellado con MANIFEST SHA-256 |
247
+ | `-v / --verbose` | off | Salida detallada por evento |
248
+
249
+ ## Detectores forenses (FORA-001 a FORA-025)
250
+
251
+ | ID | Nombre | Severidad | Descripción |
252
+ |----|--------|-----------|-------------|
253
+ | FORA-001 | Fuerza bruta SSH/FTP/Telnet | HIGH | Múltiples autenticaciones fallidas en servicios de acceso remoto |
254
+ | FORA-002 | Fuerza bruta HTTP | HIGH | Código 401/403 masivo desde misma IP en corto periodo |
255
+ | FORA-003 | Password spray | HIGH | Pocos intentos por usuario pero sobre muchos usuarios distintos |
256
+ | FORA-004 | Inyección SQL (web) | CRITICAL | Patrones SQLi en peticiones HTTP (Union, Blind, Time-based, OOB) |
257
+ | FORA-005 | Inyección SQL (base de datos) | HIGH | Consultas sospechosas detectadas en log de base de datos |
258
+ | FORA-006 | Cross-Site Scripting (XSS) | HIGH | Patrones XSS en peticiones web |
259
+ | FORA-007 | Path traversal / LFI / RFI | CRITICAL | Intentos de lectura de ficheros fuera del docroot o inclusión remota |
260
+ | FORA-008 | Acceso/carga de webshell | CRITICAL | Llamadas a webshells conocidas o patrones de backdoor |
261
+ | FORA-009 | Herramienta de escaneo | HIGH | User-agent o patrones de tráfico de escáneres conocidos (sqlmap, nikto, nmap…) |
262
+ | FORA-010 | Enumeración de directorios (404 storm) | MEDIUM | Ráfaga de 404 desde misma IP (fuzzing de rutas) |
263
+ | FORA-011 | Transferencia anormalmente grande | HIGH | Respuestas HTTP de tamaño excepcional (posible exfiltración) |
264
+ | FORA-012 | Consulta DB masiva | HIGH | Consulta de base de datos que devuelve un volumen anómalo de datos |
265
+ | FORA-013 | Escalada de privilegios | HIGH | Uso de sudo/su con shells o herramientas peligrosas, SUID bits |
266
+ | FORA-014 | Cuenta privilegiada creada/modificada | CRITICAL | Creación o modificación de cuentas con privilegios elevados |
267
+ | FORA-015 | Actividad en horario nocturno | MEDIUM | Eventos de autenticación o administración fuera del horario laboral |
268
+ | FORA-016 | Tarea programada sospechosa | HIGH | Creación de cron jobs o Windows Tasks con comandos anómalos |
269
+ | FORA-017 | Proceso/comando Windows sospechoso | HIGH | cmd.exe, PowerShell con codificación, wscript, certutil u otros LOLBins |
270
+ | FORA-018 | Movimiento lateral | HIGH | Conexiones entre hosts internos usando credenciales o protocolos de administración |
271
+ | FORA-019 | Acceso a ficheros sensibles | HIGH | Acceso a /etc/passwd, /etc/shadow, claves SSH, ficheros de configuración |
272
+ | FORA-020 | Login directo como root/SYSTEM | CRITICAL | Autenticación directa con cuenta de administrador del sistema |
273
+ | FORA-021 | Técnica de evasión | HIGH | Encoding, ofuscación, double-encoding, comentarios SQL, concatenación de strings |
274
+ | FORA-022 | Credential stuffing | HIGH | IPs distintas prueban mismas credenciales seguidas de éxito (relleno de credenciales) |
275
+ | FORA-023 | Baliza C2 (beacon) | HIGH | Peticiones HTTP a intervalos regulares desde un único agente (posible mando y control) |
276
+ | FORA-024 | Fuerza bruta lenta (slow drip) | MEDIUM | Intentos de contraseña distribuidos en horas para evadir rate limiting |
277
+ | FORA-025 | Anomalía en tamaño de respuesta POST | HIGH | Respuestas grandes a peticiones POST (posible exfiltración vía formulario o API) |
278
+
279
+ ## Formatos de salida
280
+
281
+ | Formato | Flag | Descripción |
282
+ |---------|------|-------------|
283
+ | Consola | (predeterminado) | Tabla coloreada + panel de hallazgos agrupados por severidad |
284
+ | JSON | `-o / --output FILE` | Salida estructurada completa para integración con otras herramientas |
285
+ | HTML | `--report-html FILE` | Informe standalone tema oscuro con cards de hallazgos, timeline y rankings |
286
+ | Forense TXT | `--report-forensic FILE` | Informe pericial completo: cadena de custodia, cronología, IOCs, ATT&CK, delta baseline, narrativa IA |
287
+ | IOC CSV | `--ioc-csv FILE` | Indicadores de compromiso en CSV para importar en SIEM o plataformas de TI |
288
+ | STIX 2.1 | `--stix FILE` | Bundle STIX 2.1 con identity, attack-pattern, indicator, observed-data y relationships |
289
+ | ZIP evidencias | `--package FILE` | ZIP sellado: logs originales + informes + cadena_de_custodia.json + MANIFEST.sha256 |
290
+
291
+ ## Códigos de salida
292
+
293
+ | Código | Significado | Comportamiento CI/CD |
294
+ |--------|-------------|----------------------|
295
+ | `0` | Sin hallazgos sobre el umbral mínimo | Pipeline pasa |
296
+ | `1` | Hallazgos HIGH detectados | Pipeline falla — revisión requerida |
297
+ | `2` | Hallazgos CRITICAL detectados | Pipeline falla — acción inmediata requerida |
298
+
299
+ ## Mapeo MITRE ATT&CK
300
+
301
+ Los hallazgos se clasifican automáticamente por táctica ATT&CK:
302
+
303
+ | Táctica | Detectores |
304
+ |---------|-----------|
305
+ | Reconnaissance | FORA-009, FORA-010 |
306
+ | Initial Access | FORA-004, FORA-006, FORA-007, FORA-008 |
307
+ | Credential Access | FORA-001, FORA-002, FORA-003, FORA-022, FORA-024 |
308
+ | Privilege Escalation | FORA-013, FORA-014, FORA-020 |
309
+ | Defense Evasion | FORA-021 |
310
+ | Persistence | FORA-016 |
311
+ | Lateral Movement | FORA-018 |
312
+ | Command & Control | FORA-023 |
313
+ | Collection / Exfiltration | FORA-011, FORA-012, FORA-025 |
314
+ | Discovery | FORA-019 |
315
+
316
+ ## ScopeConfig — Calibración de entorno
317
+
318
+ El fichero de entorno permite al analizador distinguir actividad normal de actividad sospechosa en contexto:
319
+
320
+ ```bash
321
+ python3 vamp_log_analyzer.py --scope-example > entorno.json
322
+ ```
323
+
324
+ ```json
325
+ {
326
+ "organization": "Mi Empresa S.L.",
327
+ "case_name": "CASO-2026-001",
328
+ "analyst_name": "Nombre Apellido, Perito Informático Col. 00000",
329
+ "business_hours_start": 8,
330
+ "business_hours_end": 20,
331
+ "timezone_offset_hours": 1,
332
+ "trusted_ips": ["10.0.0.0/8", "192.168.0.0/16"],
333
+ "admin_ips": ["192.168.1.10", "192.168.1.11"],
334
+ "exclude_detectors": [],
335
+ "normal_peak_hour": 11
336
+ }
337
+ ```
338
+
339
+ Con `--scope entorno.json`:
340
+ - Los hallazgos de IPs en `trusted_ips` se suprimen si **todas** las IPs implicadas son de confianza
341
+ - El detector FORA-015 (horario nocturno) usa las horas laborales del entorno en lugar del valor por defecto
342
+ - Los detectores en `exclude_detectors` se omiten completamente
343
+
344
+ ## BaselineProfiler — Análisis diferencial
345
+
346
+ ```bash
347
+ # Paso 1: aprender el comportamiento normal (semana sin incidentes)
348
+ python3 vamp_log_analyzer.py /logs/semana_normal/ --learn baseline.json
349
+
350
+ # Paso 2: analizar y comparar incidente contra baseline
351
+ python3 vamp_log_analyzer.py /logs/incidente/ --baseline baseline.json
352
+ ```
353
+
354
+ El informe diferencial muestra:
355
+ - IPs nuevas no presentes en el baseline
356
+ - IPs desaparecidas (posible cambio de infraestructura del atacante)
357
+ - IPs nuevas con actividad anormalmente alta
358
+ - Detectores nuevos no vistos en el baseline
359
+ - Anomalías horarias con desviación estadística (media ± 3σ)
360
+ - Tabla comparativa de conteo de hallazgos por severidad (▲ sube / ▼ baja / ═ estable)
361
+
362
+ ## STIX 2.1 — Integración con plataformas de TI
363
+
364
+ ```bash
365
+ python3 vamp_log_analyzer.py /logs/ --stix hallazgos.stix.json
366
+ ```
367
+
368
+ El bundle STIX 2.1 generado contiene:
369
+ - `identity` — identidad de VampSecure Labs como fuente
370
+ - `attack-pattern` — uno por cada técnica ATT&CK detectada
371
+ - `indicator` — uno por cada IP con hallazgos (incluye IPs internas marcadas como tal)
372
+ - `observed-data` — evento observado global del análisis
373
+ - `relationship` — vínculos indicator→attack-pattern deduplicados
374
+
375
+ El fichero es compatible con MISP, OpenCTI, TheHive y cualquier plataforma que soporte STIX 2.1.
376
+
377
+ ## EvidencePackager — Paquete de evidencias judicial
378
+
379
+ ```bash
380
+ python3 vamp_log_analyzer.py /logs/ \
381
+ --chain-of-custody --analyst "Juan Pérez, Perito Col. 00000" --case "CASO-2026-001" \
382
+ --stix hallazgos.stix.json \
383
+ --package paquete_evidencias.zip
384
+ ```
385
+
386
+ El ZIP contiene:
387
+ ```
388
+ evidencias/
389
+ <nombre_log_original> # copia literal del log analizado
390
+ informes/
391
+ informe_forense.txt # informe pericial completo
392
+ iocs.csv # indicadores de compromiso
393
+ hallazgos.stix.json # bundle STIX 2.1
394
+ analisis.json # volcado JSON completo
395
+ cadena_de_custodia.json # perito, caso, fecha UTC, SHA-256 de cada fichero
396
+ MANIFEST.sha256 # hash SHA-256 de todos los ficheros del paquete
397
+ ```
398
+
399
+ El MANIFEST permite verificar la integridad del paquete en cualquier momento posterior.
400
+
401
+ ## NarrativeGenerator — Narrativa forense con IA
402
+
403
+ ```bash
404
+ # Con Ollama local (por defecto llama3.2:3b, sin coste)
405
+ python3 vamp_log_analyzer.py /logs/ --narrative ollama
406
+
407
+ # Con Claude API
408
+ python3 vamp_log_analyzer.py /logs/ --narrative claude --claude-api-key sk-ant-...
409
+ ```
410
+
411
+ La narrativa se genera en español forense, describiendo el incidente desde la perspectiva del
412
+ perito: IPs más activas, franjas horarias, técnicas detectadas y secuencia probable del ataque.
413
+ Se incluye automáticamente en la sección 9 del informe forense TXT.
414
+
415
+ ## StreamingAnalyzer — Monitorización en tiempo real
416
+
417
+ ```bash
418
+ python3 vamp_log_analyzer.py --follow /var/log/nginx/access.log
419
+ python3 vamp_log_analyzer.py --follow /var/log/auth.log --min-severity HIGH
420
+ ```
421
+
422
+ Monitoriza el fichero indicado desde el final actual, procesando nuevas líneas cada segundo.
423
+ Al pulsar Ctrl+C se consolidan y muestran los hallazgos finales del periodo monitorizado.
424
+ Útil para respuesta a incidentes en tiempo real sin necesidad de infraestructura adicional.
425
+
426
+ ## Uso forense / peritaje completo
427
+
428
+ ```bash
429
+ python3 vamp_log_analyzer.py /evidencias/ \
430
+ --chain-of-custody \
431
+ --analyst "Perito Informático Forense — Nombre Apellidos, Col. 00000" \
432
+ --case "Diligencias Previas XX/2026" \
433
+ --scope entorno_cliente.json \
434
+ --baseline baseline_previo.json \
435
+ --geoip \
436
+ --timeline \
437
+ --narrative ollama \
438
+ --report-forensic informe_pericial.txt \
439
+ --ioc-csv iocs.csv \
440
+ --stix hallazgos.stix.json \
441
+ --report-html informe_visual.html \
442
+ --package paquete_judicial.zip
443
+ ```
444
+
445
+ El informe forense TXT incluye:
446
+ - Identificación del caso y del perito
447
+ - Hashes SHA-256 de cada fichero analizado (integridad de evidencias)
448
+ - Fecha y hora de análisis (UTC)
449
+ - Resumen ejecutivo de hallazgos
450
+ - Línea de tiempo completa del incidente
451
+ - Sesiones reconstruidas por IP (secuencia de acciones del atacante)
452
+ - Indicadores de compromiso exportables
453
+ - Clasificación por táctica MITRE ATT&CK
454
+ - **[v2.1]** Análisis diferencial contra baseline (si se proporciona)
455
+ - **[v2.1]** Narrativa del incidente generada por IA (si se activa)
456
+
457
+ ## Aviso legal
458
+
459
+ Uso exclusivo en sistemas propios o con autorización escrita del titular.
460
+ VampSecure Studios no asume responsabilidad por el uso no autorizado de esta herramienta.
461
+
462
+ ## Parte del toolkit VampSecure Labs
463
+
464
+ `vamp-log-analyzer` es una herramienta del toolkit de investigación en seguridad de VampSecure Labs.
465
+
466
+ - Portfolio: [github.com/Vampsecure-Labs](https://github.com/Vampsecure-Labs)
467
+
468
+ ---
469
+
470
+ © VampSecure Studios — VampSecure Labs Security Research Division
@@ -0,0 +1,6 @@
1
+ vamp_log_analyzer.py,sha256=TvWdOJiMnHGf8FRWxvpBBYoL2E5MW5-tubwnUQTJiq4,179218
2
+ vamp_log_analyzer-2.0.dist-info/METADATA,sha256=wAABb1mQeErEmiz_vFLLvFcyz8Je7M7lxesrG-cCkG4,22487
3
+ vamp_log_analyzer-2.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
4
+ vamp_log_analyzer-2.0.dist-info/entry_points.txt,sha256=kKA3K9I7W5agq-swRGE_VHoe-tTNCNYl3frf1H1pT-I,61
5
+ vamp_log_analyzer-2.0.dist-info/top_level.txt,sha256=0S3i16oSIZcJgGCYIU7PgR89A0SeJl8GMaEormkfahc,18
6
+ vamp_log_analyzer-2.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ vamp-log-analyzer = vamp_log_analyzer:main
@@ -0,0 +1 @@
1
+ vamp_log_analyzer