21 mayo 2013

Better WP Security: Completo plugin de seguridad para Wordpress



A la hora de diseñar un sitio web o un blog, frameworks como Joomla, Drupal o Wordpress ayudan a tener un punto de partida o base, que permite añadir páginas, con diverso contenido y con la posibilidad que los usuarios interactúen dejando comentarios.

Sin embargo, cuando se trata de colgar una página web a Internet, cualquier medida de seguridad que se tome es poca. Son incontables las amenazas existentes, tanto de forma intencionada, como por bots automáticos que, incansablemente acechan la red, en busca de vulnerabilidades o malas configuraciones en direccionamiento público. 

En Security By Default ya hemos analizado, en vidas pasadas, diferentes formas de ayudar a proteger  Wordpress. Incluso, para evitar el acceso "de raíz" al panel de administración pusimos a vuestra disposición un módulo Apache para permitir, en modo "lista blanca", accesos desde direcciones IP dinámicas, listadas en un registro DynDNS, a URIs como la del panel de administración de Wordpress.

Sin embargo, buscando herramientas existentes que aporten seguridad a la instalación, dí con un plugin que me ha parecido de lo más completo y he querido compartir con vosotros.

Se trata de Better WP Security, un plugin que permite gestionar diferentes parámetros que mejoran la seguridad. La forma de visualizar y configurar cada parte es mediante pestañas, en el panel de administración de Wordpress, en una sección llamada Seguridad.

La primera de las pestañas es un Dashboard, un resumen donde podemos ver el estado actual de la seguridad de Wordpress, en base a una "auditoría" que nos muestra la herramienta, destacando cada uno de los puntos por colores, dependiendo de "lo bien o mal" que estén, así como la criticidad de los mismos. Además, si queremos modificar un punto en concreto, para arreglar el problema señalado, hay un acceso directo desde la misma línea.



En cada una de las pestañas, nos da un pequeño resumen de ayuda sobre los parámetros que podemos modificar desde la misma.

La pestaña User nos permite cambiar el nombre del usuario admin y el ID (que por defecto es el 1 para dicho usuario)



En la pestaña Away, podemos "cerrar con llave" el acceso a la pantalla de administración de una forma programada, es decir,... No queremos que se pueda acceder al panel, en determinado horario. Esto es útil en caso que tengamos claro que no tendremos que acceder para nada, pero puede derivar en un Auto-DoS si no podemos acceder al panel de administración y por una emergencia, se necesita 



La pestaña Ban, nos permite añadir direcciones IP o User-Agents que, directamente, no queremos permitir que accedan al framework Wordpress. Si no tenemos una lista de IPs actualizada con la que podamos alimentar manualmente una lista negra, se puede confiar automáticamente en la que provee Hackrepair.com, que se integra de forma automática con el plugin.




La ruta por defecto donde se almacena mucho contenido que se utilizará en el blog o sitio web, está tras el directorio /wp-content. Si, por una configuración relajada, Apache permitese el Directory Listing, se podría acceder directamente a todos los ficheros contenidos en él. Desde aquí se permite modificar el directorio, tanto a nivel de sistema de ficheros, como las referencias que haya desde cualquier parte de Wordpress.  





En la pestaña Backup, existe la posibilidad de ejecutar backups periódicos que se enviarán por correo a una cuenta especificada o que se almacenarán en la propia aplicación. Es algo recomendable disponer de backups para poder recurrir a ellos en caso de catástrofe.





Al igual que ocurría con el directorio wp_content, las tablas de base de datos que utiliza Wordpress, por defecto, empiezan por "wp_". Esto, en caso de descubrirse un SQL Injection para Wordpress, permitiría a un atacante, hacer operaciones sobre las tablas, o al menos tener un punto de entrada conocido. Por aquello de ponerlo más complicado, esta herramienta nos permite cambiar el prefijo por lo que nosotros queramos, diferente de "wp_"




Para la administración de Wordpress, se accede a /admin. En el post en el que liberamos el módulo mod_dynip, un lector preguntaba, en los comentarios, si existía forma de modificar el /admin por un valor arbitrario. Pues, por lo visto, Better WP Security, permite en la pestaña Hide, cambiar el valor de /login, /register y /admin.



La sección Detect permite identificar y correlar aquellas direcciones IP que escaneen el servidor web haciendo pruebas de diccionario o fuerza bruta, en base a los errores HTTP 404 Not Found, devueltos por el servidor. La herramienta nos permite definir umbrales de hits fallidos por unidad de tiempo. En base a esto el plugin añadirá en la lista negra a las direcciones IP atacantes durante un tiempo predefinido.
Asimismo, en esta misma pestaña podemos configurar la detección de modificaciones de la integridad de los ficheros Wordpress. Si algún fichero cambia, y no hemos añadido/modificado nada, y nos llega un coreo con modificaciones, puede que tengamos alguna visita en el servidor. En mi caso, no lo tengo habilitado, puesto que ya utilizo AFICK a nivel de servidor completo, por lo que me resulta redundante e innecesario hacerlo también a nivel Wordpress. 




Igual que hacíamos anteriormente a la hora de detectar ataques de enumeración de directorios o ficheros en base a monitorizar las respuestas HTTP 404 Not found, en la pestaña Login, podemos indicar los parámetros de configuración para detectar ataques de fuerza bruta/diccionario ante la autenticación de usuarios.  



Si permitimos acceso HTTPS y HTTP, a nivel de servidor, puede ser útil forzar el uso de SSL para los accesos, así como pantallas en las que haya que introducir credenciales. En la sección SSL, podemos forzar que esto así sea.




La sección Tweaks, permite habilitar otras medidas de seguridad que no encajan en otras pestañas. Por ejemplo, es muy típico identificar la versión de Wordpress utilizada por un servidor en base a recuperar el fichero readme.html, donde ésta viene mencionada. Este fichero se añade, cada vez que se hace una actualización de Wordpress, aunque lo hayas borrado de la instalación anterior. Para evitar que nos puedan pedir según qué tipo de ficheros, podemos habilitar el check correspondiente.

Tened cuidado si ya tomáis ciertas medidas sobre el propio Apache o si utilizáis algún plugin que haga labores de WAF, puesto que puede dar más de un problema habilitar el último check aquí.  


La pestaña Logs, nos permite ver un sumario de la actividad de detección/protección llevada a cabo por el módulo Better WP Security. Asimismo, podemos desbloquear direcciones IP que puedan ser falsos positivos por ejemplo.


En resumen, una herramienta imprescindible. Si administras un wordpress y quieres tener una mayor tranquilidad, incrementando la seguridad en diferentes aspectos, este es un buen plugin. Quizá me gustaría mencionar que la traducción al español no es completa o no es todo lo buena que debería, pero se entiende todo correctamente y como aplicación funciona bastante bien.

11 comments :

Álvaro Reig González dijo...

Muy interesante, uso el plugin desde el último ataque a blogs wordpress, pero veo que no le saco todo el jugo. Gracias.

Carlos Cano García dijo...

Justo lo que andaba buscando. Facilita muchísimo la correcta configuración de un Wordpress a nivel de seguridad, que es justo lo que ahora está más en el punto de mira. Muchas gracias por el aporte.

Josemaría dijo...

Quizás, en comparación con Wordfence, este es un plugin más "instructivo" y el otro más defensivo ¿no?

[aMc] dijo...

La verdad, me ha parecido un plugin muy interesante. Utilizaba hasta ahora Wordfence Security, pero este me ha parecido mucho más completo y más sencillo de configurar. :)

carlos dijo...

lo instale y ya mi web no funciona... NO se que Hacer. estoy desesperado. ME ARREPIENTO

Lorenzo_Martinez dijo...

Carlos, espero que hubieras hecho un backup de la base de datos previamente a la instalación del plugin, como recomiendan las buenas prácticas de sistemas en producción. Si fue así, restaura el backup y mágicamente todo estará igual que antes.

Es extraño que no te funcione la web por instalar este plugin, en su configuración por defecto. ¿Tienes algún otro plugin de seguridad instalado que pueda estar haciendo conflicto con este?

wp-security dijo...

Hola he visto el blog y es mui interesante y voi a echar una mano a los que lo necesita.
Lamejor manera de securizar un sitio en wordpress lo encontre en el blog http://wp-security.tk y no es un plugin es un metod sencillio de cambiar las entrada de administracion de wordpress wp-login y wp-admin . Los plugin no me han convencido mucho pero este blog me ha cambiado la impresion sobre un wordpress seguro . Por mi es lo que le faltaba al CMS wordpress ( una manera facil de cambiar las entradadas administrativas )

Marito de Madrid dijo...

Hola
Gracias por vuestros consejos!
Soy principiante y me ha surgido la duda de cuándo se debe hacer la instalación de éste plugin de seguridad
Es decir, si lo tengo instalar bien instalo WP o cuando ya el sitio está terminado.

Muchas gracias de antemano.

Lorenzo_Martinez dijo...

Hola Mario,

en principio, el orden de los factores no altera el producto, aunque si según instalas WP, le añades el plugin, te permitirá securizar la plataforma sobre la que trabajarás luego. Yo lo recomiendo desde un primer momento, pero no se rompe nada si lo haces a posteriori

Luis Vega dijo...

¿Si instalo este plugin, ya no necesito instalar otro plugin de seguridad? o ¿que otro plugin de seguridad se debe instalar ademas de Better Wp Security?

cris dijo...

buenas, quería saber en el caso de que no quiera enviar los backups por correo electrónico dónde los guarda el plugin. Gracias.