Tema
Respuesta v4 a ControlCase — Ticket 684987 (Lista de assets ASV actualizada)
| Campo | Valor |
|---|---|
| Ticket | 684987 (v4 — supersede v3 del 2026-08-05) |
| Solicitante | Sahil Sakpal ([email protected]) |
| Solicitud | Lista de assets ASV actualizada |
| Fecha respuesta | 2026-08-07 |
| Estado | ✅ ENTREGADO — 24 targets verificados contra infraestructura viva + 3 hallazgos remediados + 1 corrección de información previa |
| Elaborado | Gabriel Ureña Chacón — CTO Fintrix Pay |
1. Archivo Excel actualizado — descarga directa
https://docs.fintrixspay.com.co/asv-scan-targets/fintrixspay-asv-scan-targets-v2-2026-08-07.xlsx6 hojas:
| Hoja | Contenido |
|---|---|
| ASV Scan Targets | 24 assets in-scope con IP, categoría, rol, puertos esperados |
| Out of Scope | 12 entradas que NO deben escanearse, con razón |
| Changes vs v1.0 | 8 cambios respecto a la lista del 2026-08-05 (+13 / −1 / 2 corregidos) |
| Correction Notice | Corrección formal de información errónea que enviamos en v2 |
| Remediations 2026-08-07 | 3 hallazgos detectados y cerrados antes de emitir esta lista |
| Metadata | Versión, método de verificación, CIDRs, contacto |
2. Corrección importante — información errónea en nuestra respuesta v2
Sahil, antes de entrar en la lista queremos corregir algo que te informamos mal.
Lo que dijimos (ticket 684987 v2, 2026-08-04):
"Ninguna de las 4 IPs pertenece a nuestra infraestructura DigitalOcean" — refiriéndonos a
129.212.198.250,157.245.12.45,165.245.153.140,129.212.199.48.
Lo correcto: 3 de esas 4 IPs sí son nuestras.
| IP | Realidad verificada 2026-08-07 |
|---|---|
129.212.198.250 | ✅ ES nuestra — Reserved IP de fintrix-production-vapt |
165.245.153.140 | ✅ ES nuestra — Reserved IP de fintrix-production-collector |
129.212.199.48 | ✅ ES nuestra — Reserved IP de fintrix-production-cdd |
157.245.12.45 | ❌ Confirmado: NO es nuestra (re-verificado hoy) |
Causa raíz del error: nuestra verificación usó doctl compute droplet list y doctl compute load-balancer list. Las Reserved IPs (Floating IPs) son un tipo de recurso separado en DigitalOcean y no aparecen en ninguno de esos dos comandos, así que no hubo coincidencia y concluimos incorrectamente que eran de terceros.
Cómo lo detectamos: al reconstruir el inventario hoy corrimos doctl compute reserved-ip list por primera vez y las 3 IPs aparecieron, cada una mapeada a un droplet Fintrix con nombre.
$ doctl compute reserved-ip list
IP Region Droplet Name
129.212.198.250 nyc1 fintrix-production-vapt
165.245.153.140 nyc1 fintrix-production-collector
129.212.199.48 nyc1 fintrix-production-cddAcción correctiva:
- Las 3 IPs están incluidas como targets in-scope en la hoja 1
- Nuestro procedimiento interno de inventario ahora exige enumerar droplets + load balancers + reserved IPs
INV-001-EXTERNAL_IPSse actualiza a v2 con estas entradas
Te pedimos disculpas por la información incorrecta. Preferimos corregirlo nosotros ahora a que aparezca durante el scan.
3. Hallazgos detectados y remediados hoy (antes de emitir la lista)
Al reconstruir el inventario encontramos 3 exposiciones reales. Las cerramos el mismo día — te las reportamos con evidencia del antes y el después para que tengas trazabilidad completa.
3.1 Kong Admin API expuesto sin autenticación — CRÍTICO
El problema: 129.212.199.127:8001 respondía HTTP 200 con volcado completo de la configuración de Kong, sin requerir autenticación:
$ curl -sk http://129.212.199.127:8001/
{"node_id":"4666227a-0934-4e9b-b214-7b0c0e6a7a7a","timers":{"running":257,...},
"tagline":"Welcome to kong","configuration":{"prefix":"/kong_prefix",...Puerto 8444 (HTTPS) igual: HTTP 200.
Esto permitía a cualquiera en internet leer y potencialmente modificar rutas, upstreams y plugins del gateway que enruta tráfico al CDE.
Nota de transparencia: nuestro documento EVD-Q24-CRYPTO-ADMIN-EVIDENCE afirmaba que este puerto estaba bloqueado por firewall. Esa afirmación era correcta cuando se escribió, pero la protección se perdió en algún momento posterior (probablemente al recrearse el Load Balancer por el chart de Helm, que lo reprovisiona como LoadBalancer). El documento se actualiza en esta misma entrega.
Remediación aplicada:
bash
kubectl -n default patch svc kong-kong-admin -p '{"spec":{"type":"ClusterIP"}}'El Service pasó de LoadBalancer a ClusterIP; DigitalOcean liberó el Load Balancer y la IP dejó de existir. La administración de Kong ahora es exclusivamente vía kubectl port-forward — que es justamente lo que ya usaban nuestros dos workflows de CI (kong-deck-sync.yml y microservices-eks-deploy.yml), por lo que el cambio no rompió nada.
Verificación posterior:
Externo: 8001 → HTTP 000 (sin respuesta) ✅
8444 → HTTP 000 (sin respuesta) ✅
Interno: kubectl port-forward svc/kong-kong-admin 18001:8001
curl 127.0.0.1:18001/status → HTTP 200 ✅
Tráfico: app.fintrixspay.com.co → HTTP 200 ✅
api /auth/login → HTTP 201 ✅Cero impacto en el path de tráfico productivo.
3.2 RDP (3389/tcp) abierto a internet en 2 droplets PCI — ALTO
El problema: las reglas protocol:tcp,ports:3389,address:0.0.0.0/0 existían en fintrix-production-cdd-fw y fintrix-production-vapt-fw, y el puerto estaba efectivamente escuchando (xrdp sobre Ubuntu 24.04):
$ nc -z 159.223.110.179 3389
Connection to 159.223.110.179 port 3389 [tcp/ms-wbt-server] succeeded!
$ nc -z 143.244.169.114 3389
Connection to 143.244.169.114 port 3389 [tcp/ms-wbt-server] succeeded!Remediación aplicada: ambas reglas eliminadas del Cloud Firewall. RDP no es necesario — son hosts Linux que se administran por SSH.
Verificación: TCP connect a 3389 ahora falla en 159.223.110.179, 143.244.169.114 y en las 3 Reserved IPs.
3.3 SSH (22/tcp) abierto a 0.0.0.0/0 en los mismos droplets — MEDIO
El problema: SSH aceptaba conexiones desde cualquier origen, lo cual además contradecía nuestra propia documentación en el ticket 684995, donde declaramos que SSH estaba restringido a IPs administrativas.
Remediación aplicada: SSH restringido a la VPC de producción (10.100.0.0/16) más el VPN gateway (146.190.69.141/32). El acceso administrativo ahora es exclusivamente vía WireGuard.
Verificación: puerto 22 filtrado desde internet en ambos hosts; el VPN gateway sigue accesible, por lo que el acceso administrativo se preserva.
4. Resumen de cambios vs la lista v1.0 (2026-08-05)
| Tipo | Cantidad | Assets |
|---|---|---|
| ➕ Agregados | 13 | 3 Reserved IPs · 3 nodos K8s del nodepool CDE · 4 nodos K8s app/system · 2 Load Balancers (WAF, Wazuh manager) · 1 GitHub runner |
| ➖ Removidos | 1 | 129.212.199.127 (Kong Admin LB — decomisionado hoy) |
| ✏️ Corregidos | 2 | Etiquetado Kong .126/.127 · Puertos de cdd/vapt tras remediación |
| Total v2.0 | 24 | (v1.0 tenía 13) |
Por qué crecieron tanto: la lista v1.0 se armó desde droplets y load balancers. Esta v2.0 agrega dos categorías que faltaban:
- Reserved IPs — recurso DigitalOcean separado (ver §2)
- IPs públicas de los nodos Kubernetes — cada worker de DOKS tiene IP pública aunque no publique servicios en ella. Son las máquinas que físicamente ejecutan los workloads del CDE, así que deben estar en el scope del scan.
5. Lista in-scope resumida (detalle completo en el Excel)
5.1 Puntos de entrada públicos — Load Balancers
| IP | Servicio | Puertos |
|---|---|---|
134.199.178.138 | ingress-nginx → api. + app.fintrixspay.com.co | 80, 443 |
129.212.199.126 | kong-kong-proxy (data plane) | 80, 443 |
138.197.228.148 | Coraza WAF | 80 |
167.172.14.100 | Wazuh dashboard | 443 |
157.230.65.74 | Wazuh manager (enrollment + API) | 1515, 55000 |
5.2 Nodos Kubernetes — cluster fintrix-production-k8s
| IP pública | Nodo | Nodepool | Scope |
|---|---|---|---|
157.245.84.205 | cde-37122t | cde | CDE |
137.184.75.31 | cde-37122a | cde | CDE |
159.89.48.10 | cde-371226 | cde | CDE |
143.198.121.67 | app-3712ph | app | Connected |
104.248.229.72 | app-3712pk | app | Connected |
167.172.144.82 | system-3712l8 | system | Connected |
68.183.141.165 | system-3712lu | system | Connected |
5.3 Vault cluster (gestión de llaves)
| IP | Nodo | Privada |
|---|---|---|
134.122.120.116 | vault-01 | 10.100.0.13 |
143.244.165.55 | vault-02 | 10.100.0.19 |
178.128.145.200 | vault-03 | 10.100.0.20 |
5.4 Droplets de compliance (primaria + Reserved IP)
| Droplet | IP primaria | Reserved IP |
|---|---|---|
| collector | 134.209.213.133 | 165.245.153.140 ⭐ nueva |
| cdd | 159.223.110.179 | 129.212.199.48 ⭐ nueva |
| vapt | 143.244.169.114 | 129.212.198.250 ⭐ nueva |
5.5 Soporte
| IP | Asset |
|---|---|
146.190.69.141 | VPN gateway (WireGuard) |
69.55.62.35 | Bitwarden self-hosted |
143.244.171.12 | GitHub Actions runner (deploy al cluster PCI) |
6. Un punto de scope para tu criterio
En la hoja "Out of Scope" listamos como fuera de alcance el simulador de phishing (GoPhish + MailHog — 168.144.12.98, 134.199.176.112, 24.144.66.136), que usamos para capacitación de concientización del personal.
Sin embargo, corre en el mismo cluster que el CDE, en el namespace phishing-sim, aislado por NetworkPolicy. Bajo un criterio estricto de "connected systems" podría argumentarse que debe escanearse.
Preferimos señalártelo en vez de decidirlo unilateralmente. Si tu criterio es incluirlo, lo movemos a in-scope sin problema — solo confírmanos y actualizamos el Excel.
7. Método de verificación
Todo el inventario se reconstruyó desde cero contra la infraestructura viva:
bash
doctl compute droplet list --format Name,PublicIPv4,PrivateIPv4,Region,Tags
doctl compute load-balancer list --format Name,IP,Region,Status
doctl compute reserved-ip list # ← el que faltaba en v1.0
doctl compute firewall list --format Name,InboundRules
doctl kubernetes cluster list
kubectl get svc -A --field-selector spec.type=LoadBalancer
kubectl get nodes -o wideLos outputs completos están disponibles si los necesitas para tu papel de trabajo.
8. Próximos pasos propuestos
- Revisar la lista de 24 targets y confirmarnos si coincide con tu expectativa de scope
- Definir el punto del §6 (phishing-sim dentro o fuera)
- Enviarnos el PDF firmado con las IPs oficiales del scanner ASV — es lo único que falta para aplicar el whitelist
- Con eso confirmado, aplicamos el whitelist en menos de 4 horas y quedamos listos para tu scan
Quedamos atentos.
Anexos
- Excel v2.0:
fintrixspay-asv-scan-targets-v2-2026-08-07.xlsx - Excel v1.0 (superado, se mantiene por trazabilidad):
fintrixspay-asv-scan-targets-2026-08-05.xlsx - Respuesta v3:
TICKET-684987-v3-ASV-scan-targets-excel - Respuesta v2 (contiene la información corregida en §2):
TICKET-684987-v2-ASV-whitelist-clarification - Runbook whitelist técnico:
TICKET-684987-ASV-whitelist-response
Firma
- Elaborado: Gabriel Ureña Chacón — CTO Fintrix Pay
- Fecha: 2026-08-07
