Skip to content

POL-005: Política de SDLC Seguro y Gestión de Cambios

CampoValor
IDPOL-005
Versión1.0
ClasificaciónInterno — Confidencial
Fecha de Emisión2026-03-13
Próxima Revisión2027-03-13
PropietarioCISO / Líder de Desarrollo
PCI DSSRequisito 6
Preguntas ControlCaseQ35, Q37, Q38, Q39, Q40, Q41, Q42, Q43, Q1030

1. Propósito

Definir el ciclo de vida de desarrollo de software seguro (Secure SDLC) y el proceso de gestión de cambios para todas las aplicaciones que almacenan, procesan o transmiten datos de tarjetas.

2. Ciclo de Vida de Desarrollo Seguro

2.1 Fases del SDLC

Requisitos → Diseño → Desarrollo → Pruebas → Despliegue → Operación → Decomiso
    │           │          │           │          │           │           │
    ▼           ▼          ▼           ▼          ▼           ▼           ▼
 Análisis    Threat    Coding     SAST/DAST   Change     Monitoring   Secure
 de riesgo   Model    Standards   Security    Mgmt       & Logging    Wipe
                                  Testing     Process

2.2 Requisitos de Seguridad por Fase

FaseActividad de SeguridadResponsable
RequisitosIdentificar requisitos de seguridad, clasificación de datosProduct Owner + Seguridad
DiseñoThreat modeling, revisión de arquitecturaArquitecto + Seguridad
DesarrolloCodificación segura, peer reviewDesarrolladores
PruebasSAST, DAST, pruebas de seguridadQA + Seguridad
DespliegueGestión de cambios, verificación pre-producciónDevOps + Seguridad
OperaciónMonitoreo, gestión de vulnerabilidadesDevOps

3. Estándares de Codificación Segura

3.1 Vulnerabilidades a Prevenir (OWASP Top 10)

VulnerabilidadControl ImplementadoEvidencia
Injection (SQL, NoSQL, OS)Parameterized queries, ORM (TypeORM), DTOs con class-validatorCódigo fuente
Broken AuthenticationJWT RS256, MFA, Argon2id, account lockoutauth-service
Sensitive Data ExposureTokenización, AES-256-GCM, TLS 1.2+, masking de PANtokenization-service
XXEParser JSON (no XML), si XML: deshabilitación de external entitiesConfiguración
Broken Access ControlRLS, RBAC, JWT claims validationDB policies, guards
Security MisconfigurationHardening de imágenes, no defaults, security headersDockerfiles, Kong
XSSOutput encoding, CSP headers, X-XSS-ProtectionKong headers
Insecure DeserializationValidación estricta de DTOs, no eval()class-validator
Using Components with Known Vulnerabilitiesnpm audit, Trivy, Snyk en CI/CDci.yml pipeline
Insufficient LoggingStructured logging, audit triggerspackages/logging

3.2 Prácticas Prohibidas

  • eval() o ejecución dinámica de código
  • Contraseñas o secretos hardcodeados en código fuente
  • Queries SQL construidas por concatenación de strings
  • Almacenamiento de PAN/CVV/SAD fuera del vault
  • Commits directos a main sin PR
  • Despliegue sin aprobación

4. Revisión de Código

4.1 Revisión Obligatoria

Todo código que toca el CDE (tokenization-service, card-vault-service, auth-service) requiere:

RequisitoDetalle
RevisorAl menos 1 persona diferente al autor
Calificación del revisorExperiencia demostrable en seguridad de aplicaciones
HerramientaGitHub Pull Request con review aprobado
AlcanceVulnerabilidades de seguridad comunes (OWASP), lógica de negocio, manejo de datos sensibles
AprobaciónReview aprobado requerido antes de merge a main

4.2 SAST Automatizado

  • Herramienta: npm audit + ESLint security rules en CI/CD
  • Frecuencia: Cada push / PR
  • Pipeline: .github/workflows/ci.yml
  • Los hallazgos de severidad HIGH o CRITICAL bloquean el merge

4.3 Registros de Revisión

  • Historial de PRs en GitHub con comentarios de revisión
  • Informe de code review con: fecha, revisor, hallazgos, resolución

5. Separación de Entornos

5.1 Entornos

EntornoPropósitoDatosAcceso
Desarrollo (local)Codificación y unit testsDatos sintéticosDesarrolladores
CI (GitHub Actions)Tests automatizadosDatos generados por fixturesAutomatizado
StagingPruebas de integraciónDatos sintéticosDev + QA
ProducciónOperación realDatos realesDevOps (restringido)

5.2 Separación Lógica

  • Cada entorno tiene su propia base de datos, credenciales y configuración
  • Kubernetes namespaces diferentes por entorno (cuando aplique)
  • Network Policies impiden comunicación cross-entorno
  • Variables de entorno diferentes por entorno (Kubernetes ConfigMaps/Secrets)

5.3 Separación de Deberes (Q39)

RolDesarrolloStagingProducción
DesarrolladoresRead/WriteReadNo acceso directo
QAReadRead/WriteNo acceso directo
DevOpsReadReadRead/Write (con MFA)
CI/CD PipelineN/ADeploy autoDeploy auto (con aprobación)
  • Los desarrolladores no pueden desplegar directamente a producción
  • Solo el pipeline CI/CD con aprobación puede desplegar a producción
  • Esto asegura que solo cambios revisados y aprobados llegan a producción

6. Datos de Prueba (Q40)

6.1 Generación de Datos de Prueba

  • Los datos de prueba se generan mediante fixtures y factories en código
  • Se utilizan generadores de datos falsos (ej: faker.js) para nombres, emails, direcciones
  • PANs de prueba: solo se usan PANs de prueba estándar de la industria:
    • 4111 1111 1111 1111 (Visa test)
    • 5500 0000 0000 0004 (Mastercard test)
    • Nunca se usa PAN real en entornos inferiores

6.2 Limpieza Pre-Producción

  • Antes de promover código a producción, se verifica que:
    • No existen datos de prueba hardcodeados
    • No existen cuentas de prueba
    • Los fixtures no se ejecutan en producción
    • Variables de entorno apuntan a recursos de producción (no dev)

7. Gestión de Cambios

7.1 Tipos de Cambio

TipoEjemplosAprobaciónVentana
EstándarFeature nueva, refactoringPR review + merge approvalHorario laboral
SignificativoNueva integración, cambio de DB schema, nuevo servicioPR review + Oficial de SeguridadVentana de cambio programada
Parche de seguridadCVE fix, dependency updatePR review expeditoInmediato
EmergenciaHotfix producciónPost-factum (dentro de 24h)Inmediato

7.2 Información en Registros de Cambio

Todo cambio debe incluir:

CampoDescripción
ID del cambioNúmero de PR o ticket
DescripciónQué se cambia y por qué
FechaCuándo se implementa
SolicitanteQuién hace el PR
AprobadorQuién aprueba (diferente al solicitante)
ImpactoSistemas afectados, riesgo
PruebasResultados de CI/CD + pruebas manuales
Plan de reversiónCómo hacer rollback

7.3 Plan de Reversión

  • Todo cambio en producción debe tener un plan de rollback documentado
  • Para Kubernetes: kubectl rollout undo deployment/<service>
  • Para DB migrations: script de rollback SQL
  • Para configuración: revert del commit en Git

8. Protección de Aplicaciones Web Públicas (Q43)

8.1 WAF (Web Application Firewall)

  • Kong Gateway actúa como WAF con los siguientes plugins:
    • Rate Limiting (protección contra DDoS)
    • IP Restriction (whitelist/blacklist)
    • Request Size Limiting (prevención de payloads grandes)
    • Bot Detection
    • CORS (Cross-Origin Resource Sharing)

8.2 Security Headers

Configurados en Kong para todas las respuestas:

  • Strict-Transport-Security: max-age=31536000; includeSubDomains
  • X-Content-Type-Options: nosniff
  • X-Frame-Options: DENY
  • X-XSS-Protection: 1; mode=block
  • Content-Security-Policy: default-src 'self'
  • Referrer-Policy: strict-origin-when-cross-origin

8.3 Monitoreo de WAF

  • Alertas configuradas para eventos de seguridad de Kong
  • Revisión de logs de WAF (rate limit hits, blocked IPs)
  • Actualización de reglas ante nuevas amenazas

9. Scripts de Página de Pago (Q1030)

9.1 Inventario de Scripts

Se mantiene un inventario de todos los scripts que se ejecutan en páginas de pago, incluyendo:

  • Scripts propios (first-party)
  • Scripts de terceros (analytics, fraud detection)
  • Justificación escrita de por qué cada script es necesario

9.2 Autorización e Integridad

  • Content Security Policy (CSP) restringe qué scripts pueden ejecutarse
  • Subresource Integrity (SRI) para scripts de terceros
  • Revisión trimestral del inventario de scripts

10. Entrenamiento de Codificación Segura (Q42)

10.1 Material de Entrenamiento

  • OWASP Top 10 aplicado a Node.js/TypeScript/NestJS
  • Prácticas seguras con PostgreSQL (parameterized queries, RLS)
  • Manejo seguro de datos de tarjetas (PCI DSS for developers)
  • Gestión de secretos y variables de entorno

10.2 Frecuencia

  • Anual: Todo el equipo de desarrollo y QA
  • Onboarding: Nuevos desarrolladores antes de acceder al código

10.3 Registros

Se mantienen registros de finalización de entrenamiento con:

  • Nombre del participante
  • Fecha de finalización
  • Material cubierto
  • Resultado de evaluación (si aplica)

Historial de Revisiones

VersiónFechaAutorCambios
1.02026-03-13Líder de Desarrollo / SeguridadDocumento inicial

Aprobación

RolNombreFirmaFecha
CISO / Oficial de Seguridad__________________________________//____
Gerencia Ejecutiva__________________________________//____

Documentación Confidencial — Solo para uso interno y auditoría PCI DSS