Skip to content

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 --> ArgusTools

Recolección

Sensor Local (continuo, configurable)

FuenteDatosFrecuenciaPermisos
Interfaces de redNombre, tipo, IPv4/IPv6, MAC, MTU, estado30 s (config)Usuario estándar
Tabla ARPIP, MAC, interfaz, tipo (dinámico/estático)60 sUsuario estándar
Tabla de rutasDestino, gateway, interfaz, métrica60 sUsuario estándar
ProcesosPID, nombre, exe, cmdline, usuario, CPU, RAM30 sUsuario estándar (algunos campos requieren Admin)
ServiciosNombre, estado, tipo inicio, binario60 sUsuario estándar
Puertos TCP/UDPPuerto, proceso, dirección, estado30 sUsuario estándar / Admin (raw sockets)
DNS localServidores configurados, caché, resolución60 sUsuario estándar

Integraciones (bajo demanda / polling configurado)

IntegraciónProtocoloDatos típicosDirección
FortiGateHTTPS (REST)Config, políticas, interfaces, rutas, logsSaliente (LAN)
Palo AltoHTTPS (XML API)Config, reglas, interfaces, logsSaliente (LAN)
WazuhHTTPS (REST)Agentes, alertas, eventos, vulnerabilidadesSaliente (LAN)
ZabbixHTTPS (API)Hosts, items, triggers, métricasSaliente (LAN)
SNMPUDP/TCP 161Interfaces, sistema, métricas MIB-IISaliente (LAN)
SyslogUDP/TCP 514 (TLS opcional)Eventos crudos de dispositivosEntrante (listen)

ARGUS Tools (solo lectura, invocadas por el modelo)

HerramientaFuenteRetorna
get_interface_statusSensor / SQLiteEstado interfaces, IPs, gateway
query_eventsEvents bufferEventos filtrados por severidad, tiempo, tipo
search_assetsAssets/InventoryActivos por IP, nombre, tipo, subnet
get_exposure_findingsExposure IntelligenceHallazgos por perfil, severidad, target
get_topologyNetwork TopologyGrafo nodos/aristas, segmentos, gateways

Procesamiento y normalización

  1. Ingesta: datos crudos llegan a Main process vía IPC desde sensor/integraciones.
  2. Validación: esquema JSON Schema por tipo de dato; registros inválidos → log de auditoría, no se persisten.
  3. Normalización: mapeo a esquema interno unificado (ej. Asset { id, type, ip, mac, hostname, os, last_seen, source, confidence }).
  4. Deduplicación: claves compuestas (IP+MAC, hostname+source) para fusionar observaciones múltiples.
  5. Enriquecimiento: resolución inversa DNS, lookup OUI (MAC → vendor), geolocalización IP privada (RFC1918), etiquetado subnet/gateway.
  6. Persistencia: escritura en SQLite con transacciones; índices por last_seen, asset_id, event_timestamp.

Almacenamiento (SQLite)

Esquema principal (simplificado):

-- Activos unificados
CREATE 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 buffer
CREATE 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 red
CREATE 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 Intelligence
CREATE TABLE exposure_findings (
id TEXT PRIMARY KEY, profile TEXT, target TEXT, finding_type TEXT,
severity TEXT, evidence TEXT, timestamp INTEGER, status TEXT
);
-- Briefs ARGUS
CREATE TABLE argus_briefs (
id TEXT PRIMARY KEY, prompt TEXT, brief TEXT, evidence_refs TEXT,
validation_state TEXT, created_at INTEGER
);

Acceso a datos

ConsumidorDatosMecanismo
Renderer (UI)Consultas agregadas, listas paginadasIPC invoke → Main → SQLite → JSON
ARGUS ToolsSubconjuntos filtrados por herramientaMain → SQLite → JSON (solo lectura)
ExportacionesCSV, JSON, STIX (según módulo)Main → SQLite → Streaming write
Diagnósticotracewall.db completoCopia manual por operador

Retención y limpieza

Tipo de datoRetención por defectoConfigurable
Telemetría sensor (assets, interfaces)30 días1–365 días
Buffer eventos / SIEM30 días / 100k eventos1–365 días / 10k–1M
Topología30 días1–365 días
Hallazgos exposición90 días1–365 días
Briefs ARGUS90 días1–365 días
Logs aplicación7 días / 50 MB1–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.

Páginas relacionadas