Estrategia DigitalPortales y DXP

Seguridad en Drupal: Razones por las que Drupal es el CMS más seguro

10 Mins de lectura

Descubre cómo podemos ayudarte a construir un sitio web seguro con Drupal.

A la hora de seleccionar una tecnología para desarrollar un CMS, Drupal se encuentra entre las tres tecnologías más usadas en Internet, alcanzando casi el 2% del total de sitios web a nivel mundial. No obstante, si por algo destaca Drupal frente a sus competidores directos, además de por su complejidad, es por ser el CMS más seguro hasta la fecha, especialmente desde el lanzamiento de Drupal 8.

Drupal es un CMS que se usa en distintos entornos (gubernamentales, públicos, educativos, corporativos…), destaca por su robusta arquitectura, posee una gran comunidad activa y una variedad de mecanismos de protección integrados.

En el siguiente artículo, exploramos a grandes rasgos cómo garantizar la seguridad de nuestro sitio Drupal y asegurar unas buenas prácticas en el desarrollo y en la configuración de la infraestructura elegida.

 

Características por las que Drupal es más seguro

Ya hablamos en un artículo anterior sobre las actualizaciones de seguridad de Drupal, y en este artículo tratamos por qué Drupal cuenta con un conjunto de aspectos y características que lo convierten en el CMS más seguro del mercado, entre los que se encuentran:

#1 – El equipo de seguridad de Drupal

Drupal.org cuenta con dos equipos encargados de la seguridad que trabajan conjuntamente para que el core de la plataforma y todos sus módulos sean siempre seguros. El primero de ellos, el equipo de seguridad de Drupal, que cuenta con entre 30 y 40 desarrolladores en todo el mundo, más que en cualquier compañía con software propietario. Estos, además de encontrar y solucionar anomalías de forma regular, ejercen como consejeros de seguridad para el resto de desarrolladores, tanto de módulos contribuidos como los encargados de la infraestructura principal de Drupal.

Por otro lado, se encuentra el grupo de trabajo de seguridad, encargados de revisar las medidas tomadas por el equipo de seguridad de Drupal y de proveerles de todos los recursos necesarios. Además, ofrecen continuos consejos sobre buenas prácticas a todos los desarrolladores de plataformas Drupal para ayudar a que sus sistemas sean más seguros.

#2 – La comunidad de Drupal

Drupal cuenta con una de las comunidades de desarrolladores más grandes y extendidas del mundo, con más 1 millón de desarrolladores trabajando sobre la plataforma. Esto implica que hay gente trabajando continuamente, casi las 24 horas del día, con código de Drupal, ya sea del core o de módulos contribuidos, por lo que las anomalías y los fallos se detectan y solucionan muy rápido, ya sea por aportaciones de la comunidad o por el propio equipo de seguridad de Drupal. Esto también significa que es extremadamente poco común que una vulnerabilidad en la seguridad llegue a cualquier versión del core de Drupal.

Según el propio fundador de Drupal y encargado último del proyecto, Dries Buytaert, cuando le llega un parche para el core de Drupal, dicho parche ya ha pasado por entre 20 y 30 personas antes que él, entre desarrolladores de la comunidad y de los equipos de seguridad de Drupal.

#3 – Cumple con los estándares del OWASP

Contar con una comunidad tan grande y con equipos de seguridad dedicados exclusivamente al buen funcionamiento de la plataforma son dos aspectos tremendamente beneficiosos, pero todo su trabajo sería mucho más complicado si Drupal no estuviese bien construido desde su base.

La Open Web Application Security Project es una organización benéfica sin ánimo de lucro que se encarga de regularizar y mejorar la seguridad en el software. Drupal está construido sobre los estándares de la OWASP y, en consecuencia, cumple con todos ellos, lo que supone una gran ventaja en términos de seguridad.

Además, debido a que Drupal es una tecnología tan ampliamente usada, como ya se ha mencionado, y que entre algunos de sus usuarios se encuentran gobiernos de diferentes países, la plataforma se somete a auditorías de forma continua en busca de posibles vulnerabilidades en la seguridad. Esto convierte a Drupal, según Buytaert en lo que probablemente es la tecnología más auditada del mundo.

#4 – Cifrado de contraseña y base de datos y control de accesos

Desde el momento en el que se instala Drupal por primera vez, la contraseña que se introduce y que da acceso total al sitio web se guarda en la base de datos de forma cifrada. Para ello, se le aplica previamente un salt y, a continuación, se emplea una función de hash con un cifrado SHA512, lo cual hace que la contraseña sea prácticamente imposible de hackear.

Además, Drupal cuenta con una funcionalidad que permite cifrar la base de datos con la que trabaja, ya sea total o parcialmente. Por ejemplo, podría cifrarse únicamente la información relativa a las cuentas de los usuarios y a formularios de la web que puedan contener información sensible. Gracias a esta característica, Drupal puede configurarse para superar ciertos estándares y normativas legales referentes a la privacidad de los datos.

Por último, una característica que resulta tremendamente útil a la hora de gestionar la seguridad de un sistema Drupal es su control de accesos. Es habitual que mucha gente, con perfiles muy variados, tengan que acceder o hacer uso del sitio web, ya sea para editar contenidos, para meter traducciones o para modificar algunas configuraciones. Para ese fin, en Drupal existen los roles. Cada rol tiene asignados una serie de permisos que definen qué pueden y qué no pueden hacer los usuarios que tengan asignado ese rol. De esta forma, se limita el acceso a las características más críticas del sitio, proveyéndolo de una mayor seguridad.

Drupal como un CMS seguro, en parte gracias a su comunidad

Como ya se sabe Drupal cuenta con una de las comunidades más activas del mundo del software libre. Una parte de ella es el Drupal Security Team que es el encargado de revisar vulnerabilidades, publicar alertas y coordinar actualizaciones de seguridad. Esta comunidad también mantiene una política estricta de revisión de módulos contribuidos antes de marcarlos como «estables».

Entre los objetivos principales del Drupal Security Team encontramos los siguientes:

  • Resolver los problemas de seguridad notificados en avisos de seguridad
  • Proporcionar asistencia a los mantenedores de módulos contribuidos para resolver problemas de seguridad
  • Proporcionar documentación sobre cómo escribir código seguro
  • Proporcionar documentación sobre cómo proteger su sitio
  • Ayudar a mantener segura la infraestructura de Drupal.org

 

Actualizaciones del core y módulos contribuidos como requisito para la seguridad

Decir que «Drupal es seguro» no es del todo cierto. Drupal será una plataforma segura siempre y cuando se mantenga, entre otras medidas, correctamente actualizada. Esto incluye aplicar los parches de seguridad tanto a core como a todos los módulos y temas contribuidos utilizados en nuestro sitio. Tener un Drupal seguro no es algo que podamos automatizar, sino que dependerá del compromiso con las buenas prácticas de mantenimiento y actualización que tengamos en él.

Las actualizaciones que se ofrecen a la comunidad no solo corrigen errores, sino que también solucionan vulnerabilidades críticas.

 

Seguridad en nuestros módulos de Drupal con sello hiberus

Nuestros desarrollos en Drupal, especialmente a través de módulos personalizados (custom), pueden convertirse en una fuente potencial de vulnerabilidades si no se implementan con el debido cuidado y siguiendo buenas prácticas de seguridad.

Para mantener un desarrollo seguro en Drupal, especialmente al trabajar con código personalizado, es importante seguir buenas prácticas tanto en PHP como en JavaScript:

 

Buenas prácticas en PHP

  • Sanitizar todas las entradas de la persona usuaria
    Usar funciones como Html::escape() o Xss::filter() para evitar inyecciones de HTML o JavaScript malicioso (XSS).
  • Evitar la ejecución dinámica de código
    No usar funciones como eval(), create_function() o similares, ya que abren la puerta a posibles vulnerabilidades graves.
  • Control de acceso
    Usar la API de permisos propia de Drupal para verificar en nuestros desarrollos que solo los usuarios autorizados puedan realizar acciones o ver contenido protegido.
  • Auditoría de código
    Revisa el código regularmente con herramientas como PHPStan, SonarQube o PHP CodeSniffer para detectar errores, malas prácticas y posibles vulnerabilidades.

 

Buenas prácticas de JavaScript

  • Evitar la manipulación directa del DOM con contenido no confiable
    Debemos insertar dinámicamente solo contenido previamente sanitizado. Evitar el uso de innerHTML si no es estrictamente necesario.
  • Validar en el cliente, pero siempre validar en el servidor
    Cuando validemos en JavaScript mejoraremos la experiencia del usuario, pero nunca debemos reemplazar la validación en el lado del servidor.
  • Uso de bibliotecas seguras y actualizadas
    Asegurémonos de que todas las librerías JS externas estén actualizadas y provengan de fuentes confiables.
  • Evitar el uso de eval() y Function() en JS
    Dichas funciones permiten ejecutar código arbitrario y representan un alto riesgo de inyección.

Además, se recomienda integrar módulos de seguridad (los veremos en el punto 5) que nos permiten configurar protección desde el propio código.

 

Seguridad en la infraestructura de Drupal

La seguridad de Drupal también depende como punto de entrada y salida de la infraestructura que lo soporta, ya sea a nivel de servidores web, el motor de base de datos, servicios complementarios que podamos tener o las propias máquinas donde se encuentran estos alojados.

Aquí comentamos algunos puntos clave a tener en cuenta:

Servidores Web (Apache/Nginx)

  • Activar HTTPS con certificados válidos.
  • Configurar cabeceras como Content-Security-Policy, X-Frame-Options, Strict-Transport-Security.
  • Limitar el acceso a archivos sensibles.

Bases de Datos (MySQL/PostgreSQL)

  • Usar usuarios con privilegios mínimos.
  • Activar cifrado en tránsito.
  • Realizar backups automáticos.

Servicios Complementarios (Redis, Solr)

  • Limitar el acceso por IP.
  • Activar control de acceso o autenticación y cifrado.
  • Monitorizar logs y métricas.

Entorno de alojamiento (hosting)

  • Aplicar actualizaciones del sistema operativo.
  • Configurar firewalls y sistemas de detección de intrusos o comportamientos no deseados.

 

Módulos recomendados para mejorar la seguridad en Drupal

Drupal ofrece una amplia gama de módulos para reforzar parte de la seguridad. Entre ellos destacamos los siguientes:

Módulo Función principal
Security Kit SecKit proporciona a Drupal diversas opciones de refuerzo de seguridad. Esto permite mitigar los riesgos de explotación de diversas vulnerabilidades de las aplicaciones web.
Password Policy Este módulo admite la aplicación de restricciones en las contraseñas de los usuarios mediante la definición de políticas de contraseñas.
Login Security Limita intentos de login y bloquea IPs.
Two-Factor Authentication (TFA) Añade autenticación de doble factor.
Flood Control Controla intentos masivos de acceso.
Paranoia Detecta y bloquea ejecución de código PHP no autorizado.
Security Review Audita configuraciones o código inseguro del sitio.

 

Gestión segura de las credenciales y los despliegues

Una parte crítica en la seguridad de cualquier proyecto Drupal y en general de cualquier aplicación web es no almacenar contraseñas ni claves sensibles en archivos del repositorio. Esto incluye:

  • Contraseñas de bases de datos.
  • Tokens de APIs.
  • Claves privadas de conexión.
  • Credenciales de servicios externos (SMTP, Redis, Solr, etc.).

Por ello unas buenas prácticas que deberemos seguir son las siguientes:

  • Usar variables de entorno: configura tus credenciales en el entorno del servidor (por ejemplo, .env, variables del sistema o servicios secretos en contenedores).
  • Ocultar variables sensibles en CI/CD: en plataformas como GitHub Actions, GitLab CI/CD o Bitbucket Pipelines, usa variables masked y protected para evitar que se impriman en los logs.
  • Evitar subir archivos .env o settings.local.php al repositorio. Añádelos al .gitignore y que permanezcan únicamente en las máquinas de cada uno de los entornos.
  • Utilizar servicios de gestión de secretos si trabajamos en entornos cloud.
  • Separar configuración por entorno: usa settings.local.php para desarrollo y otro distinto para producción, manteniendo las credenciales fuera del código fuente.

 

Buenas prácticas para aumentar la Seguridad de Drupal

Además de los módulos y la infraestructura, es importante seguir buenas prácticas como:

  • Usar HTTPS en todo el sitio.
  • Auditar roles, permisos y usuarios regularmente.
  • Desinstalar y eliminar módulos innecesarios.
  • Separar entornos de desarrollo, staging y producción.
  • Configurar backups automáticos y planificar pruebas de restauración.
  • Monitorizar logs de acceso y errores.
  • Aplicar políticas de contraseñas seguras.
  • Evitar el uso de users con permisos de administrador.

En hiberus nos tomamos muy en serio la seguridad de nuestros clientes y sus sitios web. El trabajo que realizan desde Drupal.org, tanto los equipos de seguridad como todos aquellos que contribuyen su trabajo de forma libre, es de vital importancia para que las plataformas basadas en Drupal sigan siendo seguras. Sin embargo, todo ese trabajo no sirve de nada si nosotros no le prestamos atención.

Es por ello que, desde el departamento de CMS, nos mantenemos diariamente actualizados en todo lo relativo a los parches y nuevas actualizaciones de seguridad. En el momento en el que, desde el equipo de seguridad de Drupal.org, se comunica una nueva actualización de seguridad para el core o para cualquier módulo contribuido, nosotros nos encargamos de analizar todas las webs de nuestros clientes para evaluar si estas se verán afectadas o no por la vulnerabilidad detectada y, en tal caso, en qué medida.

En base a este análisis, contactamos con todos nuestros clientes afectados para informar del problema y de la solución que aplicaremos, de forma que el cliente esté siempre informado y podamos coordinarnos para que el impacto sobre su plataforma sea el menor posible.

Por otro lado, además de este seguimiento periódico y proactivo de las actualizaciones de seguridad que proveen desde Drupal.org, nosotros nos preocupamos de que nuestros clientes estén siempre informados del estado de sus sitios web. Por ello, realizamos informes mensuales de todos los sitios Drupal, en los cuales se indica si existen actualizaciones de seguridad pendientes para algunos de los módulos instalados en sus plataformas, o del propio core de Drupal, además de su severidad y posible impacto en caso de no realizar las actualizaciones indicadas.

 

Drupal es un CMS seguro por diseño, pero su nivel de seguridad dependerá en gran medida de cómo lo gestionemos y configuremos. Para garantizar la integridad del sitio web, es fundamental mantener actualizado el core y los módulos, desarrollar código siguiendo buenas prácticas de seguridad, proteger la infraestructura que lo soporta y aplicar una serie de medidas preventivas. Todo lo anterior es clave para asegurar un entorno seguro, robusto y confiable.

En hiberus contamos con un departamento de más de 150 desarrolladores Drupal. Nuestros más de 10 años de experiencia nos ha hecho trabajar en los principales casos de éxito Drupal a nivel nacional. Cuéntanos tu proyecto y conoce a nuestro equipo experto en Drupal. 

¿Quieres más información sobre nuestros servicios de Drupal?

Contacta con nuestro equipo de Drupal

    4 posts

    De Físico a desarrollador de Drupal. Amante de la ultradistancia.
    Artículos relacionados

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    ¡No te pierdas nada!

    Te mantenemos al dia de tendencias y novedades sobre el futuro del trabajo, formas de hacer crecer tu negocio, liderazgo digital y muchas cosas más..

    Newsletter