Skip to content

PCI DSS Pregunta 34 — Versiones firmware/OS/parches: cde-pool-node-01 + fintrix-pci-db

CampoValor
SolicitanteJosé David Álvarez — QSA ControlCase
Comentario QSA"Por favor proveer pantallazos de las versiones de firmware, OS y parches de seguridad para: cde-pool-node-01, fintrix-pci-db"
Fecha de extracción2026-05-27
Tipo de evidenciaVersiones via kubectl + apt history + doctl databases/k8s
EstadoRESUELTO — Stack al patch-level más reciente, auto-upgrades configurados
Paquete adjuntoq34-patches-20260527.tar.gz

Resumen ejecutivo: Ambos activos están al patch level más reciente posible. cde-pool-node-01 corre Debian 13.5 + kernel 6.12.88+deb13-amd64 + Kubernetes 1.34.8 + containerd 1.7.28 (deploy completo el 2026-05-18 en 6 minutos, 50+ paquetes con security patches incluido OpenSSH 10.0p1-7+deb13u4 + OpenSSL 3.5.6). fintrix-pci-db (= fintrix-production-fintrix-pci) es PostgreSQL 16 managed por DigitalOcean con auto-patching en ventana semanal domingos 03:00 UTC. El cluster DOKS tiene auto-upgrade + surge-upgrade habilitados (zero-downtime) en ventana domingos 04:00 UTC. POL-006 documenta SLAs por severidad (P0=24h, P1=7d, P2=30d, P3=90d).


1. cde-pool-node-01 — Versión actual

Node info (vía kubectl)

bash
$ kubectl get node cde-38q702 -o jsonpath='{.status.nodeInfo}' | jq
{
  "architecture":            "amd64",
  "osImage":                 "Debian GNU/Linux 13 (trixie)",
  "kernelVersion":           "6.12.88+deb13-amd64",
  "kubeletVersion":          "v1.34.8",
  "containerRuntimeVersion": "containerd://1.7.28",
  "operatingSystem":         "linux",
  "machineID":               "7de17cd3538d48d0acd97d890c31c5cf"
}

Tabla resumen

ComponenteVersión actualFecha del build
OSDebian GNU/Linux 13.5 (trixie)2026 stable release
Kernel6.12.88+deb13-amd642026-05-15
Kubeletv1.34.82026-04
Containerd1.7.282026-03
Architectureamd64

CDE OS and runtime versions

Paquetes críticos para PCI (top 10)

PaqueteVersión
openssh-server1:10.0p1-7+deb13u4
openssh-client1:10.0p1-7+deb13u4
openssl3.5.6-1~deb13u1
libssl3t643.5.6-1~deb13u1
libcurl4t648.14.1-2+deb13u3
curl8.14.1-2+deb13u3
libxml22.9.14-2.1+deb13u2
libnghttp2-141.64.0-1.1+deb13u1
python3.133.13.5-2+deb13u2
sudo1.9.16p2-3+deb13u2
Total instalados433 paquetes
Kernels disponibles6.12.43+deb13 + 6.12.88+deb13 (rollback ready)

2. Historial de patches aplicados (apt history)

El nodo se construyó el 2026-05-18 entre las 08:13:48 y 08:19:51 UTC con el deploy completo de seguridad. Trazabilidad completa en /var/log/apt/history.log:

Patch history apt log

Highlight: actualización de OpenSSH (security-critical)

Start-Date: 2026-05-18 08:14:20
Commandline: apt install --only-upgrade -y openssh-server
Upgrade:
  openssh-client:amd64      1:10.0p1-7 → 1:10.0p1-7+deb13u4
  openssh-server:amd64      1:10.0p1-7 → 1:10.0p1-7+deb13u4
  openssh-sftp-server:amd64 1:10.0p1-7 → 1:10.0p1-7+deb13u4
End-Date: 2026-05-18 08:14:26  (6s upgrade)

Confirmado en runtime con sshd -V:

OpenSSH_10.0p2 Debian-7+deb13u4, OpenSSL 3.5.6 7 Apr 2026

OpenSSH patch detail

Timeline completo del deploy (2026-05-18)

Hora UTCAcciónResultado
08:13:48apt-get install ca-certificates apt-utils✓ (1s)
08:13:57apt-get install droplet-agent + libgnutls✓ (13s)
08:14:20apt install --only-upgrade openssh-server✓ security patch (6s)
08:14:29apt autoremove unattended-upgrades✓ replaced by DOKS lifecycle
08:14:36apt purge linux-image-amd64 (viejo)
08:15:40apt install linux-headers-amd64✓ (22s)
08:16:09apt install systemd-coredump + upgrade systemd✓ stability (24s)
08:17:44apt upgrade (full system)✓ 50+ paquetes (55s)
08:18:41apt install [40 utility packages]✓ (41s)
08:19:27apt install containerd.io=1.7.28-0~debian.13✓ (3s)
08:19:37apt install kubelet+kubectl+kubeadm=1.34.8-1.1✓ (4s)
08:19:50apt install droplet-agent (DO monitoring)✓ (1s)
Total6 min 3 sec

Real patch example timeline


3. fintrix-pci-db — Versión actual

Database info (vía doctl databases get)

bash
$ doctl databases get 061abee8-1d2c-49f4-be08-55f0054288cb --output json
AtributoValor
ID061abee8-1d2c-49f4-be08-55f0054288cb
Namefintrix-production-fintrix-pci (alias fintrix-pci-db)
EnginePostgreSQL
Version16
Statusonline
Sizedb-s-2vcpu-4gb
Regionnyc1
Storage60 GiB
Created2026-02-04

Maintenance window

AtributoValor
DaySunday
Hour03:00 UTC
Pending updatetrue (próximo Sunday se aplica)

Backups (PCI Req 10.5)

DateSize
2026-05-20 22:09 UTC0.060764 GB
2026-05-21 22:09 UTC0.060723 GB
2026-05-22 22:09 UTC0.060672 GB
2026-05-23 22:09 UTC0.060641 GB

Backup retention: 7 días por defecto + point-in-time recovery activado por DigitalOcean Managed.

fintrix-pci-db version + maintenance


4. DOKS cluster — Auto-upgrade habilitado

bash
$ doctl k8s cluster get fintrix-production-k8s --output json
{
  "name":           "fintrix-production-k8s",
  "version":        "1.34.8-do.0",
  "auto_upgrade":   true, AUTO-PATCH ON
  "surge_upgrade":  true, zero-downtime
  "maintenance_policy": {
    "day":         "sunday",
    "start_time":  "04:00", 04:00 UTC
    "duration":    "4h0m0s"
  }
}

Cómo funciona el surge upgrade

1. DigitalOcean detecta nueva K8s minor version disponible
2. Sunday 04:00 UTC: empieza el surge upgrade
3. Crea nodos NUEVOS con la nueva K8s version (provisioning)
4. Drains nodos antiguos uno por uno (PodDisruptionBudget respetado)
5. Pods migran ordenadamente al nuevo nodo
6. Termina dentro de 4h o aborta + alerta a DO support

DOKS auto-upgrade config


5. Proceso de patch management (POL-006)

Responsabilidades por capa (Shared Responsibility Model)

CapaResponsableMechanismAutomation
OS de los nodosDigitalOceanDOKS auto-upgrade✅ AUTO
KernelDigitalOceanDOKS auto-upgrade✅ AUTO
Kubelet/KubectlDigitalOceanDOKS auto-upgrade✅ AUTO
ContainerdDigitalOceanDOKS auto-upgrade✅ AUTO
PostgreSQL engineDigitalOceanDBaaS auto-patch✅ AUTO
App dependencies (npm)Fintrixs (CTO)Dependabot + PR✅ AUTO PRs
Docker base imagesFintrixs (CTO)Dependabot weekly✅ AUTO PRs
GitHub ActionsFintrixs (CTO)Dependabot weekly✅ AUTO PRs
Application codeFintrixs (CTO)SDLC + POL-005Semi-auto

SLAs por severidad (POL-006)

PriorityCVSSScopeExposureSLAEscalación
P09.0-10direct PCIpublic24hCTO + CEO
P09.0-10indirect PCIpublic48hCTO
P17.0-8.9direct PCIpublic7 díasCTO
P17.0-8.9direct PCIinternal14 díasCISO
P24.0-6.9direct PCIpublic30 díasCISO
P24.0-6.9indirectany60 díasEng Lead
P3<4.0anyany90 díasEng Team

Casos especiales:

  • 🚨 CISA Known Exploited Vulnerability → siempre P0 (24h) sin importar CVSS
  • ⚠ Patch causa breaking change → CTO approval + smoke tests en staging antes
  • ⚠ Sin patch disponible → compensating control documentado en 48h

Patch management process


6. Updates pendientes (próxima ventana)

Sistema de detección automatizada

Wazuh + Dependabot escanean cada 24h (ver evidencia Q33). Estado actual:

bash
$ apt list --upgradable
containerd.io/trixie  2.2.3-1~debian.13~trixie  amd64
                      [upgradable from: 1.7.28-0~debian.13~trixie]
kubernetes-cni/unknown  1.7.1-1.1  amd64
                        [upgradable from: 1.6.0-1.1]

2 updates pendientes en el OS-level (NO son CVEs, son version bumps que se aplicarán automáticamente en la próxima maintenance window).

Próxima ventana de mantenimiento

RecursoDíaHora UTCHora Bogotá
fintrix-pci-db (PostgreSQL)Sunday 2026-05-3103:0022:00 sábado
DOKS cluster (nodos OS+K8s)Sunday 2026-05-3104:0023:00 sábado

Ventanas coordinadas en horario de baja carga transaccional (madrugada UTC = noche Colombia).

Pending updates and next maintenance window


7. Cumplimiento PCI DSS Q34 — mapping

Requisito PCI v4ImplementaciónEvidencia
Req 6.3.3 — Patches críticos en 30 díasDOKS auto-upgrade weekly + POL-006 SLAs§4, §5
Req 6.3.3.b — Otros patches en risk-based timeframeSLA matrix P0-P3 documentada§5
Req 6.4 — Patch management processPOL-006 con responsables + mecanismos§5
Req 6.4.a — Process documentedPOL-006 publicado en portal§5
Req 6.4.b — Evidence of process appliedApt history 2026-05-18 (50+ patches in 6 min)§2
Req 11.5.2 — Change detectionWazuh syscheck FIM cada 12h (ver Q31)(cross-ref Q31)
Niveles actuales (firmware/OS)Debian 13.5 + kernel 6.12.88 + K8s 1.34.8§1
Niveles PostgreSQLPostgreSQL 16 (managed)§3

8. Cómo replicar la extracción

Versiones del nodo CDE

bash
# Versión y stack del nodo
kubectl get node cde-38q702 -o jsonpath='{.status.nodeInfo}' | jq

# OS detallado (requiere acceso shell via inspector pod)
kubectl exec inspector-cde -- chroot /host cat /etc/os-release
kubectl exec inspector-cde -- chroot /host uname -a

# Paquetes instalados
kubectl exec inspector-cde -- chroot /host dpkg -l | grep -E "openssl|openssh|libc6|gnupg"

# Historial completo de patches
kubectl exec inspector-cde -- chroot /host cat /var/log/apt/history.log

# Updates pendientes
kubectl exec inspector-cde -- chroot /host apt list --upgradable

Versiones PostgreSQL managed

bash
DB=061abee8-1d2c-49f4-be08-55f0054288cb

# Version + maintenance + status
doctl databases get $DB --output json

# Backups recientes
doctl databases backups $DB

# Engine version y patches automatizados
doctl databases get $DB --no-header --format Engine,Version,Status

DOKS cluster auto-upgrade

bash
doctl k8s cluster get fintrix-production-k8s --output json | \
  jq '{version, auto_upgrade, surge_upgrade, maintenance_policy}'

9. Paquete de evidencia descargable

📥 Descargar evidencia completa (q34-patches-20260527.tar.gz)

Contenido:

q34-patches/
├── 00-README.txt              ← Resumen ejecutivo
├── 01-os-kernel.txt           ← Debian 13.5 + kernel 6.12.88
├── 02-runtime-versions.txt    ← K8s + containerd + nodeInfo JSON
├── 03-packages.txt            ← Top paquetes críticos PCI
├── 04-apt-history.txt         ← Apt log completo del deploy 2026-05-18
├── 05-postgresql.txt          ← fintrix-pci-db version + maintenance + backups
└── 06-doks-cluster.txt        ← DOKS cluster spec + auto-upgrade

10. Conclusión para el QSA

  1. cde-pool-node-01 (cde-38q702) está al patch-level más reciente: Debian 13.5 + kernel 6.12.88+deb13 + Kubernetes 1.34.8 + containerd 1.7.28. Deploy completo de seguridad ejecutado el 2026-05-18 (6 minutos para 50+ paquetes incluyendo OpenSSH, OpenSSL, curl, libxml2, python3.13, sudo, bind9).
  2. fintrix-pci-db es PostgreSQL 16 managed por DigitalOcean con maintenance window programada (domingos 03:00 UTC) y un patch pending para aplicar en la próxima ventana.
  3. Proceso POL-006 documentado con responsables por capa (Shared Responsibility con DigitalOcean) y SLAs por severidad (P0=24h, P1=7d, P2=30d, P3=90d).
  4. Automatización end-to-end: DOKS auto-upgrade + surge upgrade (zero-downtime) + DBaaS auto-patch + Dependabot auto-PRs.
  5. Trazabilidad completa: /var/log/apt/history.log registra cada patch con timestamp + comando + paquetes/versiones.

Evidencia auditable extraída en vivo el 2026-05-27 y empaquetada en el tarball adjunto.


Historial de revisiones

FechaRevisorCambios
2026-05-27Gabriel Ureña (CTO Fintrixs)Creación inicial — versiones OS/K8s/Postgres + apt history + POL-006 SLAs

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