Tema
EVD-TICKETS: Respuestas Consolidadas a Tickets ControlCase
| Campo | Valor |
|---|---|
| Empresa | BIO TECHNOLOGY CENTER S.A.S. (Fintrixs) |
| Fecha | 2026-04-03 |
| Preparado por | Equipo de Infraestructura / DevOps |
| Plataforma | DigitalOcean (DOKS, Managed PostgreSQL, Spaces, Load Balancer) |
| Auditor / QSA | ControlCase |
| Estado de tickets | Atención al cliente — respuestas pendientes |
Contexto
Este documento consolida las respuestas a los 9 tickets de ControlCase que se encuentran en estado "Atención al cliente". Cada sección incluye el numero de ticket, lo que ControlCase solicita, y nuestra respuesta con la informacion completa para que el auditor pueda proceder.
Infraestructura general:
- DigitalOcean Managed Kubernetes (DOKS) en region NYC1
- VPC principal:
10.100.0.0/16 - 4 subredes: DMZ (
10.100.1.0/24), CDE (10.100.10.0/24), App (10.100.20.0/24), Mgmt (10.100.30.0/24) - CDE compuesto por:
card-vault-service,tokenization-service,auth-service, Kong Gateway - 15 microservicios NestJS + Kong API Gateway
- Kafka para mensajeria asincrona
- 3 VMs de compliance ya provisionadas (Collector, VAPT, CDD)
Ticket 684979 — Escaneo ASV: Alcance y Cronograma
Solicitud de ControlCase
Proporcionar lista de direcciones IP externas, nombres de dominio y cronograma preferido para el escaneo ASV trimestral.
Respuesta Fintrixs
IPs Publicas en Scope para ASV
| # | IP Publica | Tipo | Asignada a | Servicio(s) Expuesto(s) | Puerto(s) | Proveedor |
|---|---|---|---|---|---|---|
| 1 | (IP del Load Balancer) | Reserved IP | DOKS Load Balancer | Kong Gateway — API publica HTTPS | 443 | DigitalOcean |
| 2 | (IP del Load Balancer) | Reserved IP | DOKS Load Balancer | Kong Gateway — API publica HTTPS | 8443 | DigitalOcean |
| 3 | 165.245.153.140 | Reserved IP | Collector VM | Agente de escaneo ControlCase | 22 (SSH restringido) | DigitalOcean |
| 4 | 129.212.198.250 | Reserved IP | VAPT VM | ControlCase VAPT Scanner | 3389 (RDP restringido) | DigitalOcean |
| 5 | 129.212.199.48 | Reserved IP | CDD VM | ControlCase CDD Scanner | 3389 (RDP restringido) | DigitalOcean |
Nota: Las IPs #1 y #2 corresponden al Load Balancer de DigitalOcean. Se proporcionaran las IPs exactas por canal seguro. Referencia interna:
docs/security/inventories/INV-001-EXTERNAL_IPS.md.
Dominios en Scope
| Dominio | Tipo DNS | Destino | Servicio |
|---|---|---|---|
api.fintrixspay.com | A / CNAME | Load Balancer | API Gateway (Kong) — endpoints de pago |
app.fintrixspay.com | A / CNAME | CDN / Load Balancer | Frontend Dashboard (Vue 3 SPA) |
Nota: Confirmar dominios exactos registrados. Los listados son los esperados en produccion.
Servicios Expuestos a Internet
| Servicio | Puerto Externo | Protocolo | Ruta de Acceso |
|---|---|---|---|
| Kong API Gateway | 443 | HTTPS (TLS 1.2+) | api.fintrixspay.com/* |
| Kong API Gateway | 8443 | HTTPS (TLS 1.2+) | Proxy alternativo |
| Frontend Dashboard | 443 | HTTPS | app.fintrixspay.com |
Servicios NO expuestos a internet: Todos los microservicios internos (payments-api, auth-service, tokenization-service, card-vault-service, etc.) solo son accesibles via la VPC privada a traves de Kong. No tienen IPs publicas asignadas.
Cronograma Preferido de Escaneo ASV
| Parametro | Valor |
|---|---|
| Frecuencia | Trimestral |
| Ventana preferida | Sabados o domingos, 02:00 - 08:00 UTC |
| Primer escaneo deseado | Lo antes posible (abril 2026) |
| Contacto para coordinacion | Equipo DevOps / CISO |
| Notificacion previa requerida | 48 horas antes del escaneo |
Ticket 684979 — Escaneo ASV: Whitelist de IPs del Escaner
Solicitud de ControlCase
Proporcionar las IPs de los escaneres ControlCase que deben ser incluidas en whitelist en el firewall de DigitalOcean para permitir el escaneo ASV.
Respuesta Fintrixs
Solicitamos a ControlCase la lista de IPs/rangos de sus escaneres ASV para proceder con la configuracion del whitelist.
Proceso de Whitelist en DigitalOcean
Una vez recibidas las IPs, el proceso de whitelist sera:
- Cloud Firewall (DMZ): Agregar regla de ingress permitiendo TCP/UDP desde las IPs del escaner ASV hacia las IPs publicas en scope.
- Implementacion: Via Terraform (
backend/infra/terraform/digitalocean/modules/networking/main.tf), variableasv_scanner_cidrs. - Validacion: Se ejecutara
terraform planpara verificar cambios yterraform applypara aplicar. - Confirmacion: Se enviara evidencia de la configuracion aplicada.
Informacion que Necesitamos de ControlCase
| Item | Detalle |
|---|---|
| IPs/CIDRs del escaner ASV | Lista completa de IPs origen del escaner |
| Protocolos requeridos | TCP, UDP, ICMP u otros |
| Puertos de origen | Si requieren puertos especificos |
| Duracion del whitelist | Permanente o solo durante ventana de escaneo |
Configuracion Actual del Firewall DMZ
El firewall DMZ (fintrix-production-dmz-fw) actualmente permite:
- Ingress: TCP 443 y TCP 80 desde
0.0.0.0/0(HTTPS/HTTP) - Egress: Solo hacia zonas internas (CDE, App)
Para el escaner ASV, se creara una regla adicional de ingress que permita trafico completo desde las IPs del escaner hacia las IPs publicas del scope, sin interferir con las reglas existentes.
Ticket 684980 — Evaluacion de Vulnerabilidades Internas (IVA): Alcance
Solicitud de ControlCase
Completar el formulario de alcance para la evaluacion de vulnerabilidades internas (IVA). Proporcionar red interna, rangos CIDR y lista de sistemas internos.
Respuesta Fintrixs
Red Interna y Segmentos
| Segmento | CIDR | Descripcion | Sistemas | PCI Scope |
|---|---|---|---|---|
| DMZ | 10.100.1.0/24 | Load Balancer, WAF | DO Load Balancer | Si (boundary) |
| CDE | 10.100.10.0/24 | Servicios PCI, DB managed | auth-service, tokenization-service, card-vault-service, Kong, Managed PostgreSQL | Si |
| App | 10.100.20.0/24 | Microservicios no-PCI | payments-api, merchants, webhooks-service, orchestration-service, email-service, onboarding-service, etc. | Conectado a CDE |
| Mgmt | 10.100.30.0/24 | Monitoreo y administracion | Prometheus, Grafana, Alertmanager | No |
| Compliance | 10.100.0.x | VMs de compliance | Collector (10.100.0.10), VAPT, CDD | Si (herramientas) |
Sistemas Internos a Escanear
CDE (Prioridad Alta)
| # | Sistema | IP/Hostname | Puerto(s) | Funcion | OS/Runtime |
|---|---|---|---|---|---|
| 1 | auth-service | Pod en namespace cde | 3700 | Autenticacion JWT RS256, MFA | Node.js 20 / Alpine |
| 2 | tokenization-service | Pod en namespace cde | 3600 | Tokenizacion de PAN | Node.js 20 / Alpine |
| 3 | card-vault-service | Pod en namespace cde | 3510 | Vault cifrado de tarjetas (AES-256-GCM) | Node.js 20 / Alpine |
| 4 | Kong Gateway | Pod en namespace kong | 8000, 8443 | API Gateway, rate limiting | Kong OSS |
| 5 | Managed PostgreSQL (PCI) | 10.100.10.0/24 | 25060, 25061 | vault_db, auth_db | PostgreSQL 16 (DO Managed) |
App Tier (Conectado a CDE)
| # | Sistema | Puerto | Funcion |
|---|---|---|---|
| 6 | payments-api | 3000 | Core de pagos, outbox |
| 7 | merchants | 3110 | Gestion de comercios |
| 8 | onboarding-service | 3900 | KYC merchants |
| 9 | webhooks-service | 3800 | Recepcion webhooks |
| 10 | orchestration-service | 4000 | Orquestacion de eventos |
| 11 | email-service | 4100 | Entrega de emails |
| 12 | realtime-gateway | 3950 | SSE (Server-Sent Events) |
| 13 | integration-runtime | 3500 | Ejecutor de integraciones |
| 14 | postgraphile-gateway | 5000 | GraphQL auto-generado |
| 15 | admin-audit-service | 3800 | Auditoria administrativa |
| 16 | Kafka | 9092, 9093 | Broker de mensajeria |
| 17 | Zookeeper | 2181 | Coordinacion Kafka |
| 18 | PostgreSQL (App) | 5432 | payments_db, onboarding_db, merchants_db |
VMs de Compliance
| # | Sistema | IP | Puerto | OS |
|---|---|---|---|---|
| 19 | Collector | 10.100.0.10 | 22, 514, 1514, 5508, 6608, 8037 | Ubuntu 24.04 LTS |
| 20 | VAPT | (IP VPC) | 3389 | Windows Server 2022 |
| 21 | CDD | (IP VPC) | 3389 | Windows Server 2022 |
Monitoring
| # | Sistema | Puerto | Funcion |
|---|---|---|---|
| 22 | Prometheus | 9090 | Metricas |
| 23 | Grafana | 3000 | Dashboards |
| 24 | Alertmanager | 9093 | Alertas |
Acceso del Escaner VAPT para IVA
La VM VAPT (129.212.198.250 / IP interna VPC) ya tiene configurado acceso completo a las subredes internas:
| Direccion | Protocolo | Puerto | Destino | Estado |
|---|---|---|---|---|
| Egress | TCP | 1-65535 | VPC (10.100.0.0/16) | Configurado |
| Egress | UDP | 1-65535 | VPC (10.100.0.0/16) | Configurado |
| Egress | ICMP | -- | VPC (10.100.0.0/16) | Configurado |
Las Cloud Firewalls del CDE y App aceptan trafico con tag compliance-scanner (TCP/UDP ALL + ICMP), que esta asignado a la VM VAPT.
Kubernetes Network Policies
Los pods tienen NetworkPolicies default-deny. Para el escaneo IVA autenticado, se puede:
- Crear una NetworkPolicy temporal que permita ingress desde la IP de la VM VAPT a todos los namespaces
- O ejecutar el escaneo desde dentro del cluster via un pod con acceso privilegiado
Recomendacion: Opcion 1, con politica temporal activa solo durante la ventana de escaneo.
Ticket 684997 — Descubrimiento de Datos de Tarjeta (Card Discovery): Alcance
Solicitud de ControlCase
Proporcionar alcance y calendario para el descubrimiento de datos de tarjeta (Card Data Discovery).
Respuesta Fintrixs
Sistemas que Pueden Contener Datos de Tarjeta
CDE — Almacenan/Procesan PAN
| # | Sistema | Base de Datos | Tabla(s) Relevante(s) | Tipo de Dato | Cifrado |
|---|---|---|---|---|---|
| 1 | card-vault-service | vault_db | encrypted_cards | PAN cifrado (AES-256-GCM) | At-rest: AES-256-GCM + TLS in-transit |
| 2 | tokenization-service | vault_db | tokens, token_mappings | Token opaco (referencia a PAN cifrado) | At-rest: AES-256 + TLS in-transit |
| 3 | auth-service | auth_db | users, mfa_secrets | Credenciales (sin PAN) | Argon2 hash + TLS |
Conectados a CDE — Pueden Tener Referencias Tokenizadas
| # | Sistema | Base de Datos | Tabla(s) Relevante(s) | Tipo de Dato | Contiene PAN Real |
|---|---|---|---|---|---|
| 4 | payments-api | payments_db | payment_intents, transactions | Token opaco, ultimos 4 digitos (truncado) | No — solo tokens y BIN/last4 |
| 5 | merchants | merchants_db | merchant_configurations | Configuracion de pasarela | No |
| 6 | integration-runtime | En memoria | Procesamiento temporal | Token detokenizado momentaneamente para envio a procesador | No persiste — solo en memoria durante procesamiento |
Sistemas que NO Deben Contener PAN
| # | Sistema | Justificacion |
|---|---|---|
| 7 | onboarding-service | Solo documentos de KYC (cedula, RUT) — sin datos de tarjeta |
| 8 | email-service | Solo plantillas y metadata de envio |
| 9 | webhooks-service | Recibe respuestas de procesadores — datos ya tokenizados |
| 10 | orchestration-service | Solo eventos y routing — sin payload de tarjeta |
| 11 | admin-audit-service | Logs de acciones administrativas — masking via @fintrix/logging |
| 12 | realtime-gateway | SSE de eventos UI — sin datos sensibles |
| 13 | postgraphile-gateway | GraphQL de solo lectura sobre payments_api schema — sin PAN |
Almacenamiento de Objetos
| # | Sistema | Contenido | Contiene PAN |
|---|---|---|---|
| 14 | DO Spaces (documents) | Documentos de onboarding (KYC) | No |
| 15 | DO Spaces (backups) | Backups cifrados de bases de datos | Potencial — backups de vault_db contienen PAN cifrado |
Logs y Monitoreo
| # | Sistema | Riesgo de PAN |
|---|---|---|
| 16 | Collector VM (syslog) | Bajo — @fintrix/logging aplica masking automatico de PAN |
| 17 | Prometheus/Grafana | No — solo metricas numericas |
Herramienta de Discovery
La VM CDD (129.212.199.48, Windows Server 2022) esta provisionada para ejecutar la herramienta de Card Data Discovery de ControlCase (CDAT). Tiene acceso de red hacia toda la VPC:
- Egress: TCP 1-65535 hacia VPC (
10.100.0.0/16) - Tag:
compliance-scanner(acceso a firewalls CDE y App)
Calendario Propuesto
| Parametro | Valor |
|---|---|
| Primer escaneo | Abril 2026 (lo antes posible) |
| Frecuencia | Semestral |
| Ventana | Fuera de horario pico: sabados 02:00 - 10:00 UTC |
| Coordinacion | Notificacion 48 horas antes |
Ticket 684991 — Pruebas de Segmentacion: Alcance
Solicitud de ControlCase
Indicar alcance de las pruebas de segmentacion: limites del CDE, controles de segmentacion entre CDE y non-CDE.
Respuesta Fintrixs
Limites del CDE
El CDE esta definido por tres capas de aislamiento:
Internet --> [DO Load Balancer :443] --> [DMZ 10.100.1.0/24]
|
v
[Kong Gateway :8000/8443]
|
v
[CDE Subnet 10.100.10.0/24]
|- auth-service :3700
|- tokenization-service :3600
|- card-vault-service :3510
|- Managed PostgreSQL (vault_db, auth_db)Controles de Segmentacion
Capa 1: Cloud Firewalls (DigitalOcean)
| Firewall | Protege | Politica Default | Reglas Clave |
|---|---|---|---|
fintrix-production-dmz-fw | Load Balancer | DROP ALL | Ingress: solo 443/80 desde internet |
fintrix-production-cde-fw | Servicios PCI | DROP ALL | Ingress: solo desde DMZ (443, 8000) y App/CDE (3600, 3700). card-vault-service (3510) solo accesible desde CDE CIDR |
fintrix-production-app-fw | Servicios no-PCI | DROP ALL | Egress hacia CDE: solo puertos 3600-3700 |
fintrix-production-mgmt-fw | Monitoreo | DROP ALL | Ingress: solo SSH/VPN desde IPs autorizadas |
| Database Firewall | Managed PostgreSQL | DROP ALL | Solo acepta conexiones desde cluster K8s (por ID) y CDE CIDR |
Capa 2: Kubernetes Network Policies
| Namespace | Politica Base | Ingress Permitido | Egress Permitido |
|---|---|---|---|
cde | default-deny-all | Solo desde namespace kong/ingress-nginx + comunicacion interna CDE | Solo a Managed PG (25060/25061), Kafka (9092/9093), DNS (53) |
app | default-deny-all | Solo desde namespace kong | Solo a CDE (3600 auth, 3700 tokenization), Kafka (9092), DNS (53) |
monitoring | Permisivo para scrape | -- | Egress a puertos de metricas (9100, 9090, 3000, 4000) |
Capa 3: Node Pool Isolation (DOKS)
| Node Pool | Tamano | Nodos | Taint | Workloads |
|---|---|---|---|---|
system | s-2vcpu-4gb | 2 | dedicated=system:NoSchedule | Ingress, monitoreo |
cde | s-4vcpu-8gb | 2 | pci-scope=true:NoSchedule | Solo auth, tokenization, card-vault |
app | s-4vcpu-8gb | 3 (autoscale 2-6) | Ninguno | Servicios no-PCI |
Los nodos CDE son fisicamente distintos de los nodos App. El taint pci-scope=true:NoSchedule impide que cualquier pod sin la tolerancia correspondiente se ejecute en nodos CDE.
Pruebas de Segmentacion Esperadas
Las siguientes validaciones deben confirmar el aislamiento:
| # | Prueba | Desde | Hacia | Resultado Esperado |
|---|---|---|---|---|
| 1 | TCP scan completo | App subnet | card-vault-service (:3510) | Bloqueado (solo accesible desde CDE) |
| 2 | TCP scan completo | App subnet | Managed PostgreSQL (:25060) | Bloqueado (solo desde K8s + CDE CIDR) |
| 3 | TCP scan a puertos permitidos | App subnet | auth-service (:3700) | Permitido (necesario para validacion JWT) |
| 4 | TCP scan a puertos permitidos | App subnet | tokenization-service (:3600) | Permitido (necesario para tokenizacion) |
| 5 | TCP scan completo | DMZ | CDE (todos los puertos) | Solo 443 y 8000 permitidos |
| 6 | TCP scan completo | Internet | VPC interna | Bloqueado totalmente |
| 7 | Acceso a DB desde App pod | Pod en namespace app | Managed PostgreSQL | Bloqueado por NetworkPolicy y Database FW |
Evidencia de Configuracion
| Artefacto | Ubicacion |
|---|---|
| Cloud Firewalls (Terraform) | backend/infra/terraform/digitalocean/modules/networking/main.tf |
| Network Policies (K8s) | backend/infra/kubernetes/network-policies.yaml |
| Node Pool config (Terraform) | backend/infra/terraform/digitalocean/modules/doks/main.tf |
| Database Firewall (Terraform) | backend/infra/terraform/digitalocean/modules/managed_postgres/main.tf |
Ticket 684995 — Pentest Interno de Redes (INPT): Requisitos del Escaner
Solicitud de ControlCase
Proveer requisitos de escaneo interno y acceso de red para el escaner ControlCase.
Respuesta Fintrixs
VM VAPT Provisionada
La VM VAPT ya esta provisionada y operativa para uso de ControlCase:
| Parametro | Valor |
|---|---|
| Nombre | fintrix-production-vapt |
| IP Publica | 129.212.198.250 (Reserved IP) |
| IP Privada (VPC) | Asignada dentro de 10.100.0.0/16 |
| OS | Windows Server 2022 |
| CPU | 4 vCPU |
| RAM | 8 GB |
| Disco | 200 GB |
| Acceso | RDP (puerto 3389) |
| Region | NYC1 (DigitalOcean) |
Conectividad de Red desde VM VAPT
| Direccion | Protocolo | Puerto(s) | Destino | Estado |
|---|---|---|---|---|
| Egress | TCP | 1-65535 | VPC 10.100.0.0/16 | Configurado |
| Egress | UDP | 1-65535 | VPC 10.100.0.0/16 | Configurado |
| Egress | ICMP | -- | VPC 10.100.0.0/16 | Configurado |
| Egress | TCP | 443 | 0.0.0.0/0 (Internet) | Configurado (para reportes a ControlCase) |
| Egress | UDP | 53 | 0.0.0.0/0 | Configurado (DNS) |
La VM tiene el tag compliance-scanner en DigitalOcean, lo cual le otorga acceso en los Cloud Firewalls del CDE y App (reglas TCP/UDP ALL + ICMP desde tag compliance-scanner).
Subredes Alcanzables para Pentest Interno
| Subnet | CIDR | Sistemas Objetivo |
|---|---|---|
| CDE | 10.100.10.0/24 | auth-service, tokenization-service, card-vault-service, Kong, Managed PG |
| App | 10.100.20.0/24 | payments-api, merchants, webhooks, kafka, etc. |
| DMZ | 10.100.1.0/24 | Load Balancer |
| Mgmt | 10.100.30.0/24 | Prometheus, Grafana, Alertmanager |
| Compliance | 10.100.0.x | Collector, CDD |
Credenciales de Acceso
Las credenciales de RDP para la VM VAPT se proporcionaran por canal seguro (fuera de este documento).
Requisitos Pendientes de ControlCase
| Item | Pregunta |
|---|---|
| Software de escaneo | Indicar si ControlCase instalara su propio software (Nessus, Rapid7, etc.) o si necesita que lo instalemos |
| Agente adicional | Indicar si se requiere algun agente adicional en la VM |
| Acceso autenticado | Indicar si requieren credenciales de OS/aplicacion para escaneos autenticados |
Ticket 684996 — Pentest Externo de Redes (ENPT): Alcance
Solicitud de ControlCase
Facilitar alcance y calendario para el pentest externo de redes.
Respuesta Fintrixs
Superficie de Ataque Externa
IPs Publicas
| # | IP | Servicio | Puerto(s) Abierto(s) | Protocolo |
|---|---|---|---|---|
| 1 | (IP del Load Balancer) | Kong API Gateway | 443, 8443 | HTTPS (TLS 1.2+) |
| 2 | 165.245.153.140 | Collector VM | 22 (SSH) | SSH |
| 3 | 129.212.198.250 | VAPT VM | 3389 (RDP) | RDP/TLS |
| 4 | 129.212.199.48 | CDD VM | 3389 (RDP) | RDP/TLS |
Nota: La IP del Load Balancer se proporcionara por canal seguro.
Dominios y URLs Publicos
| # | URL | Servicio | Tipo |
|---|---|---|---|
| 1 | https://api.fintrixspay.com | Kong API Gateway | API REST / GraphQL |
| 2 | https://app.fintrixspay.com | Frontend Dashboard | SPA Vue 3 |
Endpoints API Publicos (via Kong Gateway)
| # | Ruta | Metodo(s) | Servicio Backend | Descripcion |
|---|---|---|---|---|
| 1 | /auth/login | POST | auth-service | Autenticacion de usuarios |
| 2 | /auth/register | POST | auth-service | Registro de merchants |
| 3 | /auth/refresh | POST | auth-service | Renovacion de tokens JWT |
| 4 | /api/v1/payment-intents | POST, GET | payments-api | Gestion de intents de pago |
| 5 | /api/v1/merchants/* | GET, PUT | merchants | Consulta/actualizacion de merchants |
| 6 | /api/v1/onboarding/* | POST, GET | onboarding-service | Proceso de onboarding |
| 7 | /api/v1/webhooks/* | POST | webhooks-service | Recepcion de webhooks |
| 8 | /graphql | POST | postgraphile-gateway | GraphQL (lectura) |
Nota: Todos los endpoints (excepto login/register) requieren JWT RS256 valido en header
Authorization: Bearer <token>.
Calendario Propuesto para ENPT
| Parametro | Valor |
|---|---|
| Frecuencia | Anual (+ tras cambios significativos) |
| Ventana preferida | Lunes a viernes, 22:00 - 06:00 UTC |
| Alternativa | Sabados/domingos, cualquier hora |
| Primer pentest | Abril 2026 |
| Duracion estimada | Segun criterio de ControlCase |
| Contacto de emergencia | Equipo DevOps (se proporcionara telefono) |
| Notificacion previa | 48 horas antes |
Restricciones
- No realizar ataques de denegacion de servicio (DoS/DDoS) sin coordinacion previa
- No alterar datos de produccion (merchants, transacciones)
- No intentar acceder a datos de tarjeta reales (usar datos de prueba)
- Notificar inmediatamente si se descubre una vulnerabilidad critica explotable
Ticket 684992 — Pentest de Aplicaciones (APT): Lista de Aplicaciones
Solicitud de ControlCase
Facilitar lista completa de aplicaciones web en scope para el pentest de aplicaciones.
Respuesta Fintrixs
Aplicaciones Web en Scope
1. Fintrix Dashboard (Frontend)
| Campo | Valor |
|---|---|
| URL | https://app.fintrixspay.com |
| Tipo | SPA (Single Page Application) |
| Framework | Vue 3 (Composition API) + Vite 5 |
| Autenticacion | JWT RS256 (via auth-service) |
| Roles de usuario | Merchant Admin, Merchant User, System Admin |
| Funcionalidades criticas | Dashboard de transacciones, gestion de merchants, onboarding, configuracion de pagos |
2. API REST Principal (Kong Gateway)
| Campo | Valor |
|---|---|
| URL | https://api.fintrixspay.com |
| Tipo | REST API (JSON) |
| Gateway | Kong OSS con rate limiting, IP filtering |
| Autenticacion | JWT RS256 |
| Documentacion | OpenAPI 3.0 (disponible bajo solicitud) |
3. PostGraphile GraphQL API
| Campo | Valor |
|---|---|
| URL | https://api.fintrixspay.com/graphql |
| Tipo | GraphQL API (auto-generada desde PostgreSQL schema) |
| Autenticacion | JWT RS256 |
| Schema | Solo lectura sobre schema payments_api |
| Introspection | Deshabilitada en produccion |
Microservicios Backend (APIs internas expuestas via Kong)
| # | Servicio | Puerto Interno | Tecnologia | Endpoints Clave | Dato Sensible |
|---|---|---|---|---|---|
| 1 | auth-service | 3700 | NestJS / TypeScript | /auth/login, /auth/register, /auth/refresh, /auth/mfa/* | Credenciales, JWT, MFA secrets |
| 2 | tokenization-service | 3600 | NestJS / TypeScript | /tokenize, /detokenize | PAN (en transito, cifrado) |
| 3 | card-vault-service | 3510 | NestJS / TypeScript | /vault/store, /vault/retrieve | PAN cifrado (AES-256-GCM) |
| 4 | payments-api | 3000 | NestJS / TypeScript | /payment-intents, /transactions | Tokens de pago, montos |
| 5 | merchants | 3110 | NestJS / TypeScript | /merchants, /configurations | Datos de comercios |
| 6 | onboarding-service | 3900 | NestJS / TypeScript | /onboarding, /documents | KYC: cedula, RUT |
| 7 | webhooks-service | 3800 | NestJS / TypeScript | /webhooks/receive | Respuestas de procesadores |
| 8 | admin-audit-service | 3800 | NestJS / TypeScript | /audit-logs | Logs de acciones admin |
| 9 | email-service | 4100 | NestJS / TypeScript | /send, /templates | Metadata de envio |
| 10 | orchestration-service | 4000 | NestJS / TypeScript | Interno (Kafka consumer) | Eventos |
| 11 | realtime-gateway | 3950 | NestJS / TypeScript | /events (SSE) | Eventos UI |
| 12 | integration-runtime | 3500 | NestJS / TypeScript | Interno (Kafka consumer) | Token detokenizado temporalmente |
| 13 | postgraphile-gateway | 5000 | PostGraphile / Node.js | /graphql | Datos de lectura |
Paginas de Checkout / Pago
| Campo | Valor |
|---|---|
| Tipo | Formulario de pago embebido en frontend del merchant |
| Flujo | El PAN se envia directamente desde el browser a tokenization-service via Kong (TLS 1.2+). Nunca toca el servidor del merchant |
| Validaciones | Input validation en frontend (Luhn check) + class-validator en backend |
| CSP | Content Security Policy configurada para prevenir inyeccion de scripts |
Credenciales de Prueba
Se proporcionaran por canal seguro:
- Cuenta de Merchant Admin (acceso completo al dashboard)
- Cuenta de Merchant User (acceso limitado)
- Cuenta de System Admin (acceso administrativo)
- Tarjetas de prueba para flujo de tokenizacion
Documentacion Disponible
| Documento | Formato |
|---|---|
| OpenAPI 3.0 spec | YAML (generado automaticamente) |
| AsyncAPI spec (Kafka events) | YAML |
| GraphQL schema | SDL |
| Diagramas de flujo de datos | Mermaid (ver docs/pci-dss/data_flow_diagram.md) |
Ticket 684982 — Formacion en Codigo Seguro (Secure Coding Training)
Solicitud de ControlCase
Proveer informacion del equipo de desarrollo para la formacion en codificacion segura.
Respuesta Fintrixs
Equipo de Desarrollo
| # | Nombre | Rol | Responsabilidad | Lenguaje Principal |
|---|---|---|---|---|
| 1 | (Nombre 1) | Lead Developer / Arquitecto | Arquitectura de microservicios, CDE, seguridad | TypeScript / NestJS |
| 2 | (Nombre 2) | Backend Developer | Servicios de pago, integraciones | TypeScript / NestJS |
| 3 | (Nombre 3) | Frontend Developer | Dashboard Vue 3, checkout | TypeScript / Vue 3 |
| 4 | (Nombre 4) | DevOps / Infra | Kubernetes, Terraform, CI/CD | Bash / Terraform / YAML |
| 5 | (Nombre 5) | QA / Tester | Testing funcional y de seguridad | TypeScript / Jest |
Nota: Completar con los nombres reales del equipo. El numero de desarrolladores puede variar.
Detalles Tecnicos del Stack
| Parametro | Valor |
|---|---|
| Lenguaje principal | TypeScript (strict mode) |
| Framework backend | NestJS 10.3 |
| Framework frontend | Vue 3 (Composition API) |
| Base de datos | PostgreSQL 16 (con RLS) |
| Mensajeria | Apache Kafka (KafkaJS) |
| Containerizacion | Docker (Alpine Linux) |
| CI/CD | GitHub Actions |
| Validacion de input | class-validator (DTOs en todos los endpoints) |
| Autenticacion | JWT RS256, MFA (TOTP) |
| Cifrado | AES-256-GCM (card vault), Argon2 (passwords) |
Temas de Interes para la Formacion
Dado el stack y la naturaleza del proyecto (procesamiento de pagos, PCI DSS), los siguientes temas son de alta relevancia:
- OWASP Top 10 para APIs — Inyeccion, autenticacion rota, exposicion de datos sensibles
- Manejo seguro de datos de tarjeta — PCI DSS Req. 6.2, tokenizacion, cifrado
- Validacion y sanitizacion de input — class-validator, parametros de consulta, headers
- Gestion segura de secretos — Variables de entorno, Kubernetes Secrets, rotacion de claves
- Seguridad en contenedores — Imagenes base minimalistas, escaneo de vulnerabilidades, least privilege
- Proteccion contra ataques comunes — XSS, CSRF, SSRF, inyeccion SQL (via ORM)
- Logging seguro — Masking de PAN, no loguear datos sensibles
- Seguridad en APIs GraphQL — Introspection, query depth limiting, rate limiting
Calendario Preferido
| Parametro | Valor |
|---|---|
| Formato preferido | Online (videoconferencia) |
| Idioma | Espanol |
| Duracion maxima por sesion | 2-3 horas |
| Disponibilidad | Lunes a viernes, 09:00 - 17:00 COT (UTC-5) |
| Fechas preferidas | Abril - Mayo 2026 |
Entregables Esperados
- Material de formacion adaptado al stack (TypeScript/NestJS/Vue 3)
- Certificados individuales de completitud
- Evaluacion post-formacion (para evidencia PCI DSS Req. 6.2.2)
Resumen de Acciones por Ticket
| Ticket | Tema | Estado de Respuesta | Accion Pendiente de ControlCase |
|---|---|---|---|
| 684979 | ASV Scope & Schedule | Informacion proporcionada | Confirmar dominios exactos y programar primer escaneo |
| 684979 | ASV Whitelist IPs | Esperando IPs del escaner | Enviar lista de IPs/CIDRs de sus escaneres ASV |
| 684980 | IVA Scope | Alcance interno completo proporcionado | Confirmar si necesitan acceso autenticado o NetworkPolicy temporal |
| 684997 | Card Discovery Scope | Lista de sistemas proporcionada | Programar ejecucion de CDAT en VM CDD |
| 684991 | Segmentation Testing | Limites y controles documentados | Programar pruebas de segmentacion |
| 684995 | INPT Scanner | VM VAPT lista, acceso documentado | Indicar software a instalar y credenciales necesarias |
| 684996 | ENPT Scope | Superficie externa documentada | Programar pentest externo |
| 684992 | APT App List | Lista completa de aplicaciones proporcionada | Programar pentest de aplicaciones, solicitar credenciales de prueba |
| 684982 | Secure Coding Training | Info del equipo proporcionada | Programar sesiones de formacion |
Referencias Internas
| Documento | Ruta |
|---|---|
| Inventario de IPs Externas | docs/security/inventories/INV-001-EXTERNAL_IPS.md |
| Inventario de Tecnologia | docs/security/inventories/INV-002-TECHNOLOGY_INVENTORY.md |
| Definicion de Alcance PCI DSS | docs/pci-dss/scope_definition.md |
| Inventario de Activos | docs/pci-dss/asset_inventory.md |
| Diagrama de Red | docs/pci-dss/network_diagram.md |
| Diagrama de Flujo de Datos | docs/pci-dss/data_flow_diagram.md |
| Reglas de Firewall | docs/pci-dss/firewall_rules.md |
| Detalles VMs de Compliance | docs/pci-dss/compliance_vm_details.md |
| Checklist Pre-Auditoria | docs/pci-dss/compliance_checklist_preaudit.md |
| Estado de Tickets ControlCase | docs/pci-dss/pci_dss_contexto_fintrixs.md |
Documento generado el 2026-04-03 por el equipo de Infraestructura de Fintrixs (BIO TECHNOLOGY CENTER S.A.S.).
