Pharma Hack, el virus spammer para blogs WordPress: cómo solucionarlo y prevenirlo

De vez en cuando aparece un nuevo virus en el mundo informático y a veces ocurre que atacan sitios donde no esperabas. Ahora le toca el turno a los blogs en WordPress. ¿Por qué WordPress? Bueno, aquí entraría un factor importante y es que se trata de uno de los CMS más populares del mundo, no en vano existen multitud de millones de blogs creados bajo esta plataforma y el número crece día a día, así que eso lo convierte en un blanco predilecto para hackers y también spammers, de esto último es de lo que vamos a hablar.

Pharma Hack es un malware que afecta a blogs creados WordPress y cuyo efecto más directo es el siguiente:

En primer lugar, instala sin que te des cuenta y de forma invisible docenas o enlaces de enlaces a sitios de venta de productos farmacéuticos (de ahí su nombre) aunque parece que están apareciendo otras variantes que enlazan igualmente a sitios de contenido adulto.

En segundo lugar, el ‘virus’ funciona de forma transparente y utiliza varias tácticas para ser indetectable, una de ellas es que cuando tú visitas tu blog no notas diferencia ni nada extraño, pero cuando es un motor de búsqueda el que visita tu blog para indexar sus páginas entonces es cuando muestra los enlaces.

El resultado directo de esta táctica es que solo puedes darte cuenta de que has sido afectado cuando encuentras alguna página de tu blog en algún buscador como Google o Bing y entonces comienzas a ver resultados extraños como este:

Si te fijas en el resumen que aparece justo debajo de los enlaces, no tienen nada que ver con el blog en cuestión, sino con venta de productos de esos que son espacialmente atrayentes para los spammers.

El bueno de Google te avisa con un mensaje del tipo ‘This site may be compromised’ o ‘Este sitio puede haber sido modificado por terceros’. Si tu blog aparece bajo estas circunstancias es que probablemente has sido atacado por el Pharma Hack.

¿Cómo elimino Pharma Hack?

La respuesta a esta pregunta es compleja porque, como ya mencionamos, la infección funciona de forma inteligente a varios niveles para evitar que puedas detectarlo. En principio podrías pensar que es suficiente con realizar una copia de seguridad de la base de datos e imágenes del blog, realizar una instalación limpia de WordPress y restaurar las copias de seguridad.

Sin embargo, veremos que no es tan sencillo. Lo primero antes de todo es hacer una copia de seguridad de tu base de datos por si acaso y, como suelo decir, sigue los pasos siguientes a tu propio riesgo y siempre con cuidado.

El primer paso es abrir phpMyAdmin y echar un vistazo a las tablas de tu blog, llegados a este punto supongo que ya sabes cómo hacer esto ¿verdad? Una vez que tienes las tablas en pantalla, echa un vistazo a wp_options.

Este es el núcleo más importante de la infección, porque gran parte del código se encuentra escondido entre los campos de esta tabla. Normalmente deberías buscar cadenas que puedan parecer extrañas. En mi caso encontré estos campos:

Como puedes ver, todos contienen la cadena ‘kdata’, aunque buscando encontré algún campo más con el nombre ‘wp_optimize’. El problema es que estos nombres parecen ser variables, así que en tu caso no te queda otra opción que ir revisando los campos hasta dar con los que tienen el código dañino.

Si te fijas, el contenido de estos campos es una cadena muy larga de caracteres y números aparentemente sin sentido. Esto es porque están codificados en base-64, un sistema que permite esconder cadenas de texto normales y hacerlas parecer algo que no son. Si quieres saber cuál es el contenido real de estas cadenas puedes utilizar herramientas como este decodificador online. Simplemente copia y pega las cadenas de texto que te parezcan sospechosas y pulsa el botón que aparece abajo ‘Decode Safely as Text’, no uses el otro botón porque éste evita que se ejecute algún posible código que estés comprobando.

Una vez que te has deshecho de los campos peligrosos en wp_option ahora llega la segunda parte. Algunos de los ficheros de tu blog estarán infectados igualmente y, de hecho, también se habrán creado algunos archivos que no deberían estar ahí.

Según parece, la puerta de entrada (quizás no sea la única) del Pharma Hack es el plugin Akismet. Todo blog en WordPress lo trae de serie así que es una forma de conseguir afectar al mayor número de blogs posibles. Lo primero que puedes hacer es dirigirte a tu carpeta de plugins, abrir la de Akismet y asegurarte de que sólo existen tres ficheros, los tres que vienen con el plugin de serie. Aquí deberías comprobar los ficheros ocultos (los que empiezan con un punto ‘.’), tu programa de FTP seguramente sea capaz de mostrártelos. En la carpeta de Akismet no debería existir ningún archivo oculto y los ficheros peligrosos pueden tener nombres similares a estos:

.akismet.cache.php
.akismet.bak.php
.akismet.old.php
class-akismet.php
db-akismet.php

A unas malas, siempre puedes eliminar la carpeta de Akismet por completo y volver a re-instalar el plugin si lo ves necesario, pero ten en cuenta que el virus se ha podido extender a otras extensiones.

A partir de aquí el trabajo se hace más duro, tendrías que comprobar el contenido de los ficheros del blog uno por uno hasta localizar cadenas extrañas similares a las que aparecían en la wp_options de MySQL. En estos archivos, las cadenas peligrosas aparecen junto a funciones ‘eval()’ o ‘base64_decode()’, así que buscarlas dentro de cada archivo es una forma de trabajar.

Llegados a este punto es posible que estés pensando en utilizar la ‘opción nuclear’, es decir, re-instalar WordPress con la última versión, restaurar bases de datos y archivos multimedia y luego re-instalar los plugins desde cero dejando tu blog limpio.

Sin embargo, no es tan fácil porque, como ya mencionamos, el virus es ‘inteligente’ a varios niveles, trabaja de forma parecida a ‘Alien’. Si viste la película, sabrás que el ente infecta a un humano sin que este note nada y cuando menos se lo espera salta rompiéndole el pecho en dos para salir al exterior. Pharma hack utiliza una técnica similar, puedes permanecer infectado durante meses sin darte cuenta hasta que un buen día se activa y comienzas a notar los síntomas.

Esto significa que puedes encontrar archivos antiguos que estén infectados y ni siquiera te des cuenta, por ejemplo, quizás estés pensando en restaurar una copia de seguridad que realizaste hace un par de meses pensando que está limpia, pero posiblemente no lo está.

Esto afecta también a las carpetas dentro de ‘upload’, porque los archivos dañinos acaban en estas mismas carpetas donde se suben las imágenes y demás archivos que añades a tu blog. Seguramente ya te has dado cuenta de lo que esto significa: cuando estás restaurando las imágenes a tu nueva instalación de WordPress estás llevando contigo el virus de vuelta sin darte cuenta.

Por este motivo, otro punto es inspeccionar todas las carpetas dentro de ‘upload’ para localizar archivos .php o con extensiones sospechosas que no sean imágenes.

Ahm, ¿te parecía demasiado complejo? Pues todavía podría serlo más, porque para evitar ser descubiertos, los archivos infectados pueden tener contenidos como este:

Fíjate en los símbolos de almohadilla que aparecen en la parte superior ‘#’. Si te fijas, aparecen unas letras mezcladas con ellos, si las juntas todas tienes: eval(base64_ … una forma más de camuflar el código.

Cómo saber si la infección sigue activa o no

En este caso particular, estar seguro al 100% de que tu blog no está infectado es bastante difícil por algo que ya comentamos: puede permanecer latente sin dar muestras de actividad durante meses, dándote una falsa sensación de seguridad.

Sin embargo, la forma de saber si está activo o no es fácil, simplemente compara las cachés de tu blog en Google y Bing de esta manera:

- Visita Google y realiza una búsqueda similar a ‘v**agra site:tusitio.org’. No hace falta decir que debes sustituir los asteriscos adecuadamente por la palabra que todos sabemos y donde dice ‘tusitio.org’ cámbialo por la url de tu web. Puedes probar con otras palabras igualmente como c**alis, etc.

- Verás que aparece una página de resultados donde sale tu web repleta de esas palabras que no mencionamos pero que todos sabemos cuáles son.

- Si mueves el ratón justo a la derecha de uno de los resultados aparecerá la vista previa de Google con una miniatura de la página. En esta miniatura puedes acceder a la ‘caché’. Esta caché es tal como estaba la página cuando Google la visitó por última vez.

- Visita Bing y realiza los mismos pasos anteriores para acceder a la caché de una de tus páginas.

- Por último, solo tienes que hacer click con el botón secundario del ratón sobre una de las páginas-caché que acabas de abrir y seleccionar del menú desplegable la opción para ‘Ver el código fuente’. Aquí es donde puedes acceder al código oculto que genera el Pharma Hack con todos los enlaces, normalmente al final de la página, pero en un < div > diseñado de forma que sea invisible a simple vista.

Llegados a este punto solo tienes que fijarte en un detalle: Google actualiza rápidamente sus cachés, pero Bing tarda más. Si ves que la caché de Google está limpia y la de Bing no lo está entonces es buena señal, dentro de unos días o semanas también estará limpia la caché de Bing. Si ves que ambas cachés contienen enlaces indeseables significa que el virus sigue activo.

Otra forma de comprobarlo es utilizando un servicio como éste que echa un vistazo a tu sitio web y comprueba si es seguro o no, al menos te sirve como referencia.

Cómo prevengo volver a infectarme

Una vez que has limpiado Pharma hack de tu blog queda hacerse la pregunta ¿está el blog realmente limpio? saberlo es muy difícil porque es posible que una vez entró vuelva a hacerlo o quizás se quedó perdido algún archivo ‘zombie’ infectado en alguna carpeta.

Una buena idea es utilizar algún plugin de seguridad/antivirus para WordPress, aquí tienes algunas técnicas al respecto.

Otra buena idea es echar un vistazo a wp_options de vez en cuando de forma manual y, por último, también tienes una opción algo radical: instalar un plugin que te avise cada vez que se realiza un cambio en tu blog. Este tipo de plugins pueden llegar a hacerse pesados si actualizas tu blog frecuentemente porque te envían notificaciones a tu correo electrónico, sin embargo, la ventaja es que te aseguras de conocer rápidamente qué archivos se han creado o cuáles se han modificado de forma automática, y he aquí que pillas al virus entrando en acción justo a tiempo.

Si te interesa, uno de estos plugins es WordPress File Monitor Plus. Si tienes más preguntas o experiencias que compartir déjalas en comentarios. ¡Suerte!

Opina

*