Requisitos OK
5
de 12 requisitos
Cumplimiento Parcial
5
requieren acción
Pendientes Críticos
1
pentest vencido
N/A (Cloud)
1
Acceso físico AWS
Score de Cumplimiento
65%
cumplimiento
⚠ En Progreso
5 requisitos completados, 5 parciales y 1 crítico pendiente. Objetivo: 100% antes de diciembre 2026.
! Gaps Críticos Detectados
ALTA
REQ 3
CVV en logs de entorno staging
Se han detectado trazas con datos CVV/CVV2 en los logs del entorno de staging. PCI DSS prohíbe el almacenamiento de SAD post-autorización bajo cualquier circunstancia.
→ Remediación inmediata · Plazo: 30 junio 2026
ALTA
REQ 11
Pentest desactualizado (18 meses)
El último test de penetración se realizó hace 18 meses. PCI DSS v4.0 exige pentest interno anual y externo semestral para el CDE.
→ Contratar auditor externo · Plazo: 31 julio 2026
MEDIA
REQ 10
Retención de logs insuficiente (6m vs 12m)
PCIAuditLogger configurado con retención de 6 meses. PCI DSS requiere retención mínima de 12 meses con 3 meses disponibles online.
→ Ampliar política de retención · Plazo: 31 agosto 2026
MEDIA
REQ 6
Dependencias desactualizadas en 2 microservicios
Microservicios payment-gateway y invoice-service tienen dependencias con CVEs conocidas. Se requiere patch management continuo.
→ Actualizar dependencias · Plazo: 15 julio 2026
MEDIA
REQ 7
Sin revisión semestral de roles PCI
El decorator @require_pci_access está implementado pero no hay proceso documentado de revisión periódica de accesos al CDE.
→ Establecer proceso de revisión · Plazo: 30 septiembre 2026
Los 12 Requisitos PCI DSS v4.0
PayNow SaaS · Autoevaluación junio 2026
REQ 01
Configuración de red y firewall
Reglas de ingress/egress en AWS Security Groups. Solo puertos 443 y 22 (VPN) abiertos hacia el CDE.
Implementado
REQ 02
Sin contraseñas por defecto
Política de hardening documentada. Todas las instancias AWS inicializadas con credenciales únicas. Política de rotación cada 90 días.
Implementado
REQ 03
Protección de datos almacenados
PAN cifrado AES-256-GCM en RDS. CVV nunca almacenado en producción, pero detectado en logs de staging. Tokenización Stripe activa.
⚠ Parcial — Gap crítico
REQ 04
Cifrado en tránsito
TLS 1.3 forzado con flask-talisman. HSTS habilitado. Certificados Let's Encrypt con renovación automática. Sin TLS 1.0/1.1.
Implementado
REQ 05
Protección contra malware
AWS GuardDuty activo con alertas en tiempo real. Imágenes Docker escaneadas con Trivy en CI/CD. Sin software no autorizado en CDE.
Implementado
REQ 06
Desarrollo seguro y parches
Proceso SDLC documentado. Dependabot activo en GitHub. Pendiente: 2 microservicios con CVEs sin parchear (payment-gateway, invoice-service).
⚠ Parcial — Parches pendientes
REQ 07
Control de acceso por necesidad
Decorator @require_pci_access implementado. Roles definidos. Sin proceso de revisión semestral documentado. Privilege access management pendiente.
⚠ Parcial — Sin revisión periódica
REQ 08
Autenticación e identidad
MFA obligatorio para todos los accesos al CDE (Okta). Cuentas de servicio con credenciales rotadas. Sin cuentas compartidas.
Implementado
REQ 09
Control de acceso físico
Infraestructura 100% cloud (AWS eu-west-1). Responsabilidad compartida AWS. No aplica para activos propios. Cubierto por certificación AWS ISO 27001.
N/A — Cloud puro
REQ 10
Monitorización y logs de acceso
PCIAuditLogger implementado con registro de todos los accesos al CDE. Retención actual: 6 meses (insuficiente). PCI exige 12 meses.
⚠ Parcial — Retención insuficiente
REQ 11
Pruebas regulares de seguridad
Último pentest: noviembre 2024 (18 meses). Sin vulnerability scanning reciente del CDE. PCI v4.0 requiere pentest anual + ASV trimestral.
Pendiente — Acción urgente
REQ 12
Política de seguridad de la información
Política de seguridad existe (v1.2, 2024). Sin revisión anual documentada. Programa de formación PCI para empleados pendiente de actualización.
⚠ Parcial — Sin revisión anual
Implementaciones de Referencia
Python · Flask · Stripe · cryptography
Sanitización de Logs
Tokenización Stripe
Cifrado AES-256-GCM
# payment_data.py — PayNow SaaS · PCI DSS Req 3 # Sanitiza logs eliminando CVV/PIN y enmascarando PAN class PaymentData: """Manejo seguro de datos de tarjeta conforme PCI DSS.""" # Datos PROHIBIDOS — jamás almacenar (SAD post-autorización) PROHIBITED_FIELDS = ['cvv', 'cvv2', 'cvc', 'pin', 'track_data'] def sanitize_log(self, data: dict) -> dict: """Elimina SAD y enmascara PAN antes de escribir en logs.""" sanitized = data.copy() # Enmascarar PAN: mostrar solo primeros 6 y últimos 4 dígitos if 'card_number' in sanitized: card = sanitized['card_number'] sanitized['card_number'] = f"{card[:6]}{'*' * (len(card)-10)}{card[-4:]}" # Ej: 424242******4242 # Eliminar TODOS los campos prohibidos for field in self.PROHIBITED_FIELDS: sanitized.pop(field, None) return sanitized def validate_no_prohibited_storage(self, data: dict): """Valida que no se intente persistir datos prohibidos.""" violations = [f for f in self.PROHIBITED_FIELDS if f in data] if violations: raise SecurityError( f"[PCI-REQ3] Intento de almacenar datos prohibidos: {violations}" ) # Uso en flujo de pago handler = PaymentData() safe_log = handler.sanitize_log({ 'card_number': '4242424242424242', 'cvv': '123', # ← se elimina automáticamente 'amount': 4999, 'currency': 'eur' }) # safe_log = {'card_number': '424242******4242', 'amount': 4999, 'currency': 'eur'}
Roadmap de Remediación
Objetivo: Auditoría SAQ-D — Diciembre 2026
!
Junio 2026 · Inmediato
Sprint Crítico — Purga CVV en logs de staging
- Auditar todos los handlers de logs en staging environment
- Aplicar sanitize_log() a todos los puntos de entrada
- Rotar credenciales de staging tras la purga
- Añadir test unitario que verifique ausencia de CVV en salidas de log
2
Julio 2026
Pentest externo + Actualización de dependencias
- Contratar auditor externo PCI QSA para pentest del CDE
- Actualizar dependencias en payment-gateway e invoice-service
- Configurar ASV (Approved Scanning Vendor) trimestral
- Integrar OWASP ZAP en pipeline CI/CD
3
Agosto — Septiembre 2026
Retención de logs + Revisión de roles
- Ampliar retención de PCIAuditLogger a 12 meses (CloudWatch Logs archival)
- Configurar dashboards de alerta en tiempo real para accesos anómalos
- Implementar proceso semestral de revisión de roles con Okta
- Documentar matriz de acceso al CDE por rol y función
4
Octubre — Noviembre 2026
Política de seguridad + Formación PCI
- Actualizar política de seguridad a v2.0 con revisión anual formal
- Completar formación PCI DSS para todos los empleados con acceso al CDE
- Simulacro de auditoría SAQ-D interna
- Corrección de hallazgos del simulacro
✓
Diciembre 2026
Auditoría SAQ-D — Certificación PCI DSS Nivel 3
- Presentar SAQ-D completado al banco adquirente
- Obtener certificado de cumplimiento PCI DSS v4.0
- Establecer ciclo de revisión continua (revisión trimestral interna)