Exposure Intelligence
Módulo de análisis de superficie de exposición. Ejecuta perfiles de escaneo dirigidos contra targets del inventario o configurados manualmente. Genera hallazgos con severidad y evidencia verificable.
Perfiles disponibles
Perfil Qué analiza Método Targets por defecto Conexión saliente DNS Resolución, zona transfer, subdominios, DNSSEC, CAA, SPF/DMARC UDP/TCP 53 + DoH/DoT opcional Dominios internos (assets *.local, *.corp) + dominios configurados No (DNS local) Web HTTP/HTTPS: headers, TLS cert, tecnología, directorios, vulnerabilidades conocidas TCP 80/443 + 8080/8443 IPs con puertos 80/443 abiertos (sensor + integraciones) No (LAN) TLS Versiones, cifrados, certificado (validez, SAN, CA, CT), HSTS, HPKP, OCSP TCP 443 + puertos TLS conocidos Assets con puerto 443 / 8443 / 9443 No (LAN) Puertos Escaneo SYN/Connect top 100 / top 1000 / puertos custom TCP SYN (Npcap/AF_PACKET) / Connect fallback IPs del inventario (reachable) No (LAN) Internet-facing IP pública + escaneo puertos expuestos desde Internet TCP SYN desde perspectiva externa IP pública detectada (api.ipify.org) Sí (api.ipify.org + escaneo saliente)
Flujo de ejecución
├── Auto: assets filtrados por reachable + puertos abiertos + tipo
├── Manual: lista IPs/CIDRs/dominios en UI
└── Programado: schedule (cron-like) en Settings → Exposure
├── Targets reachable? (ARP/ICMP cache)
├── Permisos captura (Npcap / CAP_NET_RAW) para Puertos/TLS
├── Salida a Internet (solo Internet-facing)
└── Rate limit: max 50 targets/ejecución (configurable)
3. EJECUCIÓN (paralelo controlado)
├── Worker pool: 5 hilos (configurable 1–20)
├── Timeout por target: 30s (DNS), 60s (Web/TLS), 120s (Puertos)
├── Evidencia cruda guardada en DB (JSON)
└── Progreso en tiempo real en UI (toast + barra)
├── Normalizar hallazgos a esquema FindingInternal
├── Asignar severidad (CVSS-like interno: Critical/High/Medium/Low/Info)
├── Correlacionar con CVE local (base embebida, actualizable)
├── Deduplicar por target+tipo+puerto
└── Persistir en exposure_findings + actualizar assets.exposed
├── Toast: "Perfil Web completado: 3 críticos, 7 altos, 12 medios"
├── Command Center badge actualizado
└── Log: exposure_profile_web.log
Hallazgos (Findings)
Campo Descripción ID UUID v4 Perfil dns, web, tls, ports, internet-facingTarget IP / dominio / CIDR escaneado Tipo Categoría: tls_version, cert_expired, open_port, header_missing, dns_zone_transfer, banner_disclosure, cve_match Severidad critical, high, medium, low, infoEvidencia JSON: {port, banner, headers, cert, cve_ids, raw_response} CVEs Array de CVE IDs correlacionados (base local) Timestamp Epoch fin de escaneo Estado new, acknowledged, mitigated, false_positive, accepted_riskAsset ID FK a assets.id (si target en inventario)
Matriz de severidad (reglas internas)
Hallazgo Severidad Justificación TLS 1.0 / 1.1 habilitado 🔴 Critical Deprecado, vulnerable (BEAST, POODLE) Certificado expirado 🔴 Critical Sin confianza, MITM trivial Certificado autofirmado (producción) 🔴 Critical Sin validación de cadena Puerto 22/3389/445 expuesto a Internet 🔴 Critical Brute-force, exploits conocidos CVE conocido en banner/versión 🔴 Critical Exploitable activamente HSTS ausente en HTTPS 🟠 High Downgrade attack posible DNS zone transfer permitido 🟠 High Fuga de arquitectura interna Puerto inusual expuesto (1433, 3306, 5432) 🟠 High Base de datos accesible Versión TLS 1.2 solo (sin 1.3) 🟡 Medium Mejorable Cabecera Server expone versión 🟡 Medium Information disclosure Certificado expira < 30 días 🟡 Medium Planificar renovación DNSSEC no validado 🟡 Medium Spoofing posible Puerto 80 redirige a HTTPS 🟢 Low Comportamiento estándar SPF/DMARC no configurado 🟢 Low Email spoofing risk
UI: Lista de hallazgos
Columna Acción Severidad (badge) Filtro multi-select Perfil (icono) Filtro Target Enlace → detalle target / asset Tipo Agrupación CVE(s) Enlace → NVD / base local Evidencia [🔍] Modal JSON pretty-print Timestamp Orden temporal Estado Dropdown para cambiar (new→ack→mitigated) Acciones [Ver en Topología] [Crear Incidente] [Consultar ARGUS]
Detalle de hallazgo (modal)
┌────────────────────────────────────────────────────────────┐
│ 🔴 CRITICAL │ TLS 1.0 habilitado │ Perfil: TLS │
├────────────────────────────────────────────────────────────┤
│ Target: 10.0.0.5:443 (web-01.example.local) │
│ Asset: 🟢 Reachable Conf: 0.96 [Ver en Inventario] │
│ CVE: CVE-2016-0800 (DROWN) [NVD] │
│ "protocol": "TLSv1.0", │
│ "ciphers": ["AES128-SHA", "AES256-SHA"], │
│ "cert": {"subject": "CN=web-01", "not_after": "2025-06"},│
│ "raw": "CONNECTED(00000003)..." │
│ Estado: new [▼ Acknowledged / Mitigated / FP / Risk] │
│ Acciones: [Ver en Topología] [Crear Incidente] [ARGUS] │
└────────────────────────────────────────────────────────────┘
Conexiones salientes
Perfil Destino Datos Control Internet-facing https://api.ipify.org (GET)IP pública sola Deshabilitar perfil o Settings → Exposure → Custom IP endpoint Internet-facing Targets escaneados (SYN) Paquetes de sondeo TCP Firewall regla allow solo si perfil ejecutado
Nunca se envían: inventario, topología, eventos, credenciales, prompts ARGUS.
Limitaciones conocidas
Límite Detalle Workaround No escáner full-port Top 100/1000 puertos; no 1–65535 Custom port list en Settings No fuzzing web Directorios comunes + tecnología; no discovery agresivo Integrar con ferramienta dedicada Sin autenticación No prueba login, no bypass auth Manual / pentest dedicado Rate limit 50 targets/ejecución; 5 hilos Ajustar en Settings (cuidado con IDS/IPS) Dependencia Npcap (Win) SYN scan requiere Npcap WinPcap mode Install Npcap o Connect scan fallback CVE base local No auto-update CVE feed; base embebida Actualizar app para nueva base Internet-facing Requiere IP pública + salida Internet Air-gapped: no ejecutar
Páginas relacionadas