Como sobrevivir y protegerse de un defacement en WordPress

Justo el día (bueno mejor dicho la noche) en la que se publicaba en Bloguismo como proteger tu WordPress al máximo, mi propio Blog, Un Cafelito a las Once, sufría el ataque de un hacker (turco parece, pero cualquiera sabe). En concreto el ataque consistió en un defacement. Pero como toda buena catástrofe se pueden aprender unas buenas lecciones que me gustaría compartir con vosotros.

Como buen blogger tenía casi todo lo que se recomendaba en el artículo de Bloguismo y aun así sucedió lo peor. Siempre tenemos que estar preparados para los cisnes negros.

¿Qué es un defacement? Casi literalmente es desfigurar, es decir, cambiarle la cara a tu blog. En mi caso salía una bonita bandera turca con un un mensaje diciendo que se había hackeado mi sitio. Genial.

Lo primero que hice fue buscar información sobre el ataque (iskorpitx) y ver algunos vídeos de cómo se puede hacer un defacement. No para hacerlo claro, sino para saber cómo funciona.

El mecanismo es bastante simple. Si te roban tu clave de FTP tendrán el acceso a todos tus archivos, por tanto podrán cambiar cualquier archivo a su antojo. En el caso de un defacement en una instalación de WordPress, se sustituye el index.php por otro index.php falso. El resultado es que solo carga una página inicial que no es la de tu blog y te quedas con cara de tonto. Tus lectores ni te cuento. Afortunadamente el hacker se contenta con reemplazar el index.php, pero podría haber hecho cualquier cosa. ¿Asusta no?

Por eso es fundamental tener siempre una copia de seguridad de tu blog lo más actualizada posible.

Para solucionar el problema hay que hacer lo siguiente:

  1. Fundamental, es cambiar todas tus claves y sustituirlas por unas claves totalmente nuevas y autogeneradas. Y apuntarlas
  2. Abrir tu copia de seguridad del blog y volver a restaurar el index.php original. Afortunadamente este php no contiene casi nada y solo carga otros componentes del blog. Por lo que no tienes que tener miedo de que se cambie la apariencia de tu blog.
  3. Una vez restaurado el blog y comprabado que todo funciona, hacer inmediatamente una copia de seguridad manual de TODO el contenido. Insisto en TODO, porque algunas plugins hacen backup de la base de datos, pero no los archivos. Recordad que es el index.php el archivo que nos interesaba recuperar y este no se almacena en base de datos.
Estas son algunas de las medidas preventivas que he tomado para el futuro.
  1. Poner una alarma para cambiar tu contraseña por otra igual de fuerte cada cierto tiempo. Un método efectivo y simple. No previene un ataque puntual, pero el hacker se terminará aburriendo.
  2. Automatizar las copias de seguridad con cron. Muchos hosting ofrecen este servicio previo pago, pero es posible hacerlo de forma automática con las tareas cron. Si no te quieres complicar la vida, merece la pena pagar o ponerte una alarma que te recuerde hacer una copia manual cada cierto tiempo.
  3. Limitar por IP el acceso a la carpeta wp-admin. Solo tú y tus colaboradores deberían poder acceder. Intenté hacer lo mismo con el FTP, pero en el hosting me dijeron que no era posible :(
  4. Instalar TODOS los plugins de seguridad que recomendaba bloguismo y hacer caso a sus recomendaciones
Espero que tomando estas medidas, si alguna vez vuelve a ocurrir algo parecido tenga el blog operativo de nuevo en menos de 5 minutos. La seguridad absoluta es imposible y no depende de nosotros, pero la solución si que está en nuestras manos.

¿Qué otras medidas preventivas se os ocurren? ¿Tenéis controladas vuestras copias de seguridad?