Skip to main content

5 maneras de proteger Drupal 10

Escrito por
Headshot of Sushnigdha Tripathy

Sushnigdha Tripathy

feature drupal

23 de agosto de 2022

0 minutos de lectura

Drupal es un sistema de gestión de contenidos (CMS) popular que grandes empresas y agencias gubernamentales usan para aplicaciones de misión crítica. Gracias a su comunidad de desarrolladores colaborativa, su sólida seguridad, su compatibilidad con varios idiomas, el cumplimiento de las pautas WCAG y la facilidad de integración, Drupal es una opción preferida como CMS.

Drupal 10, cuyo lanzamiento está previsto para diciembre de 2022, incluye nuevas funciones interesantes. Entre los cambios más importantes se encuentran la implementación de un sistema de actualizaciones automatizadas, el reemplazo de algunos usos de jQuery por JavaScript puro en el núcleo, la actualización de dependencias de terceros (CKEditor 5, Symphony versión 6, PHP 8.1) y la eliminación de algunos módulos del núcleo, como HAL, QuickEdit, Aggregator, RDF y Activity Tracker. Estas mejoras aumentarán el rendimiento de los sitios web y ofrecerán una experiencia de usuario sólida.

Aunque se espera que la transición de Drupal 9 a Drupal 10 sea tan sencilla como el paso de la versión 8 a la 9, no podemos bajar la guardia en cuanto a la seguridad. Al fin y al cabo, actores maliciosos pueden atacar nuestro CMS Drupal 10. En este artículo, exploraremos cinco prácticas recomendadas de seguridad para Drupal 10.

1. Mantente al tanto de las vulnerabilidades

Una de las medidas más importantes para proteger nuestro sitio Drupal es dar seguimiento a las vulnerabilidades conocidas de Drupal mediante Snyk Vulnerability Database y mantenernos al día con los últimos avisos de seguridad de Drupal para anticiparnos a posibles vulnerabilidades. Hay varias maneras de hacerlo:

  • El equipo de seguridad de Drupal publica avisos de seguridad todas las semanas. Para estar al tanto de las novedades sobre seguridad, inicia sesión y suscríbete a su boletín por correo electrónico, únete al grupo de Slack de Drupal o sigue sus feeds RSS.

  • Drupal incluye un visor de Events Logger que podemos usar para monitorear nuestros sitios y detectar actividades sospechosas con regularidad.

  • El administrador de actualizaciones, parte de la API de Drupal, busca actualizaciones nuevas con regularidad y nos informa sobre ellas. Puedes configurarlo agregando tu dirección de correo electrónico en el menú de administración para recibir las últimas actualizaciones de seguridad.

  • Puedes usar Drush para automatizar tareas que consumen mucho tiempo y aplicar rápidamente actualizaciones de seguridad. Por ejemplo, para implementar una actualización de seguridad desde la interfaz de Drupal, tenemos que iniciar sesión, buscar el módulo, importar los cambios de configuración y mucho más. Con Drush, podemos realizar la misma acción con un solo comando, lo que facilita aplicar actualizaciones de seguridad de manera rutinaria.

2. Comprende los ataques de cross-site scripting (XSS)

Según Snyk Vulnerability Database, hay pocas vulnerabilidades en Drupal. Sin embargo, un gran porcentaje de las vulnerabilidades reportadas durante un período de 20 años son ataques de cross-site scripting (XSS). XSS es una vulnerabilidad de JavaScript en la que los atacantes inyectan código malicioso mediante JavaScript o HTML en scripts del lado del cliente.

Sin darse cuenta del peligro, los usuarios de aplicaciones web son engañados para que ejecuten código malicioso. Una vez que el navegador del usuario lo ejecuta, los atacantes pueden robar nuestros tokens de sesión y hacerse pasar por nosotros para realizar acciones que solo nosotros deberíamos poder hacer, incluido el acceso a sistemas privados.

Hay tres tipos de ataques XSS: reflejado, almacenado y basado en DOM.

XSS reflejado (no persistente)

El XSS reflejado es el ataque XSS más sencillo: la aplicación web devuelve el payload XSS al navegador del usuario. Como este ataque no es persistente, el payload no se almacena en el sitio web. En su lugar, el script se incorpora al final de una URL. Cuando el usuario hace clic en ella, se ejecuta el payload malicioso.

XSS almacenado (persistente)

El ataque almacenado es el más peligroso para los servidores del lado del cliente. Ocurre cuando el atacante inyecta el payload en la base de datos objetivo. Si no se validan los datos, se almacena permanentemente en el sitio web. Cuando los usuarios abren la página web afectada, ejecutan involuntariamente el payload en su navegador.

XSS basado en DOM

Un ataque al Modelo de Objetos del Documento (DOM) es un ataque del lado del cliente en el que el payload no se envía al servidor. Estos ataques son difíciles de detectar porque no aparecen en los registros del servidor.

Veamos cómo ocurre un ataque XSS.

Imagina un sitio de comercio electrónico de artículos deportivos. Tiene una función de búsqueda que recibe los datos ingresados por el usuario en un parámetro de URL, como este:

https://notsecured-website.com/search?term=tennisracquet

La aplicación anterior muestra información sobre la raqueta de tenis que se buscó:

<p>You searched for: tennisracquet</p>

Como podemos ver, no hay validación de entradas. Por eso, es fácil que los hackers modifiquen la URL e inserten scripts maliciosos, como este:

https://notsecured-website.com/search?term=<script>/*+malicious script+*/</script>

Cuando un usuario solicita la URL del hacker, el script malicioso se ejecuta en el navegador del usuario y genera la siguiente respuesta:

<p>You searched for: <script>/*+malicious script+*/</script></p>

Para prevenir eficazmente los ataques XSS, debemos:

  • Implementar una política de seguridad de contenido (CSP) para detectar y neutralizar ataques XSS.

  • Usar frameworks que escapen las etiquetas HTML.

  • Invertir en un sistema de administración de registros que registre todo.

  • Seguir las prácticas recomendadas de seguridad de OWASP.

  • Convertir los caracteres de control de HTML a una codificación sensible al contexto.

  • No permitir nunca que se renderice HTML sin procesar proveniente de las entradas de los usuarios.

  • Analizar nuestras bases de datos con regularidad mediante escáneres de vulnerabilidades web.

3. Usa siempre HTTPS

Los actores maliciosos pueden aprovechar las vulnerabilidades de tu sitio Drupal con HTTP para ejecutar ataques de pharming, phishing y intermediario (MITM), ya que el protocolo HTTP transmite datos en texto plano. Para proteger la conexión entre ambas partes, siempre debemos usar HTTPS. Para ello, necesitamos un certificado SSL, un protocolo seguro que cifra el tráfico del sitio web.

Los certificados SSL usan criptografía asimétrica y simétrica para cifrar las comunicaciones y hacerlas más seguras. Así, aunque intercepten nuestros datos, no servirán de nada porque estarán codificados de forma ilegible para los hackers.

4. Aplica el principio de privilegio mínimo

No es raro que las organizaciones usen cuentas privilegiadas. Sin embargo, estas cuentas ofrecen más oportunidades para que los actores maliciosos exfiltren datos de los sistemas y causen daños importantes. Por eso, siempre debes aplicar el principio de privilegio mínimo (POLP), que consiste en limitar los derechos de acceso a los recursos que tus usuarios necesitan para completar sus tareas.

Aplicar el POLP significa asignar a los usuarios solo los permisos mínimos necesarios para completar sus tareas, y nada más. Al limitar el acceso de los usuarios a distintas partes de nuestro sitio Drupal, así como a nuestra infraestructura, bases de datos y recursos, reducimos la probabilidad de que actores maliciosos dentro o fuera de nuestra organización accedan a lo que no deben. La principal forma de aplicar el POLP es asignar roles definidos por permisos específicos.

En Drupal, los usuarios tienen roles que les permiten ver y editar contenido. Podemos definir los permisos en detalle desde la página Permissions. Configurar permisos en Drupal es fácil. Primero, ve al panel Admin, haz clic en el menú People y luego en Permissions para otorgar acceso a los usuarios según sus roles.

Los permisos de Drupal se dividen en las siguientes categorías.

Usuario anónimo

El rol de usuario anónimo se aplica a quienes no han iniciado sesión. Por lo general, estos usuarios tienen permisos de solo lectura y el nivel de acceso más bajo.

Usuario autenticado

Los usuarios autenticados son quienes iniciaron sesión. Por lo general, tienen más derechos que los usuarios anónimos y su identidad se verifica mediante un sistema de inicio de sesión con nombre de usuario o correo electrónico y contraseña.

Administrador

El administrador, o usuario root, tiene privilegios de root con los que puede hacer cambios importantes en el sistema. Siempre debes tener cuidado al acceder a nuestro sitio Drupal como administrador root, ya que hasta un error menor puede ser desastroso para tu sitio web.

Control de acceso basado en roles (RBAC)

Además de los permisos descritos anteriormente, Drupal usa el control de acceso basado en roles (RBAC). Con RBAC, Drupal aplica el POLP y nos permite controlar lo que los usuarios pueden ver y hacer en nuestro sitio. Al otorgar acceso según los roles y las necesidades de cada usuario, nos aseguramos de que solo el personal de confianza tenga acceso a datos esenciales para el negocio.

5. Refuerza la seguridad con módulos de seguridad de Drupal

Un módulo es un conjunto de archivos JavaScript y PHP que agrega funciones nuevas a tu sitio Drupal y amplía sus capacidades. Drupal ofrece varios módulos para mejorar la seguridad de los sitios, entre ellos:

Módulo Login Security

El módulo Login Security es esencial para Drupal, ya que limita la cantidad de intentos de inicio de sesión no válidos. También puede bloquear determinadas direcciones IP de forma temporal o permanente. Además, los administradores de Drupal pueden configurar el módulo para recibir notificaciones ante ataques de fuerza bruta u otras actividades no deseadas.

Revisión de seguridad

El módulo Security Review analiza nuestro sitio web para detectar errores menores de desarrollo que podrían dejarlo expuesto a ataques. Aunque el módulo no realiza cambios, ejecuta una prueba de seguridad que destaca las vulnerabilidades que los actores maliciosos pueden aprovechar. Cuando recibamos el informe, podremos revisar las áreas señaladas y reforzar la seguridad del sitio.

Security Kit

El módulo Security Kit (SecKit) ofrece varias opciones para identificar vulnerabilidades web comunes, como el clickjacking, el cross-site scripting y la falsificación de solicitudes entre sitios. También ayuda a implementar encabezados de respuesta HTTP para prevenir ataques MITM.

Módulo Password Policy

El módulo Password Policy es un módulo aportado por la comunidad que nos ayuda a configurar políticas de contraseñas para roles específicos. Permite a los administradores del sitio definir distintos tipos de políticas de contraseñas, cada una con restricciones (submódulos) que deben cumplirse antes de cambiar una contraseña. Entre las restricciones se incluyen:

  • Mayúsculas

  • Minúsculas

  • Retraso

  • Letras y dígitos (alfanuméricos)

  • Longitud

  • Signos de puntuación

  • Nombre de usuario

  • Ubicación de los dígitos

Módulo de autenticación de dos factores

La autenticación de dos factores (2FA) agrega una capa adicional de seguridad a nuestro sitio Drupal y garantiza que solo puedan acceder los usuarios con autenticación válida. El módulo TFA ofrece interfaces donde podemos elegir varias soluciones de 2FA, como códigos enviados por SMS, contraseñas de un solo uso basadas en el tiempo o códigos generados previamente.

Mantén seguro tu CMS Drupal

Con 1 de cada 30 sitios web funcionando en Drupal, es una solución popular y confiable para nuestros sitios web. Entonces, ¿qué hace que Drupal sea tan seguro?

Drupal cumple con los estándares de seguridad de OWASP, cuenta con controles de acceso sólidos y granulares, y ofrece una base de código segura que el equipo de seguridad de Drupal monitorea de cerca. En conjunto, estas características hacen de Drupal un CMS muy seguro. Sin embargo, esto no significa que sea inmune a las vulnerabilidades.

Al usar Drupal como CMS, debemos comprender a fondo las técnicas de explotación web e implementar prácticas recomendadas para proteger nuestro sitio web. Además de aplicar las cinco medidas de seguridad descritas aquí, podemos implementar análisis de seguridad de sitios web y análisis de vulnerabilidades para garantizar que nuestros sitios Drupal sigan funcionando de forma segura.

Comienza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.

Leer más

illustration hero ai
Blog

PHP corrige dos vulnerabilidades críticas de RCE sin autenticación (CVE-2026-109618, CVE-2026-109619): actualiza ahora

Dos fallas críticas en el ciclo de solicitudes de PHP pueden permitir la ejecución remota de código sin autenticación. Actualiza a una versión corregida o instala una corrección retroportada por un proveedor para las versiones anteriores.

blog feature ai lilac
Blog

Convierte tu backlog de vulnerabilidades en pull requests con la remediación agéntica

Evo Remediation Agent ya está disponible en Open Preview e incorpora la resolución automatizada de dependencias a Evo Agentic AppSec. Ahora, los equipos de AppSec pueden ejecutar campañas de remediación continuas

AI Background min crop
Blog

La IA activa todos los riesgos que has aceptado: siete ideas del panel de seguridad de IA sin filtros

La IA hace que los ataques sean más baratos y rápidos, y deja al descubierto riesgos que las organizaciones ya enfrentan. Cuatro líderes de seguridad explican por qué la defensa a velocidad de máquina y la corrección más rápida son esenciales.