En resumen: un benchmark CIS para servidores web ofrece ajustes concretos y específicos de cada versión para el sistema operativo y el servidor web, por ejemplo para Ubuntu, Debian, RHEL, Nginx o Apache. Los módulos del IT-Grundschutz (protección básica de TI) de la BSI, la Oficina Federal alemana de Seguridad de la Información, describen además qué requisitos rigen para servidores web, aplicaciones web, gestión de parches y registro de eventos. Juntos forman una norma de refuerzo verificable; los ajustes específicos de PHP los añade usted mismo.
Por qué «bien configurado» no es un criterio
Tras un incidente, la dirección, la aseguradora o los auditores acaban haciendo la misma pregunta: ¿según qué estándar estaba configurado el servidor? La respuesta honesta en muchas empresas es: según el leal saber y entender del administrador que lo montó entonces. No es necesariamente malo, pero no es ni trazable ni repetible.
PHP2Shell lo ha puesto de manifiesto. Quien quería saber qué servidores estaban afectados, qué modo de funcionamiento de PHP se ejecutaba y cuándo se parcheó por última vez tuvo que empezar a buscar en muchos sitios. Un estándar de refuerzo no sustituye a una actualización, pero crea justo ese orden: ajustes definidos, un inventario y revisiones periódicas.
Dos obras han demostrado su utilidad para ello: los benchmarks CIS del Center for Internet Security y el IT-Grundschutz de la BSI.
Qué contiene un benchmark CIS para servidores web
Los benchmarks CIS son recomendaciones de configuración basadas en el consenso, elaboradas conjuntamente por especialistas de muchas organizaciones. Según CIS, existen para más de 25 familias de productos. Para servidores web PHP son relevantes sobre todo estos: Ubuntu Linux, Debian Linux y Red Hat Enterprise Linux para el sistema operativo, y Apache HTTP Server 2.4 y NGINX para el servidor web.
Cada benchmark es una lista de recomendaciones individuales con justificación, instrucción de comprobación y corrección. Muchos benchmarks distinguen un perfil básico, que puede aplicarse sin grandes efectos secundarios, y un perfil más estricto para necesidades de protección mayores. Para la comprobación automática, CIS ofrece herramientas, en el entorno de los benchmarks bajo el nombre CIS-CAT.
La ventaja es la precisión: en lugar de «asegurar SSH», indica qué ajuste debe tener qué valor y cómo comprobarlo. La desventaja es el volumen. Un benchmark completo para un sistema Linux contiene muchísimos puntos, y no todos encajan con todas las operaciones.
Preste atención además a la versión. Los benchmarks valen cada uno para determinadas versiones: la relación de CIS incluye, por ejemplo, ediciones separadas para versiones LTS de Ubuntu hasta la 26.04, para Debian 9 a 13 y para RHEL 8, 9 y 10. Quien aplica un benchmark de una versión antigua a un sistema nuevo comprueba en parte ajustes que ya no existen allí y pasa por alto los nuevos. Si en un servidor aún se ejecuta un sistema operativo sin soporte del fabricante, eso ya es en sí el hallazgo más importante.
Los módulos de la BSI adecuados para servidores web PHP
El IT-Grundschutz de la BSI trabaja con módulos que describen requisitos para sistemas y procesos. Actualmente está vigente el compendio del IT-Grundschutz en la edición 2023. La BSI está transformando el IT-Grundschutz en un conjunto de normas orientado a procesos y legible por máquina; según la BSI, el compendio actual seguirá siendo aplicable durante un período transitorio de varios años.
Para un servidor web PHP, estos módulos son los más importantes:
| Módulo | Contenido | Relación con el servidor web PHP |
|---|---|---|
| APP.3.2 Servidor web | Operación y configuración del servidor web | Nginx, Apache, LiteSpeed |
| APP.3.1 Aplicaciones web y servicios web | Requisitos para la aplicación | CMS, tienda, software PHP propio |
| SYS.1.3 Servidores bajo Linux y Unix | Refuerzo del sistema operativo | Base de todo servidor web Linux |
| OPS.1.1.3 Gestión de parches y cambios | Aplicación regulada de actualizaciones | Actualizaciones de PHP, reinicios, evidencias |
| OPS.1.1.5 Registro de eventos | Captura y análisis de eventos | Logs de acceso y de errores |
| CON.3 Concepto de copias de seguridad | Copias de seguridad y restauración | Copia de seguridad del código y de la base de datos |
| CON.10 Desarrollo de aplicaciones web | Desarrollo seguro | Proyectos PHP propios |
El Grundschutz es menos concreto que un benchmark CIS, pero cubre procesos que no aparecen en ningún archivo de configuración: quién parchea, quién comprueba, a quién se informa.
CIS o BSI: ¿qué encaja con su empresa?
La elección depende menos de la técnica que del entorno. Una regla general:
- Base técnica para servidores individuales: benchmark CIS para el sistema operativo y el servidor web, complementado con una norma propia para PHP.
- Administración pública, clientes con referencia al Grundschutz, sectores regulados: IT-Grundschutz como marco y benchmarks CIS para la aplicación concreta.
- Empresas con ISO 27001 o TISAX: ambas obras sirven como fundamento técnico de las propias políticas; véase ISO 27001 y TISAX: qué afecta al servidor web.
- Empresas sujetas a NIS2: un estándar de refuerzo documentado ayuda a demostrar medidas adecuadas. Lo que exige la directiva lo resume NIS2 y seguridad del servidor web; en cada caso concreto decide su asesoría jurídica.
Para PHP en sí, debería completar las normas del servidor: valores bloqueados en php.ini, pools de FPM separados, sin ejecución en las carpetas de subidas. Una buena base la ofrece la guía Configurar php.ini de forma segura.
Hacia una norma de refuerzo propia en seis pasos
Un estándar solo sirve si llega a la operación. Este procedimiento ha dado buen resultado:
- Crear un inventario: ¿qué servidores, sistemas operativos, servidores web y versiones de PHP se ejecutan dónde?
- Elegir benchmark y módulos, adecuados a la versión y a la necesidad de protección.
- Comprobar el estado actual, a ser posible de forma automatizada, y recopilar las desviaciones.
- Valorar las desviaciones: aplicar, aceptar conscientemente o compensar con otras medidas, siempre con justificación.
- Fijar la norma, idealmente como automatización de la configuración, de modo que los servidores nuevos estén reforzados desde el principio.
- Volver a comprobar con regularidad y tras actualizaciones importantes, porque los paquetes nuevos a veces traen valores predeterminados nuevos.
El paso 6 enlaza el refuerzo con el proceso de parches. Cómo aplicar actualizaciones de forma planificada y no precipitada lo describe La gestión de parches como proceso, no como apagafuegos.
Pruebe los perfiles estrictos primero en un sistema de staging. Algunas recomendaciones, por ejemplo sobre sistemas de archivos o servicios de red, pueden interrumpir aplicaciones o accesos remotos.
¿Cómo ayuda PHP SOS en concreto?
- Registramos sus servidores web y asignamos a cada uno el benchmark CIS adecuado y los módulos de Grundschutz relevantes.
- Comprobamos el estado actual y entregamos una lista priorizada de desviaciones, con esfuerzo y beneficio.
- Completamos la norma con una base PHP para php.ini, pools de FPM y permisos de archivos.
- Documentamos las excepciones deliberadas de modo que auditores y aseguradoras puedan seguirlas.
Nos encargamos de la aplicación en el marco del refuerzo de servidores web PHP.
Preguntas frecuentes
¿Tengo que aplicar todas las recomendaciones de un benchmark CIS?
No. Los benchmarks son un criterio de referencia, no una ley. Algunas recomendaciones no encajan con su operación o perturbarían funciones. Lo importante es decidir las desviaciones de forma consciente, justificarlas y documentarlas.
¿Son competidores los benchmarks CIS y el IT-Grundschutz?
Más bien se complementan. Los benchmarks CIS ofrecen ajustes concretos por producto y versión. El IT-Grundschutz describe requisitos para sistemas y procesos, por ejemplo la gestión de parches y el registro de eventos, y los integra en un sistema de gestión.
¿Existe un estándar de refuerzo específico para PHP?
Los ajustes de PHP suelen aparecer solo de pasada en los estándares de servidor habituales. En la práctica se completan las normas del servidor con una base propia para PHP, por ejemplo para php.ini, pools de FPM y permisos de archivos, y para la aplicación se toman como referencia los módulos sobre aplicaciones web.
¿Habría evitado un benchmark CIS PHP2Shell?
No. PHP2Shell son vulnerabilidades del intérprete de PHP, frente a las cuales solo ayuda la actualización. Pero un servidor reforzado puede limitar las consecuencias de una intrusión y, con una gestión de parches regulada, conseguir que las actualizaciones se apliquen más rápido y de forma demostrable.
¿Es el IT-Grundschutz demasiado grande para las pequeñas empresas?
Como sistema de gestión completo, a menudo sí. Pero los módulos individuales pueden usarse bien como lista de comprobación para servidores web y aplicaciones web, sin adoptar de golpe todo el procedimiento.