Skip to content

Modelo de seguridad

Modelo de seguridad

TraceWall Desktop V3 AI está diseñado con un modelo de seguridad local-first, least-privilege, defense-in-depth. Esta página documenta la arquitectura de confianza, límites y controles.

Principios fundamentales

PrincipioImplementación
Local-firstTelemetría, eventos, inventario, topología, briefs ARGUS → SQLite local. Sin backend cloud obligatorio.
Least privilegeRenderer sin Node; Main con Node; Auxiliares (sensor, ARGUS) procesos hijos aislados.
Loopback only para IAARGUS llama.cpp server bind 127.0.0.1:puerto-aleatorio. Sin exposición LAN/WAN.
Solo lectura por defectoIntegraciones: APIs read-only. Herramientas ARGUS: read-only. Sin acciones de escritura remota.
Credenciales cifradasDPAPI (Win) / libsecret (Lin). Nunca en config.json ni logs.
Sin telemetría ocultaNo usage analytics, no crash reporting automático, no prompt logging externo.
VerificableSHA-256 publicado por release. Instalador sin firma EV (SmartScreen warning documentado).

Arquitectura de procesos y límites de confianza

┌─────────────────────────────────────────────────────────────────────┐
│ USUARIO (Operador) │
└──────────────────────────────┬──────────────────────────────────────┘
│ UI Interaction
┌─────────────────────────────────────────────────────────────────────┐
│ RENDERER PROCESS (Chromium) │
│ - contextIsolation: true │
│ - nodeIntegration: false │
│ - Acceso SOLO vía contextBridge (preload) → APIs tipadas │
│ - Sin FS, Sin Net, Sin Child Process, Sin Native Modules │
└──────────────────────────────┬──────────────────────────────────────┘
│ IPC (contextBridge)
┌──────────┼──────────┐
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────┐
│ MAIN PROCESS (Electron + Node.js) │
│ - Ventana, menú, tray, auto-update, IPC router │
│ - FS acceso: config.json, tracewall.db, logs/, models/ │
│ - Lanza procesos auxiliares (child_process.fork/spawn) │
│ - Gestiona credenciales (DPAPI/libsecret) │
└──────────────────────────────┬──────────────────────────────────────┘
┌────────────────────┼────────────────────┐
▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ SENSOR COLLECTOR │ │ ARGUS ENGINE │ │ INTEGRATION │
│ (child_process) │ │ (llama.cpp │ │ WORKERS │
│ - Interfaces │ │ server) │ │ (per connector) │
│ - ARP, Rutas │ │ - Loopback │ │ - HTTPS/API │
│ - Procesos │ │ 127.0.0.1 │ │ - SNMP/UDP │
│ - Puertos │ │ - Modelo GGUF │ │ - Syslog/TCP │
│ - Sin red saliente│ │ local only │ │ - Credenciales │
└──────────────────┘ └──────────────────┘ └──────────────────┘
│ │ │
└────────────────────┴────────────────────┘
┌──────────────────┐
│ SQLITE (WAL) │
│ tracewall.db │
│ - assets │
│ - events │
│ - topology │
│ - exposure │
│ - argus_briefs │
│ - audit_logs │
└──────────────────┘

Tabla de capacidades por proceso

CapacidadRendererMainSensorARGUS EngineIntegraciones
UI Render
FS Read/Write (config, DB, logs, models)Model read
Red LAN (sensor, integraciones)✅ (saliente)✅ (saliente)
Red Loopback (ARGUS)✅ (127.0.0.1)
Red Internet (opcional)✅ (update, model dl, IP detect)
Procesos hijos✅ (fork/spawn)
Módulos Node.js nativos✅ (llama.cpp)
Credenciales (DPAPI/libsecret)✅ (encrypt/decrypt)✅ (decrypt para uso)

Conexiones salientes — Qué, cuándo, control

FunciónTriggerDestinoDatosControl usuario
Sensor → IntegracionesPolling configuradoFW, SIEM, Monitoring APIsRead-only requestsDeshabilitar/eliminar integración
Exposure: DNS/Web/TLS/PuertosPerfil ejecutadoTargets LANPaquetes sondeo / HTTP reqDeshabilitar perfil
Exposure: Internet-facingPerfil Internet-facingapi.ipify.org (443)Solo IP públicaDeshabilitar perfil / custom endpoint
ARGUS: Descarga modeloPrimera vez si no hay modelohuggingface.co / CDN (443)Pesos GGUF (~4-8 GB)Pre-colocar modelo en models/
Auto-update checkInicio / intervalodownload.trace-wall.com (443)Manifest JSON (versión, SHA)Settings → Updates → Off
Auto-update downloadNueva versión disponibledownload.trace-wall.com (443)Instalador firmado (si aplica)Settings → Updates → Manual

Nunca se envía: Inventario crudo, eventos, topología, hallazgos, prompts ARGUS, briefs, credenciales, tracewall.db, logs.


Almacenamiento de credenciales

PlataformaAPIAlcanceRotación
WindowsCryptProtectData (DPAPI)CRYPTPROTECT_UI_FORBIDDEN + opcional CRYPTPROTECT_LOCAL_MACHINERe-ingresar en Settings → Integraciones
Linuxlibsecret (Secret Service)org.freedesktop.secrets (gnome-keyring, kwallet, keepassxc)Re-ingresar en Settings → Integraciones
  • config.json guarda solo cred_id (UUID opaco).
  • Desinstalación no borra credenciales del almacén del sistema (persisten para reinstalación).
  • Purga manual: Settings → Integraciones → [Eliminar] → borra cred_id + entrada en DPAPI/libsecret.

Permisos del sistema operativo

RecursoWindowsLinux
Instalación per-userStandard userStandard user (sudo apt install)
Instalación system-wideAdministratorroot via sudo
Sensor: interfaces, ARP, rutasStandard userStandard user
Sensor: procesos (cmdline, open files) otros usuariosAdministratorCAP_SYS_PTRACE o root
Sensor: puertos (owner PID)Standard user (algunos) / NpcapCAP_NET_ADMIN para ss -tulpn completo
Sensor: captura paquetes (Exposure)Npcap (WinPcap API)CAP_NET_RAW + CAP_NET_ADMIN
ARGUS: inferenciaStandard userStandard user
ARGUS: GPU (CUDA)Standard user (driver user-mode)Standard user (nvidia-container-toolkit no req)
Loopback bind (ARGUS)Standard userStandard user
Escritura %LOCALAPPDATA%\TraceWall / ~/.local/share/tracewallOwner userOwner user

No hay servicio Windows persistente como SYSTEM. Sensor corre en sesión de usuario.


Logs y exportaciones — Riesgos y controles

DatoRiesgoControl
Logs (logs/*.log)Pueden contener IPs, hostnames, rutas, mensajes de errorRotación 7d/50MB; nivel defecto INFO; DEBUG solo diagnóstico; export ZIP no incluye credenciales
Tracewall.dbInventario completo, eventos, briefs ARGUSPermisos FS owner-only; no cifrado en reposo (opcional: BitLocker / LUKS)
Exports CSV/JSON/STIXFuga de datos operativosUsuario decide qué exportar; no auto-export
Modelo GGUFTamaño grande; no sensibleArchivo binario; sin metadata PII

Firma digital y SHA-256

Estado actualDetalle
Instalador Windows (.exe)NO firmado comercialmente (sin certificado EV). SmartScreen advertirá. Ver SmartScreen.
Paquete Linux (.deb)NO firmado PGP. Verificación por SHA-256 en download page.
SHA-256Publicado en download.trace-wall.com y Changelog por release.
Verificación obligatoriaSiempre Get-FileHash / sha256sum / certutil antes de instalar.

SmartScreen (Windows)

EscenarioComportamiento esperadoAcción correcta
Primera ejecución instalador”Windows protegió tu PC. Editor desconocido.”[Más información] → Verificar checksum → [Ejecutar de todos modos]
Ejecución app instaladaSin warning (ya permitió)Normal
Nueva versión (auto-update)Puede reaparecer si instalador no firmadoVerificar checksum nueva versión → [Ejecutar de todos modos]

No deshabilites SmartScreen, Defender, UAC. La verificación criptográfica reemplaza la confianza.


Buenas prácticas operativas

PrácticaPor qué
Verificar SHA-256 en cada instaladorIntegridad de cadena de suministro
Excluir %LOCALAPPDATA%\TraceWall de AV/EDR escaneo tiempo realEvita locks en SQLite WAL, falsos positivos en modelo GGUF
Ejecutar con usuario dedicado (no admin)Least privilege; sensor funciona estándar
Firewall outbound deny-by-default + reglas allow específicasControla Exposure Internet-facing, updates, model download
Proxy corporativo configuradoUpdates y model download rutear por proxy; sensor LAN directo
Backup periódico tracewall.db + config.jsonRecuperación ante corrupción / ransomware
Rotar credenciales integraciones cada 90 díasLimita ventana de compromiso si secret filtrado
Revisar logs integration_*.log semanalmenteDetecta auth failures, rate limits, TLS errors temprano
Mantener Npcap actualizado (Win)Compatibilidad, seguridad, performance
Drivers NVIDIA + CUDA actualizados (si ARGUS GPU)Estabilidad inferencia, parches CVE GPU

Páginas relacionadas