Como desinfectar un sitio web WordPress hackeado

El malware o virus informáticos afectan a todo el mundo, desde ordenadores de sobremesa y smartphones hasta sitios web completos.
El malware puede provocar daños importantes en el proyecto o robar datos importantes y sensibles que pueden provocar accesos indeseados por parte de intrusos desconocidos.

La parte más importante de la protección contra malware es la prevención, esto significa que debemos tener en cuenta algunas buenas prácticas que pueden asegurarnos la mayor parte de la protección.

Cuando un malware entra y afecta a un sitio web, los resultados pueden ser variados, pero en ninguno de los casos el resultado es bueno, ya que un malware en un sitio web desarrollado en PHP con un CMS como WordPress puede generar los siguientes problemas:

  • Un excesivo consumo de recursos en el servidor web y servidor MySQL.
  • Robo de datos personales de los usuarios o clientes del sitio web.
  • Penalización por parte de Google con impacto en los resultados de Google.
  • Mensajes de alerta a los usuarios y visitantes que acceden al sitio web.
  • Puede dañar la reputación de un sitio web y hacer que sus usuarios no confíen en él.
  • Aparición de publicidad no deseada en algunas partes del sitio web, en algunos casos publicidad de mal gusto.
  • Infección de todo el servidor y envió de spam de forma masiva mediante correo electrónico.
  • Pueden existir muchos más problemas causados por el malware en un sitio web desarrollado en PHP, pero estos son los más comunes.

En este artículo vamos a describir y explicar detectar una amenaza de malware en un sitio web WordPress y como eliminar el malware para volver a hacer que el sitio sea seguro.

El sitio al que vas a acceder contiene software malicioso

Muchos webmaster se han dado cuenta alguna vez que al acceder a su sitio web aparecía un mensaje como este:

Es un mensaje bastante “alarmante” ya que Google normalmente penaliza a los sitios web con malware, aunque en muchas ocasiones también puede ser un error producido por un plugin con malware o por un error al utilizar un ad network.

En la mayoría de los casos es el propio Google el encargado de bloquear sitios infectados por malware, utilizando Google Chrome o utilizando su propio algoritmo de detección implementado en el bot del buscador, de hecho en la mayoría de los casos el problema aparece reflejado en Google Webmaster Tools como alerta importante.

Como detectar el malware y los archivos infectados

  • Antivirus en forma de plugin para el CMS, en este caso WordPress.
  • Aplicaciones online normalmente propiedad de los principales desarrolladores de antivirus.
  • Aplicaciones online para analizar archivos, subiendo todos los archivos del sitio web comprimidos al servicio.
  • Analizar los archivos con un antivirus de escritorio para Windows (solo en algunas ocasiones).

Posiblemente algún método se me olvide, pero estos son algunos de los que mejor resultado me han dado a mí.

Análisis de malware con Sucuri SiteCheck

La empresa estadounidense Sucuri tiene una herramienta online que permite escanear de forma gratuita un sitio web y conocer que archivos son los infectados y con qué virus han sido infectados, la URL al servicio es esta: https://sitecheck.sucuri.net/

Este es un ejemplo de resultados obtenidos en un sitio infectado, muestra algunos archivos infectados, el tipo de malware y el código exacto que es considerado malware (en este caso, un iframe):

La propia compañía Sucuri te ofrece desinfectar el sitio web por una suma de dinero, pero en este caso solo vamos a utilizar el SiteCheck de Securi para detectar el malware y saber contra que peleamos.

Análisis de malware con virus total

VirusTotal es uno de los servicios de análisis de malware en la nube más conocidos, ya que además de poder analizar sitios web, también podemos analizar archivos, por lo que podremos comprimir los archivos del sitio web y posteriormente subirlos a VirusTotal para ser analizados.

En este caso vamos a utilizar solo la parte de análisis de URL.

Lo que hace VirusTotal es analizar el sitio web cargado utilizando distintos motores de detección y la única información que muestra es cuantos motores de detección han dado positiva.
Puedes acceder a VirusTotal a través de la siguiente dirección URL: https://www.virustotal.com/gui/

Análisis de malware con Quttera

Se trata de otro servicio de análisis y desinfección de malware, y bastante eficiente.
Quttera ofrece más información, de hecho muestra todos los archivos infectados y muestra el código malicioso incluido en ellos.
Este es un ejemplo de lo que muestra de un archivo infectado del theme de un WordPress:

Quttera además de ofrecer mucha información sobre el malware, también tiene una buena base de datos por lo que puede detectar dominios que se encuentran en la blacklist, aunque como puedes ver en la siguiente captura, a veces tiene algunos falsos positivos:

Puedes acceder a Quttera a través de la siguiente URL: https://quttera.com/

Sustituir archivos genéricos de WordPress, theme y plugins

Cuando los archivos están infectados tenemos dos formas de resolver el problema:

  • Sustituyendo los archivos dañados o infectados por archivos nuevos genéricos.
  • Eliminando el código malicioso de todos los archivos infectados.

A veces la segunda opción no es posible, y solo la primera opción puede ser usada, en este caso vamos a hacerlo sustituyendo los archivos.

Vamos a realizar las siguientes acciones en el siguiente orden, de forma organizada y sin dejarnos ningún paso a medio hacer para que quede ni rastro del malware:

  • Sustituir los archivos de WordPress del sitio web por los archivos de WordPress descargados directamente desde el sitio web oficial: https://es.wordpress.org/
  • Sustituir las carpetas de todos los plugins por los archivos descargados en archivos .zip desde el repositorio de WordPress o desde las fuentes oficiales de cada plugin. Este es el repositorio de plugins de WordPress: https://wordpress.org/plugins/
  • Sustituir los archivos del theme por los archivos del theme descargados de la fuente oficial.

Es recomendable, en lugar de sustituir, borrar y volver a pegar los nuevos archivos para asegurar una correcta limpieza.

Una vez hecho esto, es posible que nuestro sitio web este ya más o menos seguro y que ya podamos acceder a el de forma normal a través del navegador web.
Debes tener en cuenta que si has hecho modificaciones importantes en el código del theme o el código de los plugins en relación a los originales descargados desde fuentes oficiales, vas a perderlos y debes volver a hacerlos.

Mejorar la seguridad de WordPress

Una vez que tenemos más o menos todo limpio vamos a entrar al panel de administración de WordPress y vamos a instalar algunos plugins que nos ayudaran a asegurar la instalación y a asegurarnos de que no queda ni rastro del malware:

  • WordFence: Se trata de uno de los mejores plugins de seguridad para WordPress, es una suite completa con antivirus, firewall y capacidades de detección en tiempo real.
    A veces WordFence puede fallar, ya que su poder de detección es limitado y solo busca patrones de cambios en los archivos del núcleo de WordPress.
  • Securi Security: Es otra suite de seguridad pero orientada sobre todo al análisis de malware, una buena forma de detectar y eliminar amenazas.
    El único problema que tiene es que es demasiado estricto y a veces indica falsas amenazas, además consume bastantes recursos del servidor.
  • Antivirus: Nos permite analizar todos los archivos PHP del theme de WordPress, además de programar revisiones periódicas para asegurar que los archivos del theme están siempre limpios de virus. El problema es que no afecta a los archivos CSS y JS del theme, además detecta bastantes falsos positivos.
  • Kyplex Anti-Malware Service: Analiza la instalación de WordPress entera en busca de malware, se trata de un motor de detección muy exhaustivo capaz de detectar bastantes tipos de amenazas.
  • Wemahu: Es diferente a todos los plugins que hemos mencionado hasta el momento, pero no por eso es menos efectivo. Analiza todos los archivos del sitio web en busca de inyecciones de código malicioso, tanto en archivos que se puedan leer como en imágenes.

Pedir revisión del sitio a Google

Para finalizar, una vez que nuestro sitio web se encuentra completamente limpio y sin rastros de malware debemos pedirle a Google una revisión.
Esto podemos hacerlo desde Google Webmaster Tools, si no sabes como puedes visitar la siguiente página de Google: https://web.dev/request-a-review/