Events / SIEM
Events / SIEM
Buffer local de eventos de seguridad y operativos. Ingiere del sensor local, integraciones configuradas y syslog. No es un SIEM centralizado; es visibilidad inmediata en la estación del operador.
Arquitectura del buffer
┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ Sensor │ │ Integraciones│ │ Syslog ││ (procesos, │ │ (FortiGate, │ │ (UDP/TCP ││ puertos, │────▶│ Palo Alto, │────▶│ TLS 514/ ││ auth) │ │ Wazuh, etc) │ │ 6514) │└─────────────┘ └─────────────┘ └─────────────┘ │ │ │ └───────────────────┼───────────────────┘ ▼ ┌─────────────────────────┐ │ Normalizador (Main) │ │ - Validar esquema │ │ - Enriquecer (asset ID,│ │ geoIP privado, OUI) │ │ - Severidad normalizada│ └───────────┬─────────────┘ ▼ ┌─────────────────────────┐ │ SQLite: events table │ │ - Índices: ts, sev, │ │ src_ip, dst_ip, src │ └───────────┬─────────────┘ ▼ ┌─────────────────────────┐ │ Renderer (UI) │ │ - Búsqueda full-text │ │ - Filtros columna │ │ - Export CSV/JSON │ └─────────────────────────┘Tabla events (SQLite)
CREATE TABLE events ( id TEXT PRIMARY KEY, -- UUID timestamp INTEGER NOT NULL, -- epoch ms severity TEXT NOT NULL, -- critical, high, medium, low, info type TEXT NOT NULL, -- firewall, ids, auth, network, system src_ip TEXT, dst_ip TEXT, src_port INTEGER, dst_port INTEGER, protocol TEXT, -- tcp, udp, icmp, ... action TEXT, -- allow, block, drop, alert, login, logout message TEXT, -- mensaje legible raw_json TEXT, -- evento original completo source TEXT NOT NULL, -- sensor, fortigate, wazuh, zabbix, snmp, syslog asset_id TEXT REFERENCES assets(id), -- enriquecido si match IP/MAC ingestion_ts INTEGER DEFAULT (strftime('%s','now')*1000));
CREATE INDEX idx_events_ts ON events(timestamp);CREATE INDEX idx_events_sev ON events(severity);CREATE INDEX idx_events_src ON events(src_ip);CREATE INDEX idx_events_srcport ON events(src_port);CREATE INDEX idx_events_asset ON events(asset_id);Fuentes de eventos
| Fuente | Tipos típicos | Severidad por defecto | Configuración |
|---|---|---|---|
| Sensor local | Proceso nuevo, puerto abierto, auth fallido, servicio detenido | info / low | Settings → Sensor → Módulos activos |
| FortiGate | Firewall block/allow, IPS, AV, Web filter, SSL VPN | Según log FortiGate | Settings → Integraciones → FortiGate → Categorías |
| Palo Alto | Traffic, Threat, URL, Data, WildFire, Auth | Según log PAN-OS | Settings → Integraciones → Palo Alto → Log types |
| Wazuh | Alertas reglas, FIM, Rootcheck, Auth, Syscollector | Según regla Wazuh | Settings → Integraciones → Wazuh → Rule IDs |
| Zabbix | Triggers problem/ok, Discovery, Auto-reg | Según trigger severity | Settings → Integraciones → Zabbix → Host groups |
| SNMP | Traps (linkDown, authFail, coldStart) | medium / high | Settings → Integraciones → SNMP → Trap handlers |
| Syslog | RFC5424/3164 parseado; facility + severity mapeados | Mapeo syslog→interno | Settings → Integraciones → Syslog → Parsers |
UI: Vista de eventos
Barra de herramientas
| Control | Función |
|---|---|
| Búsqueda full-text | message:firewall AND severity:critical (Lucene-style) |
| Filtro severidad | Multi-select: 🔴🟠🟡🟢⚪ |
| Filtro tipo | firewall, ids, auth, network, system |
| Filtro fuente | sensor, fortigate, wazuh, … |
| Rango temporal | Última hora / 24h / 7d / 30d / Custom |
| Columnas | Toggle: src/dst IP, puertos, protocolo, acción, asset, raw |
| Auto-refresh | 10s / 30s / 60s / Manual |
| Exportar | CSV / JSON (vista actual o selección) |
Tabla de eventos (columnas por defecto)
| Columna | Dato | Ordenable | Filtrable |
|---|---|---|---|
| ⏰ Tiempo | timestamp relativo + absoluto | ✅ | ✅ (rango) |
| 🔴 Severidad | badge color | ✅ | ✅ multi |
| 🏷 Tipo | type | ✅ | ✅ |
| 📡 Fuente | source badge | ✅ | ✅ |
| ➡️ Origen | src_ip:src_port | ✅ | ✅ IP/CIDR |
| ⬅️ Destino | dst_ip:dst_port | ✅ | ✅ IP/CIDR |
| 📦 Protocolo | protocol | ✅ | ✅ |
| ⚡ Acción | action (allow/block/alert) | ✅ | ✅ |
| 💬 Mensaje | message (truncado 120 chars) | ❌ | ✅ full-text |
| 🔗 Asset | enlace a asset si asset_id | ❌ | ✅ |
Detalle de evento (clic fila → panel lateral)
┌────────────────────────────────────────────────────────────┐│ 2025-01-15 14:32:17 🔴 critical firewall fortigate │├────────────────────────────────────────────────────────────┤│ Source: fortigate-fw-01 (10.0.1.1) ││ Action: block ││ Proto: tcp ││ 10.10.20.5:54321 → 203.0.113.50:443 ││ Rule: "Block Malicious IPs" (ID 104) ││ Message: "Blocked connection to known C2 IP" │├────────────────────────────────────────────────────────────┤│ RAW JSON (expandible) ││ { ││ "logid": "1000000001", ││ "srcip": "10.10.20.5", "dstip": "203.0.113.50", ││ "srcport": 54321, "dstport": 443, ││ "action": "deny", "policyid": 104, ││ "sentbyte": 0, "rcvdbyte": 0, ││ "level": "alert", "msg": "Blocked connection..." ││ } │├────────────────────────────────────────────────────────────┤│ ASSET ENRIQUECIDO: ││ 10.10.20.5 → web-02.example.local (server, Conf 0.92) ││ [Ver en Inventario] [Ver en Topología] │├────────────────────────────────────────────────────────────┤│ ACCIONES: [Crear Incidente] [Consultar ARGUS] [Ack] │└────────────────────────────────────────────────────────────┘Búsqueda avanzada (Lucene-style)
# Ejemplosseverity:critical AND source:fortigatesrc_ip:10.10.20.5 AND dst_port:443type:auth AND action:fail AND message:"invalid password"timestamp:[now-1h TO now] AND severity:(critical OR high)asset_id:abc-123-defNOT severity:infoRetención y límites
| Parámetro | Defecto | Configurable | Acción al límite |
|---|---|---|---|
| Retención temporal | 30 días | 1–365 días | DELETE WHERE timestamp < cutoff |
| Máx. eventos | 100,000 | 10k – 1M | Purga más antiguos (FIFO) |
| Tamaño DB events | ~500 MB | — | Vacuum automático semanal |
Limpieza: Ejecuta al inicio + cada 24h. Marca stale → purga en siguiente ciclo.
Exportación
| Formato | Columnas | Uso |
|---|---|---|
| CSV | Todas visibles + raw_json (opcional) | Excel, Splunk import |
| JSON | Array de objetos completos | API, automatización |
| STIX 2.1 | Observed-Data, Indicator | TIP, MISP, SOAR |
Limitaciones
| Límite | Detalle | Implicación |
|---|---|---|
| No SIEM centralizado | Buffer local single-host | No agrega multi-agente |
| Sin correlación multi-evento | Reglas simples (severidad, tipo) | No detecta patrones complejos |
| Retención finita | 30d / 100k por defecto | Histórico largo → exportar periódico |
| Ingesta secuencial | Polling integraciones → gaps posibles | Rate limits dispositivo destino |
| Sin parsing custom avanzado | Syslog parsers fijos | Logs no estándar → raw_json only |
| Índices limitados | 5 índices SQLite | Queries complejas lentas en >500k |
Páginas relacionadas
- Assets & Inventory — Asset enriquecido en eventos
- Network Topology — Contexto de red de IPs
- Exposure Intelligence — Correlacionar hallazgos con eventos
- Incidents — Crear incidente desde evento
- SOC Workbench — Búsquedas guardadas, casos
- Integraciones — Configurar fuentes
- Configuración: Retención — TTL eventos
- Configuración: Logs — Nivel log ingesta
- Solución de problemas: Eventos sin datos