PHP2Shell (CVE-2026-109618 y 109619)

PHP2Shell: vulnerabilidades críticas de ejecución remota de código en el núcleo de PHP (CVE-2026-109618 y CVE-2026-109619)

Publicado el 27 de octubre de 2026 · Alerta de vulnerabilidad · Lectura: 15 minutos

1. Resumen ejecutivo

PHP2Shell exige parchear todos los servidores PHP en un plazo máximo de 72 horas, empezando por los expuestos a Internet en las primeras 24. Son dos vulnerabilidades críticas del núcleo de PHP (CVE-2026-109618 y CVE-2026-109619, CVSS v4.0 9.2) que permiten ejecutar código en remoto sin autenticación. Afectan prácticamente a cualquier web o API construida en PHP: WordPress, Drupal, Joomla, Magento, Laravel, Symfony, MediaWiki o phpBB, entre otras.

No es un riesgo teórico. Hubo intentos de explotación desde el 17 de octubre de 2026, cuatro días antes de su publicación, y existen exploits funcionales contra PHP 8.2 a 8.5. CISA las incluyó en su catálogo de vulnerabilidades explotadas (KEV) el 26 de octubre. El fallo está en el propio lenguaje, no en el código de la aplicación, así que una aplicación bien desarrollada también es vulnerable si corre sobre una versión de PHP sin parchear.

Como arquitecto de seguridad, mi recomendación a dirección es tratarlo como un cambio de emergencia, no como un ciclo normal de parcheo. Ese cambio tiene cuatro ejes:

  • Conocer: inventario completo de dónde corre PHP, incluidos contenedores, appliances y proveedores.
  • Contener: medidas compensatorias inmediatas donde no se pueda parchear el mismo día.
  • Corregir: actualizar a las versiones corregidas y reiniciar todos los procesos.
  • Comprobar: buscar indicios de compromiso desde el 17/10 y dejar evidencia auditable de cada paso.

Este caso ilustra bien el nuevo escenario de amenazas. Las vulnerabilidades se descubren con ayuda de IA y la ventana entre publicación y explotación se mide en horas. Los procesos de parcheo de 30 días ya no son suficientes para activos expuestos.

2. Contexto técnico

Ambos fallos están en la gestión interna de memoria de PHP durante el ciclo de vida de cada petición web.

CVEDebilidad (CWE)MecanismoImpacto
CVE-2026-109618Corrupción de memoria por OOM (CWE-416)Una petición multipart manipulada agota la memoria mientras los datos internos están a medio inicializar; la limpieza posterior trabaja con datos inválidosRCE sin autenticación con privilegios del worker web
CVE-2026-109619Uso tras liberación, estado global obsoleto (CWE-416)Tras un error fatal queda estado apuntando a memoria liberada; la siguiente petición en el mismo worker lo reutilizaRCE sin autenticación y posible fuga de memoria
CVE-2026-115560Vía adicional por progreso de subida de sesiónSolo con una configuración inusual (cambio de serialize_handler en tiempo de ejecución)RCE; probabilidad baja, sin parche aún

Despliegues afectados: cualquier PHP que sirva peticiones web, es decir, Apache con mod_php, PHP-FPM, php-cgi, FrankenPHP y LiteSpeed, además de productos y appliances que incluyen PHP. El riesgo es máximo en mod_php, porque el exploit funciona con una sola petición antes de que se ejecute código de la aplicación.

Versiones afectadas y corregidas

RamaVersión corregidaObservaciones
8.58.5.12Regresión conocida con SimpleXML (issue #24488)
8.48.4.27Regresión conocida con SimpleXML (issue #24488)
8.38.3.36
8.28.2.35
7.4 a 8.1Sin release oficialBackports de código fuente o parche del fabricante LTS; solución puente
5.4 a 7.3Sin correcciónFin de vida: migrar o aislar
  • Linux: las distribuciones aplican backports y mantienen el número de versión original. Se valida contra el aviso del fabricante (RHSA, DSA, USN), no contra php -v.
  • Windows: usar las builds 8.x.y-1 publicadas el 26/10, que corrigen además CVE-2026-111497 en la librería Brotli incluida.
  • Reinicio obligatorio: instalar el paquete no parchea los procesos en ejecución; el código vulnerable sigue en memoria hasta reiniciar FPM, Apache o el contenedor.

Estado de la amenaza (27/10/2026)

FechaHito
26/10/2026CISA añade ambos CVE al catálogo KEV (plazo federal: 29/10). Exploits confirmados contra PHP 8.2–8.5
24/10/2026Explotación con éxito confirmada en honeypots con mod_php
22/10/2026Intentos con descarga de segunda fase ligados a una botnet derivada de Mirai
21/10/2026PHP publica las versiones corregidas; comienzan los escaneos masivos
20/10/2026Filtración de los identificadores CVE antes de la divulgación coordinada
17/10/2026Primer intento de explotación observado en honeypots

Los PoC públicos aún dependen de combinaciones concretas de sistema, versión y servidor web. Esa dificultad es una ventana para parchear, no un motivo para esperar.

3. Objetivos del plan

El plan persigue un resultado medible: cero activos PHP vulnerables expuestos a Internet en 24 horas y cero en toda la organización en 7 días, con evidencia auditable.

Objetivo estratégico (gobierno)

Mantener el riesgo residual dentro del apetito de riesgo aprobado por dirección y demostrar diligencia ante auditores, clientes y reguladores (ENS, NIS2, DORA o sectoriales, según aplique).

Objetivos tácticos y operativos

#ObjetivoMétrica de éxitoPlazo
O1Inventariar el 100 % de los activos con PHP (servidores, contenedores, appliances, SaaS de terceros)Inventario validado por cada responsable de plataforma12 h
O2Contener la exposición en activos que no se puedan parchear al momento100 % de activos expuestos con WAF, mitigación PHP o aislamiento24 h
O3Descartar o confirmar compromiso desde el 17/10/2026Informe de threat hunting firmado por cada activo P1/P248 h
O4Remediar con la versión corregida y reiniciar procesos100 % P1/P2 en 72 h; 100 % del parque en 7 días72 h / 7 d
O5Verificar la remediación de forma independienteReescaneo autenticado sin hallazgos de los CVE7 d
O6Formalizar las excepcionesCada excepción con responsable, control compensatorio y fecha de caducidad7 d
O7Mejorar el proceso para la siguiente alerta críticaLecciones aprendidas aprobadas y acciones en el plan de mejora30 d

Los plazos son una propuesta de referencia. Cada organización debe ajustarlos a su política de gestión de vulnerabilidades, pero para una vulnerabilidad en KEV con explotación activa no recomiendo superar las 72 horas en activos expuestos.

4. Análisis de riesgo

El riesgo inherente es crítico en activos expuestos a Internet y alto en activos internos. La amenaza es activa, el impacto es la toma de control del servidor y el ataque no requiere credenciales. Seguimos la lógica de ISO/IEC 27005 y MAGERIT: amenaza que explota una vulnerabilidad sobre un activo, con un impacto.

Amenazas

IDAmenazaActorTécnica (MITRE ATT&CK)
A1Ejecución remota de código en servidor webCiberdelincuencia, botnets, APTT1190 Exploit Public-Facing Application
A2Instalación de webshell y persistenciaCiberdelincuencia, APTT1505.003 Web Shell
A3Descarga de malware de segunda fase (botnets DDoS, criptominería)Botnets automatizadasT1105 Ingress Tool Transfer, T1496
A4Robo o cifrado de datos (ransomware)Grupos de ransomwareT1486, T1041
A5Movimiento lateral desde la DMZ a la red internaAPT, ransomwareTA0008 Lateral Movement
A6Fuga de memoria con datos de sesión o credencialesAtacante oportunistaT1212
A7Ataque a través de proveedores o SaaS con PHPCadena de suministroT1195

Debilidades y vulnerabilidades

IDDebilidadTipo
D1PHP sin parchear (CVE-2026-109618/109619)Técnica
D2Versiones de PHP fuera de soporte (≤ 8.1)Técnica / ciclo de vida
D3Inventario incompleto: activos olvidados, shadow IT, contenedores sin SBOMOrganizativa
D4Activos sin responsable (owner) identificadoOrganizativa
D5Exposición innecesaria a Internet de paneles o aplicaciones internasArquitectura
D6Ausencia de WAF o de límites de tamaño de petición en el frontalArquitectura
D7Servidores web con salida libre a Internet (sin filtrado de egress)Arquitectura de red
D8Falta de segmentación entre DMZ y red internaArquitectura de red
D9Escasa telemetría: sin EDR en servidores, sin auditoría de procesosDetección
D10Ventanas de parcheo de 30 días o más para activos expuestosProceso

Valoración

EscenarioProbabilidadImpactoRiesgo inherenteRiesgo residual objetivo
Activo expuesto, mod_php, sin parchearMuy altaMuy altoCríticoBajo (parcheado + WAF)
Activo expuesto, PHP-FPM, sin parchearAltaMuy altoCríticoBajo
Activo interno con datos sensiblesMediaAltoAltoBajo
PHP fuera de soporte sin parche posibleMuy altaMuy altoCríticoMedio (aislado, con excepción formal)
Activo interno sin datos sensiblesBajaMedioMedioMuy bajo

El impacto afecta a las cinco dimensiones del ENS: confidencialidad, integridad, disponibilidad, autenticidad y trazabilidad. Si el activo trata datos personales, una explotación confirmada es además una posible brecha a notificar en 72 horas según el art. 33 del RGPD.

5. Análisis DAFO

Las amenazas no se pueden controlar; las debilidades sí, y la primera es no saber con exactitud dónde corre PHP. El DAFO ayuda a explicar a dirección por qué la inversión debe ir a inventario, segmentación y velocidad de parcheo, no solo a más herramientas.

DAFO PHP2Shell: inventario y parcheo ágil marcan la diferencia

Juega en contra
Juega a favor

Debilidades · origen interno

  • Inventario de software incompleto o desfasado
  • Activos sin responsable claramente asignado
  • PHP fuera de soporte (8.1 o anterior)
  • Parcheo a 30 días también en activos expuestos
  • Poca telemetría en servidores web (EDR, auditd)
  • Salida libre a Internet desde la DMZ

Fortalezas · origen interno

  • Escáneres de vulnerabilidades y EASM en uso
  • WAF e IPS ya desplegados en el perímetro
  • Proceso de cambio de emergencia definido
  • SGSI o ENS con roles y responsables
  • Automatización de sistemas (p. ej. Ansible)
  • SOC con capacidad de threat hunting

Amenazas · origen externo

  • Explotación activa y entrada en CISA KEV
  • Exploits públicos que mejoran cada día
  • Botnets que automatizan el escaneo masivo
  • Ransomware y robo de datos tras el acceso
  • Proveedores y SaaS con PHP sin parchear
  • IA que acorta de días a horas la explotación

Oportunidades · origen externo

  • Parches oficiales y de distribuciones listos
  • Firmas WAF/IPS y plugins de escaneo publicados
  • IOCs y guías públicas (CERT-EU, CISA)
  • Ocasión para retirar PHP fuera de soporte
  • Impulso a inventario continuo y SBOM
  • IA defensiva para triaje y detección

Análisis DAFO · 4 cuadrantes, 24 factores

Las fortalezas reflejan lo habitual en una organización con un SGSI maduro; cada equipo debe sustituirlas por las suyas reales. La estrategia que se deriva es usar las fortalezas (escáneres, WAF, cambio de emergencia) para aprovechar las oportunidades (parches y firmas ya publicados) y cerrar las debilidades antes de que las amenazas las alcancen.

6. Plan de actuación paso a paso

El plan se ejecuta en siete fases, varias de ellas en paralelo. Se gestiona como cambio de emergencia (ITIL 4) y, si aparecen indicios de compromiso, pasa a gestión de incidente de seguridad.

Fase 0 · Activación y gobierno (hora 0)

  1. Declarar la alerta crítica, abrir el cambio de emergencia y nombrar un coordinador.
  2. Convocar al comité de cambios de emergencia (ECAB): Seguridad, Sistemas, Desarrollo, responsables de plataforma y, si aplica, el Responsable de Seguridad ENS y el DPD.
  3. Fijar un canal único de coordinación y un parte de situación cada 4–8 horas.
  4. Congelar cambios no urgentes sobre los servidores afectados.

Fase 1 · Detección e inventario (0–12 h)

  1. Superficie externa: herramienta EASM o flujo open source (Subfinder/Amass + httpx con detección de tecnología + Nuclei) para localizar todo lo expuesto que usa PHP.
  2. Servidores: escaneo autenticado (Nessus, Qualys, Rapid7, OpenVAS) y consulta del inventario de software (CMDB, agentes, Wazuh).
  3. Comprobación manual en Linux:
php -v; php -i | grep -E "Server API|Thread Safety"
ps -eo pid,user,cmd | grep -Ei "php-fpm|php-cgi|lsphp|frankenphp|httpd|apache2"
apachectl -M 2>/dev/null | grep -i php
rpm -qa | grep -i php    # o: dpkg -l | grep -i php
  1. Contenedores y Kubernetes/OpenShift: listar imágenes desplegadas y escanearlas todas con Trivy o Grype, no solo las que se llaman "php". Generar SBOM con Syft.
  2. Windows/IIS: buscar php.exe y revisar la configuración FastCGI.
  3. Terceros: pedir a proveedores y SaaS su estado frente a los CVE.
  4. Consolidar el inventario: activo, entorno, SAPI, versión y revisión de paquete, exposición, datos tratados, responsable y estado.

Fase 2 · Priorización (en paralelo con la fase 1)

PrioridadCriterioPlazo de remediación
P1Expuesto a Internet con mod_php, o versión fuera de soporteContención inmediata, parche < 24 h
P2Expuesto a Internet con FPM, CGI, LiteSpeed o FrankenPHP< 24–48 h
P3Interno con datos sensibles o accesible por terceros< 72 h
P4Interno sin datos sensibles; desarrollo y CI/CD< 7 días

Fase 3 · Contención (P1/P2 que no se puedan parchear en el acto)

  1. Configuración PHP forzada por el administrador (no sobrescribible por la aplicación), y reinicio de todos los workers:
; Pool PHP-FPM
php_admin_value[memory_limit] = -1
php_admin_flag[session.upload_progress.enabled] = off
php_admin_flag[fatal_error_backtraces] = off   ; solo PHP 8.5
php_admin_value[post_max_size] = 8M
  1. Compensar el memory_limit=-1 con límites de memoria por cgroup o contenedor (nunca con RLIMIT_AS).
  2. Frontal: WAF con firmas PHP2Shell, límite de tamaño de petición, número de campos y partes multipart; bloquear multipart en aplicaciones que no suben ficheros.
  3. IPS/IDS: activar firmas Suricata o Snort.
  4. Red: filtrado de salida desde servidores web, restricción por IP o VPN de lo que no deba ser público y aislamiento temporal de lo que no admita mitigación.

Fase 4 · Investigación de compromiso (desde el 17/10/2026)

  1. Buscar en logs de WAF y proxy peticiones multipart con PHP_SESSION_UPLOAD_PROGRESS, el user-agent php2shell-scan, marcadores como PHP2SHELL_CONFIRMED y los IOCs publicados.
  2. Buscar en logs de servidor ráfagas de errores Segmentation fault o SIGSEGV en workers.
  3. En EDR o auditd: procesos php-fpm, httpd o apache2 que lanzan sh, id, uname, wget o curl.
  4. Revisar ficheros .php modificados y binarios nuevos en /tmp, /var/tmp y /dev/shm desde el 17/10.
  5. Si hay indicios: capturar memoria y disco antes de reiniciar, aislar el host, escalar a incidente y notificar (CCN-CERT/INCIBE-CERT, autoridad de control RGPD, CSIRT NIS2 según corresponda). Un equipo comprometido se reconstruye; no se parchea encima.
  6. Recordar que la ausencia de logs no demuestra ausencia de compromiso.

Fase 5 · Remediación definitiva

  1. Actualizar a 8.5.12, 8.4.27, 8.3.36 u 8.2.35, o al paquete corregido del fabricante (validado contra su aviso).
  2. Windows: builds 8.x.y-1. Contenedores: reconstruir la imagen, reescanear y redesplegar.
  3. Versiones fuera de soporte: backport del fabricante como solución puente y plan de migración con fecha.
  4. Appliances y SaaS: aplicar el parche del fabricante o exigir su compromiso por escrito.
  5. Pruebas de no regresión, atentas a la incidencia de SimpleXML en 8.4.27 y 8.5.12.
  6. Reiniciar todos los procesos PHP y confirmar que no queda ninguno anterior al parche.

Fase 6 · Verificación independiente

  1. Reescaneo autenticado sin hallazgos de los CVE en todo el inventario.
  2. Comprobar versión y hora de arranque de cada proceso PHP en ejecución.
  3. Revisión por una persona distinta de quien aplicó el cambio (segregación de funciones).

Fase 7 · Cierre y mejora continua

  1. Formalizar excepciones con aceptación del riesgo por su propietario.
  2. Retirar las mitigaciones temporales que ya no sean necesarias, salvo session.upload_progress.enabled=0 hasta que se corrija CVE-2026-115560.
  3. Informe final, lecciones aprendidas y actualización de procedimientos, playbooks y CMDB.

7. Controles y mapeo normativo

Un mismo conjunto de controles cubre a la vez ENS, ISO 27001, NIST, COBIT e ITIL. No hay que hacer el trabajo cinco veces: se ejecuta una vez y la evidencia se reutiliza en cada marco.

ControlENS (RD 311/2022)ISO 27001:2022NIST CSF 2.0NIST SP 800-53 r5COBIT 2019 / 5ITIL 4 (práctica)
Inventario de activos y softwareop.exp.15.9ID.AM-01, ID.AM-02CM-8BAI09, BAI10Gestión de activos TI; Gestión de la configuración
Inteligencia de amenazas y vigilancia de alertasop.mon.35.7ID.RA-02SI-5, PM-16APO12.01Gestión de la seguridad de la información
Análisis y tratamiento del riesgoop.pl.1Cl. 6.1.2, 6.1.3, 8.2, 8.3GV.RM, ID.RA-05RA-3EDM03, APO12Gestión de riesgos
Gestión de vulnerabilidades y parcheoop.exp.48.8ID.RA-01, PR.PS-02RA-5, SI-2APO12, DSS05Gestión de versiones; Gestión del despliegue
Componentes fuera de soporteop.exp.48.8, 5.9PR.PS-02SA-22BAI09Gestión de activos TI
Configuración segura (bastionado de php.ini)op.exp.2, op.exp.38.9PR.PS-01CM-2, CM-6, CM-7BAI10Gestión de la configuración del servicio
Cambio de emergenciaop.exp.58.32PR.PS-01CM-3BAI06Habilitación del cambio
Perímetro, WAF y protección de aplicaciones webmp.com.1, mp.s.28.20, 8.21, 8.23PR.IR-01SC-7DSS05.02Gestión de infraestructura y plataforma
Segmentación y filtrado de salidamp.com.48.22PR.IR-01SC-7DSS05.02Gestión de infraestructura y plataforma
Registro, monitorización y detecciónop.exp.8, op.mon.18.15, 8.16DE.CM-01, DE.CM-09, DE.AEAU-6, SI-4DSS05.07Monitorización y gestión de eventos
Protección frente a código dañinoop.exp.68.7DE.CM-09SI-3DSS05.01Gestión de la seguridad de la información
Respuesta y notificación de incidentesop.exp.7, op.exp.95.24 a 5.28RS.MA, RS.AN, RS.MI, RS.COIR-4, IR-5, IR-6DSS02, DSS03Gestión de incidentes; Gestión de problemas
Proveedores y servicios externosop.ext.1, op.ext.25.19 a 5.22GV.SCSA-9, SR-3APO10Gestión de proveedores
Desarrollo seguro y dependenciasmp.sw.1, mp.sw.28.25, 8.28, 8.29PR.PS-06SA-11 (y SSDF SP 800-218)BAI03Desarrollo y gestión de software
Continuidad y disponibilidadop.cont.25.30RC.RPCP-2DSS04Gestión de la continuidad del servicio
Mejora continuaArt. 26 (mejora continua)Cl. 10.1, 10.2ID.IMCA-7MEA01Mejora continua

Guías de apoyo: NIST SP 800-40 r4 (gestión de parches en la empresa), NIST SP 800-61 r3 (respuesta a incidentes) y las guías CCN-STIC del CCN-CERT para la aplicación del ENS.

ISO/IEC 42001 (sistemas de gestión de IA)

ISO 42001 aplica en dos situaciones concretas de este caso:

  • Sistemas de IA que corren sobre PHP. Chatbots, portales con IA generativa o frontales de RAG construidos en PHP heredan la vulnerabilidad. Hay que incluirlos en el inventario y en la evaluación de riesgos del sistema de IA (cláusulas 6.1 y 8.2) y en los controles de recursos y operación del Anexo A (A.4 recursos del sistema de IA, A.6 ciclo de vida y monitorización, A.10 relación con terceros).
  • Uso de IA en la defensa. Si el SOC usa IA para triaje, análisis de logs o generación de reglas, deben respetarse los controles de uso responsable (A.9): supervisión humana de las decisiones, no enviar logs con datos personales a servicios no autorizados y registrar qué recomendaciones de la IA se aplicaron.

Este caso confirma además un cambio en el modelo de amenazas: la IA acelera tanto el descubrimiento como la explotación, y eso debe reflejarse en el análisis de riesgos y en los plazos de parcheo.

ISACA

Más allá de COBIT, el enfoque se apoya en tres referencias de ISACA:

  • Risk IT / CRISC: ciclo de identificación, evaluación, respuesta (mitigar, transferir, aceptar, evitar) y monitorización del riesgo, con dueño del riesgo identificado.
  • CISM: gobierno del programa de seguridad y gestión de incidentes (dominios 1 y 4).
  • ITAF (marco de auditoría de TI): la evidencia debe ser suficiente, fiable y pertinente para que un auditor pueda verificar la remediación sin repetir el trabajo.

8. Evidencias de remediación

Un activo se da por remediado solo cuando hay evidencia objetiva, fechada y verificada por alguien distinto de quien aplicó el cambio. "Está parcheado" sin prueba no cuenta. Las evidencias se archivan en el expediente del cambio y alimentan la Declaración de Aplicabilidad (ISO 27001) y la auditoría del ENS.

FaseEvidenciaFormatoCriterio de aceptación
0 · ActivaciónRegistro del cambio de emergencia y acta del ECABTicket ITSM, acta firmadaFecha y hora, responsables y alcance definidos
1 · InventarioInventario de activos PHP con versión, SAPI, exposición y responsableHoja de cálculo o CMDB exportadaCada activo tiene un responsable que lo ha validado
1 · InventarioInforme del escaneo inicial (EASM y autenticado)PDF o CSV de la herramientaFecha, alcance y credenciales usadas documentados
2 · PriorizaciónMatriz de priorización P1–P4Tabla en el expedienteCriterios aplicados de forma coherente
3 · ContenciónConfiguración PHP antes y después; reglas WAF/IPS activas; cambios de firewallDiff de ficheros, captura de la consola, export de reglasCambio trazado a ticket y reinicio de workers verificado
4 · InvestigaciónInforme de threat hunting por activo P1/P2Informe con consultas usadas y resultadosPeriodo cubierto desde el 17/10/2026; conclusión explícita: comprometido / no hay indicios
4 · InvestigaciónSi hay incidente: cadena de custodia, volcados de memoria, notificacionesFormularios, hashes, acuses de reciboHashes SHA-256 de cada evidencia; plazos legales cumplidos
5 · RemediaciónVersión instalada y revisión del paquete; aviso del fabricante aplicadoSalida de rpm -q/dpkg -l/php -v con fecha y hostCoincide con la versión corregida o el aviso RHSA/DSA/USN
5 · RemediaciónProcesos PHP reiniciadosSalida de ps -o lstart o reinicio del podNingún proceso arrancado antes del parche
5 · RemediaciónResultado de pruebas de no regresiónInforme de QAAprobado por el responsable de la aplicación
6 · VerificaciónReescaneo autenticado sin los CVEInforme de la herramienta0 hallazgos de CVE-2026-109618/109619 en el alcance
6 · VerificaciónRevisión independienteRegistro de la persona que verificaSegregación de funciones respecto a quien ejecutó
7 · CierreRegistro de excepciones y aceptación de riesgoFormulario firmado por el dueño del riesgoControl compensatorio y fecha de caducidad definidos
7 · CierreInforme final y lecciones aprendidasDocumento aprobadoAcciones de mejora con responsable y fecha

Para que la evidencia sea válida ante un auditor (criterios ITAF de ISACA y requisitos de auditoría del ENS):

  • Suficiente: cubre el 100 % del inventario, no una muestra.
  • Fiable: generada por la herramienta o el sistema, con fecha, hora y host visibles; no transcrita a mano.
  • Pertinente: demuestra el control exacto (versión corregida y proceso reiniciado), no solo que el paquete se descargó.
  • Íntegra: almacenada en un repositorio con control de acceso y, en caso de incidente, con hash y cadena de custodia.

9. Indicadores, excepciones y lecciones aprendidas

Dirección debe poder ver en un solo cuadro cuánto riesgo queda y a qué ritmo baja. Propongo pocos indicadores, medidos cada día hasta el cierre.

Indicadores

TipoIndicadorMeta
KPI% de activos PHP inventariados con responsable asignado100 % en 12 h
KPI% de activos expuestos parcheados o contenidos100 % en 24 h
KPI% del parque total remediado y verificado100 % en 7 días
KPITiempo medio de remediación (MTTR) en activos P1/P2< 48 h
KRINº de activos expuestos aún vulnerables0
KRINº de activos con PHP fuera de soporteTendencia a 0, con plan fechado
KRINº de activos descubiertos que no estaban en el inventarioIndica madurez del inventario; debe bajar en cada alerta
KRINº de excepciones abiertas y vencidas0 vencidas

Gestión de excepciones

Cuando un activo no se puede parchear (fuera de soporte, appliance sin parche, aplicación crítica que no tolera la regresión), se abre una excepción formal con:

  1. Justificación técnica y de negocio.
  2. Controles compensatorios aplicados y verificados (aislamiento, WAF, mitigación PHP, monitorización reforzada).
  3. Riesgo residual valorado y aceptado por escrito por el dueño del riesgo, no por el técnico.
  4. Fecha de caducidad y plan de salida (parche, migración o retirada).

Lecciones aprendidas

Al cierre conviene revisar al menos estas preguntas:

  • ¿Cuánto tardamos en saber dónde teníamos PHP? Si fueron días, el inventario no es fiable.
  • ¿Cuántos activos aparecieron sin responsable o sin estar en la CMDB?
  • ¿Las imágenes de contenedor se reconstruyen solas cuando cambia la imagen base?
  • ¿Los servidores web tienen EDR y salida a Internet restringida?
  • ¿Nuestra política de parcheo distingue entre activos expuestos con vulnerabilidades en KEV y el resto?

Las respuestas deben convertirse en acciones del plan de mejora con responsable y fecha. Mis recomendaciones mínimas: inventario continuo con EASM, SBOM en el pipeline de CI/CD, reconstrucción automática de imágenes, política de versiones de PHP soportadas y un plazo máximo de 72 horas para vulnerabilidades críticas explotadas en activos expuestos.

10. Referencias

Comentarios

Entradas populares