URL con permisos de redirección abiertos: ¿Están abusando de tu sitio?

viernes, 27 de febrero de 2009

Nadie desea malware o URL con spam en su dominio, por eso intentamos seguir las prácticas de seguridad recomendadas [inglés] .  Pero,  ¿y si hubiera una manera de que los spammers se aprovechen de tu sitio, sin ni  siquiera poner un pie en tu servidor?

Existe una manera, y es mediante el abuso de URL con permisos de redirección abiertos .

Los webmasters se enfrentan a una serie de situaciones en las que es útil redirigir usuarios a otra página. Lamentablemente, se puede abusar de las redirecciones abiertas. Es una forma de abuso particularmente molesta, ya que se aprovecha una funcionalidad del sitio en lugar de abusar de un error o un defecto de seguridad. Los spammers esperan usar tu dominio como página de inicio de forma temporal para engañar a usuarios de las búsquedas y del correo electrónico,  así como a motores de búsqueda, para que vayan a enlaces que aparentemente apuntan a tu sitio, pero que en realidad redirigen a sitios de spam.
En Google trabajamos duro para mantener esas URL fuera de nuestro índice, pero es importante que, por tu parte, te asegures de que no están abusando de tu sitio. Probablemente no quieras que los usuarios encuentren en tu dominio esas URL, que los llevan a pantallas llenas de porno no deseado, virus y malware desagradables, o intentos de phishing. Los spammers generarán enlaces para hacer que esas redirecciones aparezcan en los resultados de búsqueda y éstos suelen provenir de malos vecindarios, con los que no quieres que se te asocie.

Últimamente, este tipo de abuso se ha convertido en algo relativamente común.  A continuación vamos a dar algunos ejemplos de redirección, luego hablaremos de cómo saber si están abusando de tu sitio y qué hacer al respecto.

Abusos en las redirecciones por parte de los spammers

Hemos observado que los spammers han atacado una amplia gama de sitios web, desde grandes empresas bien conocidas a pequeños organismos de gobiernos locales. La siguiente lista es una muestra de los tipos de redirecciones que hemos visto. Son todas técnicas perfectamente legítimas, pero debes vigilarlas si se utilizan en tu sitio web.
  • Los scripts que redireccionan usuarios hacia un archivo en el servidor ,  como un documento PDF, pueden ser vulnerables. Si utilizas un sistema de gestión de contenidos (CMS) que te permite cargar archivos, puede que quieras asegurarte de que los enlaces van directamente al archivo, en lugar de ir a través de una redirección. Esto incluye cualquier redirección que puedas tener en la sección de descargas de tu sitio. Ten  cuidado con enlaces como estos:
example.com/go.php?url=
example.com/ie/ie40/download/?
  • Las páginas de resultados de búsqueda internos a veces tienen opciones de redirección automática que podrían ser vulnerables. Busca patrones como este, en el que se envía automáticamente a los usuarios a cualquier página que figure tras el parámetro "url=":
example.com/search?q=user+search+keywords&url=
  • Los sistemas de seguimiento de clics de programas de afiliación, programas de anuncios o estadísticas podrían estar abiertos también. Algunos ejemplos son:
example.com/coupon.jsp?code=ABCDEF&url=
example.com/cs.html?url=
  • Los sitios proxy , aunque no redirijan siempre, están diseñados para enviar a los usuarios a otros sitios y, por lo tanto, pueden resultar vulnerables a este abuso. Esto incluye los que utilizan las escuelas y las bibliotecas. Por ejemplo:
proxy.example.com/?url=
  • En algunos casos, las páginas de inicio de sesión redirigirán a los usuarios a la página que intentaban acceder. Presta atención a parámetros de URL como:
example.com/login?url=
  • Los scripts que ponen una página intermedia cuando los usuarios salen de un sitio pueden ser objeto de abusos. Muchos sitios web de instituciones educativas, gubernamentales o de grandes empresas hacen esto para que los usuarios sepan que la información encontrada en los enlaces salientes no está bajo su control. Echa un vistazo a URL con patrones como:
example.com/redirect/
example.com/out?
example.com/cgi-bin/redirect.cgi?

¿Están abusando de mi sitio?

Aunque ninguno de los patrones mencionados arriba te parezcan familiares, puede que tengas redirecciones abiertas que vigilar. Hay varias formas de ver si éstas son vulnerables, y no es necesario que seas desarrollador.
  • Comprueba si las URL atacadas se muestran en Google. Prueba la búsqueda con el operador site: [inglés] en tu sitio para ver si algo raro se muestra en los resultados de Google para tu sitio. Puedes añadir palabras que sean poco probables que aparezcan en tu contenido habitualmente, como por ejemplo contenido para adultos. Si la consulta [site:example.com viagra] no debería ofrecer resultados pero sí lo hace, eso podría ser un problema. Puedes automatizar estas búsquedas con las Alertas de Google .
  • Presta atención a consultas extrañas que aparezcan en el apartado de Consultas de búsqueda más habituales en las Herramientas para webmasters. Si tienes un sitio dedicado a la genealogía de la aristocracia terrateniente, un gran número de consultas sobre porno, pastillas o casinos podrían ser algo por lo que preocuparte. Por otro lado, si lo que tienes es un sitio con información sobre medicamentos,  no esperarás ver nombres de famosos en las consultas más frecuentes. Vigila  si recibes mensajes de Google en el centro de mensajes de las Herramientas para webmasters.
  • Comprueba los registros del servidor web o de analytics para parámetros de URL desconocidos (como "= http:" o "=//"), o picos de tráfico para redirigir URL en tu sitio. También puedes comprobar las páginas con enlaces externos en las Herramientas para webmasters.
  • Vigila las quejas de los usuarios sobre contenido o software malicioso que sabes con certeza que no se encuentra en tu sitio. Tus usuarios pueden haber visto tu dominio en la URL, antes de haber sido redirigidos, y pueden suponer que siguen en tu sitio.
¿Qué puedes hacer?

Desafortunadamente, no hay una manera fácil de asegurarse de que nadie abusa de tus redirecciones. Una redirección no es un error o un defecto de seguridad en sí. Algunos usos requieren que éstas sean bastante abiertas. Pero hay algo que puedes hacer para evitar el abuso o, por lo menos, hacer que resulten menos llamativas. Algunos de estos no son banales, es posible que tengas que escribir un código personalizado o consultar a tu proveedor sobre parches de seguridad.
  • Cambia el código de redirección para que compruebe el referrer ; ya que en la mayoría de los casos todo el mundo llega a tu script de redirección de manera legítima desde tu sitio, no desde un motor de búsqueda o cualquier otro lugar. Probablemente tengas que ser permisivo, ya que algunos navegadores no informan del referrer, pero si se detecta que un usuario viene de un sitio externo, puedes detenerlo o avisarlo.
  • Si el script sólo debe enviar a los usuarios a páginas internas o archivos (por ejemplo, a una página para descargar archivos), debes desactivar específicamente las redirecciones externas .
  • Considera la posibilidad de utilizar una lista de destinos seguros . En este caso, el código debe mantener un registro de todos los enlaces salientes y asegurarse de que reorienta al usuario hacia un destino legítimo.
  • Considera la posibilidad de firmar tus redirecciones . Si tu sitio realmente necesita proporcionar redirecciones, puedes codificar [inglés] correctamente la URL de destino y, a continuación, incluir la firma encriptada como parámetro al hacer la redirección. Esto permite que tu propio sitio redireccione URL sin abrir el elemento que redirige URL al público.
  • Si tu sitio no necesita redirecciones, deshabilítalas o elimínalas . Hemos observado un gran número de sitios en los que los únicos usuarios de las redirecciones son los spammers. Probablemente se trata de una opción activada de forma predeterminada.
  • Utiliza r obots.txt para excluir a los motores de búsqueda de las redirecciones de tu sitio. Esto no resolverá el problema del todo, ya que los spammers podrían utilizar tu dominio en correos electrónicos spam. Tu sitio les parecerá menos atractivo, y al menos no se engañará a los usuarios mediante los resultados de búsqueda. Si tus scripts se encuentran en una subcarpeta junto con otros scripts que no necesitan aparecer en los resultados de búsqueda, puedes excluir toda la subcarpeta con el fin de que les resulte más difícil el simple hecho de encontrarlos.
El abuso de redirecciones abiertas es un gran problema ahora mismo, pero creemos que cuanto mayor sea el número de webmasters que conocen el problema, más difícil les será a los chicos malos sacar provecho de los sitios incautos. No dudes en dejarnos tus sugerencias en los comentarios o compartirlas en el Foro de Google para webmasters .