Antes de empezar con este post, es importante tener clara la respuesta a dos preguntas: ¿es Drupal seguro? y ¿estamos libres de ser atacados?. A esta primera pregunta debemos responder con rotundidad Sí, Drupal es seguro y cuenta con un amplio y dedicado equipo que trabaja exclusivamente en las políticas de seguridad, revisión del código y solución de vulnerabilidades. A la segunda pregunta debemos responder, con la misma rotundidad, No, la seguridad 100% no existe, si bien es cierto que en muchas ocasiones las brechas más importantes no están causadas por el software sino por no seguir unas pautas básicas de protección por parte de los administradores de un determinado sitio web.
Para que los administradores de un sitio bajo Drupal puedan implementar y controlar políticas efectivas de seguridad, disponemos de una serie de módulos contribuidos que nos ayudarán en esta tarea y convertirán nuestras instalaciones en mucho más consistentes.
Security Kit
Security Kit es un módulo que nos permite realizar una serie de configuraciones de seguridad con las cuales mitigar los riesgos de explotación de diferentes vulnerabilidades web, como son:
- Cross-site Scripting (XSS), vulnerabilidad que permite a una tercera persona inyectar en nuestra página web código, normalmente Javascript, con el cual robar información sensible, como pueden ser logins de acceso, sesiones de usuarios, etc.
- Cross-site Request Forgery (CSRF), por la cual, se fuerza a un usuario legítimo (el cual es al mismo tiempo víctima) a realizar una acción maliciosa sobre un determinado sitio web cundo visita un sitio infectado mediante un código que ejecuta, normalmente, una petición del tipo Request GET de un formulario o una dirección URL.
- Clickjacking (o secuestro de clic) por la cual se accede a información personal de un usuario cuando hace clic en una página aparentemente inocente. Se suele llevar a cabo normalmente en forma de código embebido o script que se ejecuta cuando un usuario hace clic, por ejemplo, sobre un botón para la realización de una determinada acción.
- SSL/TLS. Implementación de HTTP Strict Transport Security (HSTS, Seguridad de Transporte Estricta de HTTP) con el fin de evitar ataques de interceptación intermedia y de espionaje de las cabeceras de respuesta.
- Otras acciones de seguridad, como puede ser la desactivación del autocompletado de los formularios de validación de credenciales por parte de los usuarios.
Login Security
Login Security nos permite aumentar las opciones de seguridad en las operaciones de acceso por parte de los usuarios registrados a nuestro sitio web. Mediante este módulo se puede establecer:
- El número máximo de intentos que que se puede utilizar con un login para acceder al sitio antes de que éste sea bloqueado.
- Denegar el acceso a IPs determinadas temporal o permanentemente.
Entre las diferentes opciones de configuración que encontramos en el área de administración del módulo tenemos:
- Tiempo de seguimiento: tiempo durante el cual se mantiene un dato en el registro. Transcurrido dicho tiempo, éste es borrado y no se vuelve a tener en cuenta excepto en el caso de los bloqueos permanentes.
- Número máximo de inicios de sesión fallidos antes de bloquear a un usuario.
- Número máximo de fallos de identificación desde un determinado host antes de bloquearlo temporalmente.
- Número máximo de fallos de identificación desde un determinado host antes de bloquearlo totalmente.
- Número máximo de intentos de entrada fallidos antes de que sea considerado como un ataque.
Entro otros aspectos que podemos configurar se encuentra la posibilidad de mostrar el número de intentos que nos quedan antes de que se bloquee nuestro usuario, desactivar el mensaje de error de fallo al iniciar la sesión y definir qué usuario del sistema recibirá las alertas de un ataque o cuando un determinado usuario es bloqueado por el sistema. También podemos personalizar todos los mensajes que el módulo emite:
- Mensaje a mostrar en cada fallo de identificación.
- Mensaje a mostrar cuando un host ha sido bloqueado temporalmente.
- Mensaje a mostrar cuando un host ha sido bloqueado permanentemente.
- Mensaje a mostrar a un usuario que ha sido bloqueado.
- Correo electrónico que recibirá el usuario determinado para informarle que se ha bloqueado a un determinado usuario.
- Correo electrónico que recibirá el usuario especificado para informarle de que el sitio ha sufrido o está sufriendo un ataque en función de los criterios especificados.
Username Enumeration Prevention
Un ataque por Enumeración de Usuarios consiste en la identificación por parte de un atacante de un listado de los usuarios existentes en un sistema para posteriormente realizar un ataque más sofisticado, normalmente por fuerza bruta. Es decir, una vez conocido el nombre de usuario, ya dispone de la mitad del trabajo hecho y ya podría realizar otro ataque más concreto para intentar averiguar la clave de acceso para dicho usuario, normalmente a través de un diccionario de contraseñas.
La forma más fácil de obtener el nombre de usuario es ir probando con distintos usuarios en el formulario para recuperar la contraseña, ya que al introducir un usuario incorrecto Drupal nos dirá que ese usuario no existe.Cuando el módulo Username Enumeration Prevention está activado, el mensaje de error es reemplazado por uno igual que si el usuario empleado existiera y será devuelto al formulario de ingreso normal, pero en este caso, el mail de confirmación no habrá sido enviado lo cual el atacante no sabrá.
¿Y tú, empleas otros módulos para mejorar la seguridad de tu instalación de Drupal que quieras compartir con nosotros?
Comentarios
Conflicto entre módulos
Si queréis instalar "Login Security" y tenéis instalado "Super Login" entrarán en conflicto y recibiréis un mensaje de error del sistema y no podréis usar las propiedades dadas por Super Login. Así que, habrá que elegir.
Añadir nuevo comentario