Skip to content

Exposure Intelligence

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

PerfilQué analizaMétodoTargets por defectoConexión saliente
DNSResolución, zona transfer, subdominios, DNSSEC, CAA, SPF/DMARCUDP/TCP 53 + DoH/DoT opcionalDominios internos (assets *.local, *.corp) + dominios configuradosNo (DNS local)
WebHTTP/HTTPS: headers, TLS cert, tecnología, directorios, vulnerabilidades conocidasTCP 80/443 + 8080/8443IPs con puertos 80/443 abiertos (sensor + integraciones)No (LAN)
TLSVersiones, cifrados, certificado (validez, SAN, CA, CT), HSTS, HPKP, OCSPTCP 443 + puertos TLS conocidosAssets con puerto 443 / 8443 / 9443No (LAN)
PuertosEscaneo SYN/Connect top 100 / top 1000 / puertos customTCP SYN (Npcap/AF_PACKET) / Connect fallbackIPs del inventario (reachable)No (LAN)
Internet-facingIP pública + escaneo puertos expuestos desde InternetTCP SYN desde perspectiva externaIP pública detectada (api.ipify.org) (api.ipify.org + escaneo saliente)

Flujo de ejecución

1. SELECCIÓN TARGETS
├── Auto: assets filtrados por reachable + puertos abiertos + tipo
├── Manual: lista IPs/CIDRs/dominios en UI
└── Programado: schedule (cron-like) en Settings → Exposure
2. VALIDACIÓN PRE-VUELO
├── 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)
4. POST-PROCESAMIENTO
├── 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
5. NOTIFICACIÓN
├── Toast: "Perfil Web completado: 3 críticos, 7 altos, 12 medios"
├── Command Center badge actualizado
└── Log: exposure_profile_web.log

Hallazgos (Findings)

CampoDescripción
IDUUID v4
Perfildns, web, tls, ports, internet-facing
TargetIP / dominio / CIDR escaneado
TipoCategoría: tls_version, cert_expired, open_port, header_missing, dns_zone_transfer, banner_disclosure, cve_match
Severidadcritical, high, medium, low, info
EvidenciaJSON: {port, banner, headers, cert, cve_ids, raw_response}
CVEsArray de CVE IDs correlacionados (base local)
TimestampEpoch fin de escaneo
Estadonew, acknowledged, mitigated, false_positive, accepted_risk
Asset IDFK a assets.id (si target en inventario)

Matriz de severidad (reglas internas)

HallazgoSeveridadJustificación
TLS 1.0 / 1.1 habilitado🔴 CriticalDeprecado, vulnerable (BEAST, POODLE)
Certificado expirado🔴 CriticalSin confianza, MITM trivial
Certificado autofirmado (producción)🔴 CriticalSin validación de cadena
Puerto 22/3389/445 expuesto a Internet🔴 CriticalBrute-force, exploits conocidos
CVE conocido en banner/versión🔴 CriticalExploitable activamente
HSTS ausente en HTTPS🟠 HighDowngrade attack posible
DNS zone transfer permitido🟠 HighFuga de arquitectura interna
Puerto inusual expuesto (1433, 3306, 5432)🟠 HighBase de datos accesible
Versión TLS 1.2 solo (sin 1.3)🟡 MediumMejorable
Cabecera Server expone versión🟡 MediumInformation disclosure
Certificado expira < 30 días🟡 MediumPlanificar renovación
DNSSEC no validado🟡 MediumSpoofing posible
Puerto 80 redirige a HTTPS🟢 LowComportamiento estándar
SPF/DMARC no configurado🟢 LowEmail spoofing risk

UI: Lista de hallazgos

ColumnaAcción
Severidad (badge)Filtro multi-select
Perfil (icono)Filtro
TargetEnlace → detalle target / asset
TipoAgrupación
CVE(s)Enlace → NVD / base local
Evidencia[🔍] Modal JSON pretty-print
TimestampOrden temporal
EstadoDropdown 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] │
│ Evidencia: { │
│ "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

PerfilDestinoDatosControl
Internet-facinghttps://api.ipify.org (GET)IP pública solaDeshabilitar perfil o Settings → Exposure → Custom IP endpoint
Internet-facingTargets escaneados (SYN)Paquetes de sondeo TCPFirewall regla allow solo si perfil ejecutado

Nunca se envían: inventario, topología, eventos, credenciales, prompts ARGUS.


Limitaciones conocidas

LímiteDetalleWorkaround
No escáner full-portTop 100/1000 puertos; no 1–65535Custom port list en Settings
No fuzzing webDirectorios comunes + tecnología; no discovery agresivoIntegrar con ferramienta dedicada
Sin autenticaciónNo prueba login, no bypass authManual / pentest dedicado
Rate limit50 targets/ejecución; 5 hilosAjustar en Settings (cuidado con IDS/IPS)
Dependencia Npcap (Win)SYN scan requiere Npcap WinPcap modeInstall Npcap o Connect scan fallback
CVE base localNo auto-update CVE feed; base embebidaActualizar app para nueva base
Internet-facingRequiere IP pública + salida InternetAir-gapped: no ejecutar

Páginas relacionadas