Tiempo Aproximado de Lectura: 4 minutos
Este articulo fue publicado hace 3 años. Por favor ten presente que este contenido podría no estar vigente o podría estar desactualizado.

Uno de nuestros clientes tiene un sitio en el que ha trabajado mucho llamado sitiowebdejemplo.com. El usa WordPress y siempre lo mantiene actualizado. El también mantiene sus plugins actualizados, utiliza contraseñas seguras, accede al panel de administración a través de SSL y toma todas las recomendaciones de seguridad muy en serio.

El utiliza un servidor compartido de Nodored y por ende, tiene la capacidad de hospedar varios en dominios en sus plan. A través de los años ha sabido aprovechar esta oferta, añadiendo algunos sitios aquí y allá. Uno de esos sitios es unsitiodepruebas.com, que lo utilizaba para instalar nuevos temas y plugins que encontraba en internet.

Ahora bien, han pasado varios meses desde que modifico alguno de los otros sitios que tiene, por ejemplo en el caso de unsitiodepruebas.com no ha sido actualizado y alberga un plugin que desde hace unos meses fue eliminado del repositorio de WordPress. Poco sabe nuestro cliente que se eliminó desde el repositorio por tener una vulnerabilidad de seguridad muy grave.

Parte 1: los malos llegaron

Como en cualquier historia, los chicos malos no perdieron tiempo en la búsqueda y explotación de esta vulnerabilidad.

Tenían una lista con millones de sitios que estaban escaneos diariamente (basado en Alexa). Finalmente encontraron el sitiowebdejemplo.com (por tener un muy buen ranking) y trataron de explotarlo… sin éxito. Buscaban cualquier vector de ataque potencial; cosas como la versión de WP, plugins vulnerables, contraseñas débiles (haciendo uso de la fuerza bruta y ataques de diccionario), utilizaron una serie de herramientas, pero nada funcionó. Nuestro cliente ganó esa batalla gracias al mantenimiento brindado a ese sitio web.

Unos días después, utilizando una serie de técnicas encontraron que en el mismo servidor se tenía otro sitio: unsitiodepruebas.com. A diferencia del sitiowebdejemplo.com, utilizando las mismas técnicas que antes, fueron capaces de obtener acceso. Encontraron rápidamente el plugin vulnerable y se aprovecharon de su vulnerabilidad para obtener acceso.

Nuestro cliente dijo: Bueno, eso está bien, es sólo su sitio sin importancia, unsitiodepruebas.com, a quién le importa, ¿verdad?

Parte 2: ¿Cómo hackearon mi sitio web?

Al día siguiente, nuestro cliente comenzó a recibir correos electrónicos de sus usuarios quienes se quejaban de que el sitiowebdejemplo.com estába causando que sus anti-virus locales indiquen alertas de virus y bloqueen el sitio. Lo primero que hizo el cliente es ir a su sitio para ver lo que está pasando. El fue recibido con una advertencia poco agradable:

“Este sitio puede dañar tu equipo”

Y entonces la gran pregunta: ¿Cómo hackearon mi sitio web? Yo hice todo bien!! He seguido todas las recomendaciones de seguridad!!!

Parte 3: Contaminación cruzada

En la parte 1, terminamos con una pregunta: “Bueno, eso está bien, es solo su sitio sin importancia, unsitiodepruebas.com, a quién le importa, ¿verdad?”

¡ERROR!

Sí, nuestro cliente lo hizo todo para proteger el sitiowebdejemplo.com. Lo que no hizo es aplicar esos mismos principios a todos sus sitios que se alojaban en la misma cuenta. Se olvidó de que, debido a que los otros sitios están en la misma cuenta compartida (y pueden ser manejados por el mismo usuario), cualquier vulnerabilidad en ellos se puede utilizar para comprometer toda la cuenta.

Una vez en el servidor el atacante fue capaz de introducir todo tipo de código malicioso. Al igual que cualquier virus, se auto-replica, insertándose en todos los archivos PHP que podía encontrar. Este se extendió por todos los directorios en su sitio.

Parte 4: Solucionar el Problema

Como era de esperar, nuestro cliente nos contacto inmediatamente para que le diéramos una solución inmediata al problema del sitio sitiowebdejemplo.com. Nuestro equipo de soporte escaneo el sitio y elimino todo malware que se encontró en esa instalación de WordPress. Unas horas después todo se esta mostrando correctamente de nuevo, todas las advertencias habían desaparecido.

Incluso nuestro cliente dio unos pasos más en esta ocasión, bloqueó el acceso a wp-admin por IP e instalo todos los plugins de seguridad que pudo encontrar. ¿Victoria?

Parte 5: Contaminación cruzada y re infecciones

No. Ni siquiera cerca. Dentro de una hora todos los errores habían reaparecido.

¿Por qué ocurrió esto cuando se había seguido todas las recomendaciones de seguridad?

La respuesta es simple, es un concepto conocido como la contaminación cruzada. En realidad es muy sencillo de entender. Todos sabemos cómo funcionan los virus, que se propagan. No tiene sentido tener un virus que no se propaga.

Lo mismo se aplica al malware web. Se duplica en sí, inyectándose a si mismo en pequeños directorios muy ocultos donde nunca revisarías. Lugares que ni siquiera puedes imaginar. Es posible que tengas un directorio para todos los archivos JavaScript, allí podrías encontrar un archivo de PHP. Puede ser que tengas un directorio para las imágenes y en uno de esos archivos PNG podría estar ocultándose un ejecutable.

¿Y si trabajamos juntos?

Esta breve historia es muy real, ocurre cada vez con nuestros clientes y la idea es darte un ejemplo acerca del concepto de contaminación cruzada y la gravedad del mismo.

La cuestión es muy simple, si tienes muchos sitios en la misma cuenta (bajo el mismo usuario), cualquiera de ellos puede ser utilizado para poner en peligro a los demás. A los atacantes no les interesa que tan importante es un sitio para ti, lo único que quieren es un punto de acceso.

Es desafortunado, pero vemos esto todo el tiempo. Es por eso que una de las primeras cosas que debes hacer es analizar las versiones del software que utilizas (WordPress, Joomla, etc.) y las vulnerabilidades conocidas. Es triste informar que con demasiada frecuencia nos encontramos con cosas como esta:

/sitiowebdejemplo.com (WordPress 3.3.1)
/sitiowebdejemplo.com_backup_1 (WordPress 3.1) – Desactualizado
/sitiowebdejemplo.com_backup_2 (WordPress 3.2.1) – Desactualizado
/sitiowebdejemplo.com_backup_3 (WordPress 3.2.1) – Desactualizado
/otrositiowebdeejemplo.com (WordPress 1.5) – Desactualizado
/unsitiowebmuyimportante.com (Joomla 1.5) – Ni que decir acerca de la versión. – Desactualizado

Lo que nuestros clientes suelen hacer es “almacenar” respaldos, sitios antiguos, sitios de clientes, etc, en la misma cuenta de hosting. Atendiendo solo a los clientes actuales, y usando el servidor como almacenamiento para respaldos sin percatarse del problema potencial.

Lecciones aprendidas y puntos de acción para ti:

  • Mantén tus sitios web actualizados – lo más probable es que un ataque automatizado se dirija a una versión vulnerable del software
  • La contaminación cruzada es real! Si tienes varios sitios en un entorno de alojamiento compartido y no les das mantenimiento, estás tomando el riesgo de que se infecten entre ellos si son atacados.
  • ¿Ya mencione que debes revisar que tu software este actualizado? No puedo enfatizar esto lo suficiente. Si es anticuado es peligroso, actualizalo ya!. Si no lo necesitas, eliminalo en este momento!
  • Recuerda que el hosting no es un servicio de almacenamiento de archivos, si tienes algo que no estas usando eliminalo.