En esta entrada revisaremos el proceso que en Mvkoen te recomendamos seguir para recuperar tu sitio web en WordPress de un ataque, así como los pasos que puedes seguir para prevenirlo:
El camino hacia la recuperación
Dependiendo del tipo y el alcance que ha tenido el ataque, saber por dónde empezar puede ser la parte más difícil de esta tarea. Aunque los detalles específicos de un ataque y su recuperación pueden variar, los siguientes pasos pueden ser aplicados de forma general:
Paso 1: Respaldar
Aún y cuando tu sitio pudiese estar infectado, es importante contar con una copia de seguridad por si acaso las cosas pasan de mal a peor. Obtén una copia de seguridad completa de tu sitio web, incluyendo todas las bases de datos (como las agregadas por los plugins). Descarga todos los archivos y realiza una exportación completa de SQL a través de PhpMyAdmin.
Una alternativa que funciona muy bien y que te permitirá agilizar este paso, es utilizar el plugin para WordPress: «BackupBuddy«. IMPORTANTE: Nunca omitas este paso.
Paso 2: Cambiar contraseñas y claves de acceso
Antes de iniciar la limpieza de tu sitio, ingresa al panel de control de WordPress y cambia las credenciales de acceso (para todos los usuarios), haz lo mismo con las contraseñas de las bases de datos y restablece las claves secretas de WordPress que se encuentra en el archivo: «wp-config.php«.
Esto nos permitirá expulsar y evitar el acceso a cualquier persona no deseada.
Paso 3: Ejecutar Scanners
Utiliza «Sucuri Sitecheck Malware Scanner«, un plugin que te permite identificar los archivos comprometidos de WordPress. Puedes realizar una búsqueda de plugins similares desde el repositorio oficial de WordPress. La idea de utilizar un plugin con función de escáner es con el objetivo de ahorrar tiempo, conocer las secciones que fueron afectadas, y el nivel de las bases de datos que han sido comprometidas.
Sin embargo, te recomendamos no confiar 100% en los resultados. Después de ejecutar el scanner, pasa al siguiente paso.
Paso 4: Volver a instalar WordPress
Elimina todos los archivos del directorio de WordPress, excepto el archivo: «wp-config.php» y el directorio: «wp-content«. A continuación, descarga una copia nueva de WordPress y sube su contenido vía FTP.
Edita el archivo: «wp-config-sample.php» con los valores de tu base de datos actual que tiene el archivo wp-config.php. Ahora elimina el archivo «wp-config.php» y sustitúyelo por el archivo «wp-config-sample.php» (no olvides cambiar su nombre por: wp-config.php).
Si conoces que archivos fueron comprometidos y sabes exactamente lo que estás buscando, puedes dejar el archivo original intacto – pero si no estás seguro, es mejor completar este paso.
Paso 5: Revisar el contenido de las carpetas
Busca cualquier carpeta de aspecto sospechoso en el directorio: «wp-content«. Una carpeta con nombre «cache» puede ser la culpable – aún y cuando estés usando un plugin de caché. Inspecciona el contenido de las carpetas y elimina cualquier cosa que sea extraña o ajena a tu sitio, si no estás seguro de algún archivo elimínalo! – recuerda que tenemos una copia de seguridad (Paso 1).
Paso 6: Revisar y volver a instalar los plugins
Con los archivos del core de WordPress seguros, el siguiente paso es revisar los plugins. Identifica los plugins que no estés utilizando actualmente y elimínalos por completo. Para los plugins que deseas conservar y seguir utilizando, esto es lo que debes hacer: desactiva y elimina todos los plugins uno a uno, y vuelve a instalarlos y activarlos. Esta tarea puede resultar un poco tediosa, en especial si tu sitio utiliza una gran cantidad de plugins.
Una vez más – si estás seguro de qué archivos han sido comprometidos puedes saltarte este paso. Si no estás seguro no te arriesgues y completa este paso.
Paso 7: Revisar plantillas o temas
Elimina cualquier plantilla o tema que no estés utilizadon, incluidos los temas contenidos por defecto. A continuación, revisa los archivos de tu plantilla o tema, busca líneas de código PHP sospechosas, así como referencias a archivos javascript. Generalmente se encuentran en los archivos «header.php» y «footer.php«. Desafortunadamente los ataques se vuelven más complejos, por lo que podrían presentarse en los lugares más difíciles de identificar (por ejemplo, el archivo functions.php).
Paso 8: Utilizar Google Webmaster Tools
En los últimos años, Google ha tomado la iniciativa para identificar y señalar sitios que han experimentado un compromiso de seguridad. Si no lo has hecho, inicia sesión en Google Webmaster Tools y comprueba que no existan advertencias. Si hay alguna advertencia marcada para tu sitio, envía una solicitud para que comprueben de nuevo y retiren la advertencia.
El camino hacia la prevensión
Si has recuperado tu sitio de un ataque o tu sitio nunca se ha visto comprometido, una de las tareas más importantes de un administrador y propietario de un sitio web en WordPress es la prevención. A continuación algunos pasos que puedes tomar en cuenta para evitar que tu sitio sea hackeado:
1. Respaldar de forma regular tu sitio web
Asegúrate de contar con un método de copia de seguridad y hacerlo de forma regular, esta copia de seguridad debe ser completa (de todos los archivos y bases de datos). Te recomendamos contar con una copia de seguridad que por lo menos sea semanal, una copia de seguridad diaria (de la base de datos por lo menos) es lo ideal. Recuerda: «BackupBuddy» es una excelente opción.
2. Monitorear los cambios en archivos
Una capa adicional de protección que ha funcionado muy bien para varios de nuestros clientes, es la adición de un plugin para monitorear los cambios en archivos. En un sitio activo puede ser una tarea muy tediosa. Sin embargo, en un sitio con poca actividad, es una excelente herramienta. WordPress File Monitor Plus es el mejor plugin para realizar esta tarea.
3. Analizar los equipos locales
Si los miembros de tu staff que acceden a tu sitio web están utilizan equipos con Windows, es importante realizarles un análisis de seguridad, sobre todo en las máquinas con acceso al Admin de WordPress y con acceso vía FTP. Desafortunadamente, esta es una fuente muy común que provoca que la seguridad de un sitio se vea comprometida.
4. Utilizar servicios de hosting administrados exclusivamente para WordPress
Hoy en día existen muy buenos de proveedores de hosting administrados exclusivamente para sitios web en WordPress, por ejemplo: WP Engine y Pressable. Ellos te proveerán de copias de seguridad automáticas y diarias (con opciones de restauración con 1 simple clic), WPEngine además se especializa en la seguridad de sistemas y en las tareas de limpieza en caso de que tu sitio se vea comprometido.
Utilicé el plugin Anti Malware http://wordpress.org/plugins/gotmls/ e identificó los ficheros infectados muy bien.
Gracias por el tutorial!
Gracias por compartir una opción más, un saludo @Hector!
excelente tutorial, me ayudo a recuperar un blog de wordpress que me fregaron unos vagos, gracias
Genial @Dustin, éxito en tu proyecto 🙂 !
Hola,
Como dicen Anti-Malware funciona genial para estos casos. Nosotros también usamos Sucuri para detectar y WordFence para proteger sobre todo de ataques automáticos.
Un saludo.
Genial @Iberzal, gracias por compartir tu experiencia 🙂