Continuando con la serie de posts donde tratamos de fortalecer nuestro WordPress (ya vimos como Obtener y ocultar la versión del core) resumimos un par de tips para evitar principalmente los ataques de fuerza bruta generados por medio de robots que prueban exploits conocidos, rezagos de una instalación por default, y combinaciones de usuarios y passwords sin mucha complejidad. Para ello nos basamos en los consejos de tres expertos en seguridad de WordPress, RACHEL BAKER (@rachelbaker), BRAD WILLIAMS (WebDevStudios.com) y JOHN FORD (JohnFord.Is).

La primer medida que se debe tomar es mantener todo el software actualizado. A esta altura creo que no deberíamos ni mencionarlo. Pero no esta demás repetirlo hasta el cansancio. Esto apunta tanto al core del WordPress, como los plugins y temas que lo componen. Pero no debemos olvidar que el CMS se instala sobre un sistema operativo donde corre seguramente Apache, PHP y Mysql que también deben estar en su última versión. Entonces nos damos cuenta que dependemos directamente del hosting donde se alojará el sitio web. Por eso vale la pena perder unos minutos averiguando cual es la mejor opción antes de empezar la instalación del sistema.

Una vez finalizada la instalación, y luego de poner a punto el WordPress, es bueno eliminar los plugins y temas que no son utilizados, con esto evitamos mantener posibles agujeros de seguridad de cosas que ni siquiera usamos.

Eliminar el usuario por default

Una tarea importante es la de cambiar el usuario de acceso que WordPress utiliza por default (admin). Si venimos actualizando el sistema desde versiones anteriores, podemos arrastrar este usuario ya que antes no era posible cambiar el nombre. Ahora esto si es posible durante una nueva instalación, pero si ya contamos con este usuario creado, podemos ver que desde la sección de administración de usuarios se puede cambiar nombre/apellido y el alias, pero no el usuario de login.
Existen dos métodos para realizar este cambio:
Agregar un nuevo usuario, ingresar al sistema con este último, y luego borrar primer usuario confirmando que los post generados con dicho usuario sean migrados al nuevo administrador. Ojo con este paso ya que podríamos perder todas las entradas que el usuario admin tenia creadas.
La alternativa es renombrar el usuario directamente desde la base de datos, ingresando con el método que mas nos guste, y editando el registro que se encuentra en la tabla wp_users, en el campo user_login.

Limitar los intentos fallidos de login

Login Lockdown es un plugin que permite limitar el número de intentos fallidos durante el login a nuestro WordPress.

Verificación de permisos en archivos y carpetas

Otra herramienta interesante para aumentar la seguridad es BulletProof Security. Este plugin agrega características mediante el uso de archivos .htaccess en los directorios donde esta instalado nuestro WordPress. A su vez recorre los archivos y carpetas mas sensibles para mostrar en un reporte donde nos estamos descuidando.

Aumentar la seguridad mediante autenticación por htpasswd

Considerar agregar autenticación por http de la carpeta wp-admin, así se genera una barrera mas para evitar ataques por fuerza bruta. Para esto generamos un archivo .htaccess en el directorio wp-admin que restrinja el acceso a admin-ajax.php de la siguiente manera:

AuthUserFile /path/to/your/htpasswd
AuthType basic
AuthName “Restricted”
require valid-user
 
Order allow,deny
Allow from all
Satisfy any

El archivo htpasswd se genera con el comando

$ htpasswd -c /path/to/your/passwd usuario password

Escaneo de vulnerabilidades del sitio

Para realizar escaneos del sitio de manera online, podemos utilizar el servicio de securi.net . Mediante esta web se realizan diferentes chequeos en busca de información sensible o código malicioso y también genera un reporte detallado con los datos recopilados.

Mediante la combinación de esta última herramienta y el plugin BulletProof Security podemos verificar el estado de nuestro sitio y ver si fueron bien aplicados los cambios que realizamos para asegurar el CMS.