Flujo de datos
Flujo de datos
Este documento describe el ciclo de vida de los datos dentro de TraceWall Desktop V3 AI: desde la recolección hasta la presentación, incluyendo transformación, almacenamiento y acceso.
Resumen del flujo
flowchart LR subgraph Recolección["Recolección"] Sensor[Sensor Local<br/>Interfaces, ARP, Rutas, Procesos, Servicios, Puertos, DNS] Integrations[Integraciones<br/>FortiGate, Palo Alto, Wazuh, Zabbix, SNMP, Syslog] ArgusTools[ARGUS Tools<br/>Solo lectura: consultas a DB local] end
subgraph Procesamiento["Procesamiento y Normalización"] Normalize[Normalizador<br/>Esquema unificado, deduplicación, enriquecimiento] Topology[Motor Topología<br/>Gateway, subredes, VLAN inferidas, segmentos] Exposure[Exposure Intelligence<br/>Perfiles: DNS, Web, TLS, Puertos, Internet-facing] Events[Buffer Eventos/SIEM<br/>Severidad, tipo, timestamp, origen, destino, acción] end
subgraph Almacenamiento["Almacenamiento Local (SQLite)"] DB[(tracewall.db<br/>Tablas: assets, interfaces, events, topology, exposure, argus_briefs, audit_logs)] end
subgraph Presentación["Presentación (Renderer)"] CC[Command Center] Assets[Assets & Inventory] Topo[Network Topology] Exp[Exposure Intelligence] EventsUI[Events / SIEM] Incidents[Incidents] SOC[SOC Workbench] ArgusUI[ARGUS Workspace] end
Sensor --> Normalize Integrations --> Normalize Normalize --> DB Normalize --> Topology Normalize --> Exposure Normalize --> Events Topology --> DB Exposure --> DB Events --> DB DB --> CC DB --> Assets DB --> Topo DB --> Exp DB --> EventsUI DB --> Incidents DB --> SOC DB --> ArgusUI ArgusTools --> DB ArgusUI --> ArgusToolsRecolección
Sensor Local (continuo, configurable)
| Fuente | Datos | Frecuencia | Permisos |
|---|---|---|---|
| Interfaces de red | Nombre, tipo, IPv4/IPv6, MAC, MTU, estado | 30 s (config) | Usuario estándar |
| Tabla ARP | IP, MAC, interfaz, tipo (dinámico/estático) | 60 s | Usuario estándar |
| Tabla de rutas | Destino, gateway, interfaz, métrica | 60 s | Usuario estándar |
| Procesos | PID, nombre, exe, cmdline, usuario, CPU, RAM | 30 s | Usuario estándar (algunos campos requieren Admin) |
| Servicios | Nombre, estado, tipo inicio, binario | 60 s | Usuario estándar |
| Puertos TCP/UDP | Puerto, proceso, dirección, estado | 30 s | Usuario estándar / Admin (raw sockets) |
| DNS local | Servidores configurados, caché, resolución | 60 s | Usuario estándar |
Integraciones (bajo demanda / polling configurado)
| Integración | Protocolo | Datos típicos | Dirección |
|---|---|---|---|
| FortiGate | HTTPS (REST) | Config, políticas, interfaces, rutas, logs | Saliente (LAN) |
| Palo Alto | HTTPS (XML API) | Config, reglas, interfaces, logs | Saliente (LAN) |
| Wazuh | HTTPS (REST) | Agentes, alertas, eventos, vulnerabilidades | Saliente (LAN) |
| Zabbix | HTTPS (API) | Hosts, items, triggers, métricas | Saliente (LAN) |
| SNMP | UDP/TCP 161 | Interfaces, sistema, métricas MIB-II | Saliente (LAN) |
| Syslog | UDP/TCP 514 (TLS opcional) | Eventos crudos de dispositivos | Entrante (listen) |
ARGUS Tools (solo lectura, invocadas por el modelo)
| Herramienta | Fuente | Retorna |
|---|---|---|
get_interface_status | Sensor / SQLite | Estado interfaces, IPs, gateway |
query_events | Events buffer | Eventos filtrados por severidad, tiempo, tipo |
search_assets | Assets/Inventory | Activos por IP, nombre, tipo, subnet |
get_exposure_findings | Exposure Intelligence | Hallazgos por perfil, severidad, target |
get_topology | Network Topology | Grafo nodos/aristas, segmentos, gateways |
Procesamiento y normalización
- Ingesta: datos crudos llegan a Main process vía IPC desde sensor/integraciones.
- Validación: esquema JSON Schema por tipo de dato; registros inválidos → log de auditoría, no se persisten.
- Normalización: mapeo a esquema interno unificado (ej.
Asset { id, type, ip, mac, hostname, os, last_seen, source, confidence }). - Deduplicación: claves compuestas (IP+MAC, hostname+source) para fusionar observaciones múltiples.
- Enriquecimiento: resolución inversa DNS, lookup OUI (MAC → vendor), geolocalización IP privada (RFC1918), etiquetado subnet/gateway.
- Persistencia: escritura en SQLite con transacciones; índices por
last_seen,asset_id,event_timestamp.
Almacenamiento (SQLite)
Esquema principal (simplificado):
-- Activos unificadosCREATE TABLE assets ( id TEXT PRIMARY KEY, type TEXT, -- 'host', 'router', 'switch', 'firewall', 'server', 'unknown' ip TEXT, mac TEXT, hostname TEXT, os TEXT, vendor TEXT, model TEXT, subnet TEXT, gateway TEXT, first_seen INTEGER, last_seen INTEGER, source TEXT, -- 'sensor', 'fortigate', 'wazuh', 'snmp', 'zabbix', 'syslog' confidence REAL, -- 0.0 - 1.0 reachable INTEGER, -- 0/1 stale INTEGER -- 0/1 (sin actualizar > 24h));
-- Eventos / SIEM bufferCREATE TABLE events ( id TEXT PRIMARY KEY, timestamp INTEGER, severity TEXT, -- 'critical', 'high', 'medium', 'low', 'info' type TEXT, -- 'firewall', 'ids', 'auth', 'network', 'system' src_ip TEXT, dst_ip TEXT, src_port INTEGER, dst_port INTEGER, protocol TEXT, action TEXT, message TEXT, raw_json TEXT, source TEXT, -- integración origen asset_id TEXT REFERENCES assets(id));
-- Topología de redCREATE TABLE topology_nodes ( id TEXT PRIMARY KEY, label TEXT, type TEXT, subnet TEXT, metadata TEXT);CREATE TABLE topology_edges ( source TEXT, target TEXT, type TEXT, metadata TEXT, PRIMARY KEY (source, target));
-- Hallazgos Exposure IntelligenceCREATE TABLE exposure_findings ( id TEXT PRIMARY KEY, profile TEXT, target TEXT, finding_type TEXT, severity TEXT, evidence TEXT, timestamp INTEGER, status TEXT);
-- Briefs ARGUSCREATE TABLE argus_briefs ( id TEXT PRIMARY KEY, prompt TEXT, brief TEXT, evidence_refs TEXT, validation_state TEXT, created_at INTEGER);Acceso a datos
| Consumidor | Datos | Mecanismo |
|---|---|---|
| Renderer (UI) | Consultas agregadas, listas paginadas | IPC invoke → Main → SQLite → JSON |
| ARGUS Tools | Subconjuntos filtrados por herramienta | Main → SQLite → JSON (solo lectura) |
| Exportaciones | CSV, JSON, STIX (según módulo) | Main → SQLite → Streaming write |
| Diagnóstico | tracewall.db completo | Copia manual por operador |
Retención y limpieza
| Tipo de dato | Retención por defecto | Configurable |
|---|---|---|
| Telemetría sensor (assets, interfaces) | 30 días | 1–365 días |
| Buffer eventos / SIEM | 30 días / 100k eventos | 1–365 días / 10k–1M |
| Topología | 30 días | 1–365 días |
| Hallazgos exposición | 90 días | 1–365 días |
| Briefs ARGUS | 90 días | 1–365 días |
| Logs aplicación | 7 días / 50 MB | 1–30 días / 10–500 MB |
La limpieza se ejecuta al inicio y cada 24 h. No hay borrado inmediato; las filas se marcan stale y se purgan en el siguiente ciclo.