WordPress más seguro y cómo reaccionar a un ataque

Recientemente he recibido el que creo que es el primer ataque que lanzan contra este blog, algún amigo de lo ajeno ha conseguido la contraseña del usuario administrador, ha modificado algunos archivos de un plugin y ha colocado  un archivo con malas pulgas dentro del contenido del blog. Aparentemente no han roto nada más y creo que he conseguido repeler el ataque así que, a riesgo de enfadar más al atacante (que seguramente va a leer esto) os voy a contar mi experiencia por si le puede servir a alguien más.

Todo empezó cuando recibí un correo con este contenido

Contraseña perdida y cambiada para el usuario: dondado

Alguna otra vez había recibido correos de alguien que pedía el cambio de contraseña pero nunca de que efectivamente se había cambiado por lo que me preocupé y en cuanto tuve ocasión me puse a investigar qué pasaba. Descargué los logs de acceso al servidor apache y comienzo la investigación.

1. Retoma el control:

Entrar con el usuario y volver a pedir una nueva contraseña, una vez recibida acceder con ese usuario administrador al blog.
Desactivar todos los plugins por si han hecho cambios en ellos
Volver a cambiar la contraseña del administrador y ya de paso la cuenta de correo por si viene por ahí el fallo de seguridad.

2. Investiga qué ha pasado:

Acceder al log de acceso al servidor y buscar los accesos a wp-login.php y fijarse en la IP desde la que se han hecho el que se corresponda con la hora en que te llegó el correo del cambio de contraseña u otra hora en la que sepas que tú no has accedido.
Buscar todo lo que se haya hecho desde esa IP: en mi caso, además del cambio de contraseña, se ve que había modificado un plugin desde el editor de plugins de wordpress.
Con algún programa de comparación, compara los archivos que tenías (benditos backups) con los que han dejado los atacantes, así he detectado yo los cambios que habían hecho en el plugin simple-tags

3. Reforzar la seguridad.

A). Limitar los accesos al directorio wp-admin. Lo normal es que al panel de administración sólo entres desde tu casa, para ello basta con añadir, en el directorio /wp-admin/ un archivo con el nombre .htaccess con el siguiente contenido

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic

order deny,allow
deny from all
# whitelist Casa
allow from xxx.xxx.xxx.xxx
# whitelist Trabajo
allow from xxx.xxx.xxx.xxx

Sustituyendo las xxx.xxx.xxx.xxx por tus direcciones IP desde las que quieras acceder a la administración, por ejemplo la de casa y la del trabajo.

Si no sabes tu dirección IP puedes visitar, por ejemplo, esta dirección http://whatismyipaddress.com/ donde te la dicen o, si tienes cuenta de GMail, en la parte inferior aparece tu IP y pinchando en “información detallada”, un listado con las IPs desde las que has accedido últimamente a tu cuenta de gmail.
Ten en cuanto que muchos tenemos IPs dinámicas, es decir, que nuestro operador nos las cambia de vez en cuando, así que recuérdalo por si al cabo de unas semanas no consigues entrar ni siquiera tú. Una opción puede ser utilizar asteriscos en las dos últimos tramos de la IP, que es lo que suelen cambiar los ISP. La línea en ese caso te quedaría con la forma

allow from xxx.xxx.*.*

B) Deshabilitar los editores internos de wordpress, el editor de plugins y el editor de themes. No sé vosotros, pero yo, salvo en contadas ocasiones no los utilizo, así que más vale
tenerlos deshabilitados y reactivarlos sólo cuando sean necesarios. Para deshabilitarlos hay que añadir la siguiente línea en el archivo wp-config.php

define('DISALLOW_FILE_EDIT',true);

4. Volver a colocar las cosas en su sitio.

Hay que ser desconfiado y no dar por sentado que hemos encontrado todo lo que han modificado, más vale prevenir.
Volver a descargar todos los plugins desde la página de wordpress, borrar los que tienes instalados actualmente y volverlos a instalar.
Descargar la última versión de wordpress y volver a hacer una instalación limpia. Si como yo, además hacéis las actualizaciones de vuestro WP sólo de forma incremental es conveniente hacer esto de vez en cuando para eliminar posibles archivos que hayan quedado en desuso.

5. Paranoico de la seguridad

Si lo han intentado una vez es muy posible que vuelvan así que es mejor estar preparado esperándoles:

  • Crea un nuevo usuario con permisos de administrador que sea distinto del que utilizas para escribir en el blog, una vez creado, identifícate con él y cambia los permisos de tu usuario normal, el que conoce la gente, para que sea tan solo editor. A partir de ahora tendrás que pensar qué vas a hacer cuando entres al blog, escribir, administrar entradas y comentarios  (para esto utiliza el viejo usuario que ahora sólo es editor) o cambios de plugins, opciones, aspectos… para eso sí tendrás que entrar con el nuevo usuario administrador.
  • Cambia la contraseña de la base de datos del blog.
  • Cambia la contraseña del correo electrónico que tienes asociado al usuario del blog.
  • Cambia las claves secretas del wp-config.php:
define('AUTH_KEY', 'xxxxxxxxx');
define('SECURE_AUTH_KEY', 'xxxxxxxxxxxx');
define('LOGGED_IN_KEY', 'xxxxxxxxx');
define('NONCE_KEY', 'xxxxxxxxxxx');

Para generar unas nuevas visita el generador aleatorio de claves de WP y copia y pega sobre tus anteriores líneas del wp-config.php
Aún no he logrado averiguar cómo consiguieron acceso a mi blog en su primer intento (en el segundo no lo consiguieron). Puede que sea una vulnerabilidad no descubierta de wordpress aunque me inclino a pensar que sea algo más concreto de mi instalación, por ejemplo, las claves del wp-config.php no las cambiaba desde que las puse hace muchos meses (cuando salió la versión 2.6), quizá incluso tenía unas claves genéricas copiadas de algún sitio que les facilitaban conseguir la key para acceder a la administración. Quién sabe, espero no volver a llevarme sustos como este ¿Y tú, has sufrido algún intento de ataque de tu blog?.

Por último agradecer a la gente de Iteisa su interés y ayuda para conseguir salir de este entuerto.

Foto original de Dunechaser

18 comentarios en “WordPress más seguro y cómo reaccionar a un ataque

    • @Oscar Sin Nick, El post es sobre un tema un poco áspero por lo técnico pero en realidad no digo nada que sea complicado de hacer, si alguna vez te pasa a ti ya sabes dónde me tienes auqnue estando en wordpress.com dispones de mejor soporte técnico del que te sabría dar yo 😉

  1. Muy buenas pistas David, la verdad es que a mí nunca me ha pasado esto, pero sí algunas cosas parecidas y al menos a mi me echan a perder el día.
    Gracias por los consejos!

  2. Pingback: Bitacoras.com
  3. Una forma sencilla de ver qué ha sido modificado es revisar las fechas de modificación de los ficheros. Si el ataque es más o menos complejo y tuvo varios pasos, puedes reconstruirlo a partir de la secuencia de modificaciones.

    • Bueno, en realidad, como la edición la hicieron desde la interfaz web del blog se veía bien en el log qué es lo que habían tocado, pero ante la duda preferí reinstalar.

  4. Bueno, es que si te pasaras a Drupal no te pasarian esas cosas 😉

    Me alegro que al final todo se haya resuelto

  5. Pingback: de la red – 24/08/2010 « Tecnologías y su contexto
  6. Pingback: wp-popular.com » Blog Archive » Wordpress más seguro y cómo reaccionar a un ataque | Dondado

Los comentarios están cerrados.