Cómo mejorar y gestionar la seguridad de nuestro sitio en Drupal

Seguridad
23 April 2024

Al inicio de la creación de un sitio debemos ser conscientes de lo segura que sea la herramienta con la que vamos a trabajar, Drupal como herramienta de gestión de contenidos se puede decir que es bastante segura, pero no siempre depende únicamente de la herramienta que usemos. Es fundamental mantener tu sitio actualizado ya que las actualizaciones son la principal causa de brechas de seguridad que se producen. Como administrador del sitio hay una serie de tareas imprescindibles a realizar. El propio Drupal nos ofrece una serie de consejos de configuración una vez instalada la herramienta:

  • Prevenir que los visitantes se puedan crear sus propias cuentas de usuario. En el caso de que deseemos permitir que los usuarios se creen sus propias cuentas, a través de Administración>Configuración>Usuarios seleccionemos la opción ‘Visitantes, pero es necesaria la aprobación de los administradores’ el administrador del sitio será el que deba activar la cuenta tras recibir la solicitud.

 

  • Proteger al primer usuario que se crea UID=1, y al que se le da además de permisos de administración una serie de permisos especiales. Nunca nombrar a este usuario como admin o administrador, ya que será la primera opción que tomará un posible intruso para realizar un ataque. También podemos desactivarlo para que no pueda ser utilizado mediante el empleo de Drush o del módulo contribuido Paranoia, es necesario tener conocimientos avanzados en Drupal.

 

  • Asegurarse de que los distintos roles dispongan únicamente de los permisos estrictamente necesarios. Drupal nos permite gestionar los permisos de los roles de usuario con gran exactitud para así poder controlar lo que un determinado usuario puede hacer dentro de nuestro sitio.

 

  • Mantener el sitio siempre actualizado y prestar atención a los avisos de seguridad del equipo de seguridad de Drupal.

 

  • Activar y desactivar el modulo Testing (simpletest) tras su utilización ya que puede ser utilizado para inyectar código malicioso.

Por otra parte, Drupal nos ofrece una serie de módulos con funcionalidades extra o específicas de seguridad a nuestra instalación.

Captcha

Un captcha es una acción manual que se exige al usuario para comprobar que ésta no se está llevando a cabo por una máquina. Sirve para proteger principalmente los distintos tipos de formularios de nuestro sitio contra el spam.

El más descargado y utilizado con diferencia es reCAPTCHA, con el cual podremos insertar el reCAPTCHA de Google en nuestro sitio. Su instalación es bastante sencilla, aunque es necesario disponer de una cuenta de Google.

Login Security

Permite configurar el número máximo de intentos que un usuario puede hacer para loguearse en nuestro sitio, bloquear determinadas cuentas por usuario o por IP de manera temporal o definitiva. Además permite configurarlo para que nos envíe notificaciones cuando un usuario que haya sido bloqueado o que esté intentando acceder de manera repetitiva con diferentes combinaciones de usuario y contraseña.

Password Policy

Permite determinar el número de caracteres que las contraseñas de usuario deben tener (mínimo y máximo), si debe haber alguna letra mayúscula o algún carácter especial, etc. establecer un periodo de tiempo tras el cual el usuario o grupo de usuarios debe cambiar la contraseña.

  • Tipos de caracteres.
  • Dígitos.
  • Letras.
  • Letras / Dígitos (Alfanuméricos).
  • Longitud.
  • Mayúsculas.
  • Minúsculas.
  • Puntuación.
  • Ubicación de los dígitos.

Security Kit

Security Kit es un módulo muy completo que nos ofrece una gran variedad de opciones de configuración para proteger nuestro sitio de una amplia variedad de ataques y mejorar así la seguridad aunque la gran mayoría de ellas requieren que sepamos qué es lo que estamos haciendo ya que pueden afectar al rendimiento de nuestro sitio. (Cross-Site Scripting, Cross-Site Request Forgery, Clickjacking y configurar algunas opciones de conexión SSL/TLS).

Automated Logout

Permite que el administrador del sitio puede determinar el tiempo de inactividad de un usuario tras el cual desloguearse. Permite establecer diferentes tiempos de inactividad en función del rol del usuario e incluso el no des-logeo de un rol en concreto, como puede ser el de administrador.