Muchos de los ataques son publicación automática de publicidad en los comentarios, inscribir usuario falsos o intentar obtener datos de los usuarios de la web. Segun los datos recopilados a lo largo de los años 2005 y 2010 por desarrolladores de módulos de Drupal, los ataques más frecuentes son:

48%  Inyección de código Java Script XSS Cross-site scripting

16%  Access bypass

10%  Cross-site request forgeries CSRF

7%    MySQL injection

4%    Arbitrary Code Execution

3%    Autentificación / sessión

La Inyección de código Java Script es el ataque más utilizado. Para prevenir estos ataques es esencial actualizar el código de Drupal y sus módulos. El módulo Update nos ayudará a saber que partes de código tienen nuevas actualizaciones. Viene por defecto, solo tienes que activarlo.

No dejar campos de texto en formularios donde los usuarios puedan escribir código o subir archivos de cualquier tipo. Para prevenir esto se utiliza check_plain. También existe filter_xss y filter_xss_admin.

Para escribir consultas a la base de datos se debe hacer utilizando la capa de abstracción que proporciona Drupal. De este modo se respetaran los permisos de acceso a contenidos y se evitara la inyección de código en la base de datos.

Guía para escribir código seguro en Drupal: drupal.org/writing-secure-code. Existen muchos módulos que automatizan tareas de prevención y para aumentar la seguridad de Drupal:

drupal.org/node/382752

Security Review

drupal.org/project/security_review

Se trata de un módulo que testea los principales errores que hacen que Drupal sea inseguro.

Secure Permissions

drupal.org/project/secure_permissions

Deshabilita la interficie de asignación de permisos y creación de roles. Creando una nueva capa de seguridad para evitar perdidas de configuración o cambios accidentales.

Limitar las sesiones

drupal.org/project/session_limit

Login Security

drupal.org/project/login_security

Para limitar los intentos de login o bloquear el acceso desde determinadas direcciones IP.

Antibot

drupal.org/project/antibot

Para eliminar los envíos de información a través de los formularios de la web por parte de maquinas

MD5 Check

drupal.org/project/md5check

Generar MD5 checksum de todos los archivos de los módulos. Si alguno es cambiado se genera un registro de error en el watchdog.