Bug en el plugin All In One WordPress Security and Firewall

En Webmasters por

Hoy voy a hablar de este bug descubierto hace unas horas con varios fines, primero informar del bug en el plugin All In One WordPress Security and Firewall y segundo describir el conocido malware pharma hack que se extendió en el año 2011. Con la descripción de pharma hack aprenderemos una de las vías de infección de malware empleadas por los hackers y así podremos protegernos.

Bug en el plugin All In One WordPress Security and Firewall

Descripción del bug en el plugin All In One WordPress Security and Firewall

El bug reside en que el plugin toma cualquier option id almacenada en la base de datos y que contenga el texto fwp como maliciosa. Identifica esta option id como malware pharma hack para después eliminarla.

El problema es que el texto fwp es muy usado por otros plugins que almacenan option id, por lo que All In One WordPress Security and Firewall al eliminanarlas, los otros plugins dejan de funcionar correctamente.

Los desarrolladores del plugin han desactivado el escáner de base de datos temporalmente ya que basarse únicamente en la cadena de texto fwp para decidir si un sitio está infectado por pharma hack o no, es insuficiente.

Si usas este plugin lo mejor que puedes hacer es desactivarlo temporalmente hasta que publiquen una actualización.

Detectar y eliminar el malware pharma hack

Esta parte del artículo me parece interesante, ya que si conocemos como nos atacan los hackers, podremos defendernos. A pesar de ser un malware del año 2011 y hoy en día prácticamente inexistente, este método puede ser explotado por otros malware, así que vendrá bien conocerlo.

¿Qué hace pharma hack?

El objetivo de este malware es introducir enlaces en las entradas de nuestros blog WordPress y curiosamente sólo elige aquellas entradas con más tráfico. Los enlaces que introduce sólo son visibles para los motores de búsqueda, nosotros no veremos ningún cambio visual que nos alerte. También modifica el título de la entrada por algo relacionado con productos de farmacéuticos.

¿Cómo funciona pharma hack?

Lo novedoso de este malware era que almacenaba el código malicioso en la base de datos como option id. A pesar de esto también necesita almacenar algún archivo malicioso en el servidor para decodificar el código que almacena en la base de datos. A pesar de usar las funciones base64_decode() y eval(), estas no están escritas directamente en los archivos PHP y esto era lo que hacia difícil detectar este malware.

Los archivos de pharma hack se suelen almacenar en la carpeta plugins (aunque también los podemos ver en la carpetas wp-content/uploads/, wp-includes/, wp-includes/images/) con diferentes nombres y el único patrón que siguen es que son siempre archivos PHP y cuyo nombre termina con: .cache.php , .bak.php, .old.php o usan como prefijo class- o db-. Ejemplos de nombres de este malware serían:
akismet.cache.php
akismet.bak.php
akismet.old.php
class-akismet.php
db-akismet.php

El contenido de los archivos lo podemos ver aquí y aquí.

En cuanto a la base de datos tenemos que examinar la tabla wp_options y usa como campo option_name los textos:
wp_check_hash
class_generic_support
widget_generic_support
ftp_credentials
fwp
rss_7988287cd8f4f531c6b94fbdbc4e1caf (cadena alfanumérica de 32 caracteres)

Como vemos no sólo hay que vigilar los archivos de nuestro WordPress sino también la base de datos. Espero que esto os haya ayudado a mantener vuestros blogs WordPress limpios de malware. Por último recordaros que para limpiar malware de WordPress podeis ayudaros del Plugin Sucuri.