Automatización de sitios cruzados: el regreso de un viejo problema

Cuando dos sitios de la Web trabajan juntos pueden crear problemas de seguridad. Aprenda cómo protegerse de esta amenaza persistente.

En mayo, su creador George Deglin, consultor de seguridad de la Web, descubrió una secuencia de comandos de sitio cruzado (XSS o cross-site scripting) relacionada con la polémica característica de Personalización instantánea de Facebook (visite find.pcworld.com/70207). El ataque ejecuta en Yelp, uno de los tres sitios que Facebook había seleccionado para probar la Personalización instantánea. Deglin no solamente pudo obtener la información de perfil de Facebook compartida con Yelp sino también las direcciones de correo electrónico de los amigos de ese perfil de Facebook—una mina de oro potencial para los comerciantes y spammers. Poco después de haberse reparado el defecto de XSS descubierto por Deglin, apareció otro en Yelp, y Facebook suspendió temporalmente el programa de Personalización instantánea en ese sitio.

[<img border="0" src="/pcwla2.nsf/0/E1E6CA41BBE09CF08525778D0078609C/$File/44gusanosago10.gif">]

Los ataques basados en XSS no son nuevos, pero el alza en los medios sociales añade una nueva posibilidad de ataque.

Una guía de XSS

El método de ataque XSS más común usa el correo electrónico: Un criminal añade caracteres especiales, como los de un idioma extranjero, al URL ordinario. Estos caracteres podrían indicarle al servidor de la Web que ejecute una secuencia de comandos creada por el pirata. Por ejemplo, digamos que un atacante añade una secuencia de comandos al URL de su banco y le envía un correo electrónico. Si usted pulsa el vínculo creyendo que se trata de un correo electrónico legítimo de su banco, su navegador envía la secuencia de comandos al servidor de la Web, el cual ejecuta el código malicioso y pasa al atacante una cookie de navegador con los detalles del nombre de usuario y contraseña de su banco, lo cual permite al malhechor el acceso a su cuenta de banco en línea.

Otro tipo de ataque XSS almacena el código malicioso en un servidor de la Web. Por ejemplo, el atacante entra en un sitio de comercio electrónico y publica un mensaje que contiene una secuencia de comandos. Unos días más tarde, usted entra en el sitio y lee el mensaje infectado. Como antes, la secuencia de comandos roba la cookie con su información de entrada y la pasa al malhechor, quien entonces puede hacerse pasar por usted.

Un tercer tipo de ataque XSS afecta al propio navegador de la Web. En este escenario, el atacante pone un archivo de Flash envenenado en uno de los sitios que usted visita. Cuando su navegador descarga el vídeo, el archivo inicia una secuencia de comandos en el navegador y el atacante entonces puede controlar elementos de la página dentro de su navegador.

La Web 2.0 y XSS

Los sitios actuales de la Web realizan mucho mejor la labor de filtrar los ataques de XSS comunes que en el pasado, pero ¿qué pasa cuando dos sitios con necesidades de filtrado muy diferentes deciden asociarse?

Digamos que usted pulsa un anuncio en el sitio A. Sin que usted lo sepa, ese anuncio contiene un ataque de XSS que silenciosamente lleva su navegador al sitio B, un sitio de viajes con acceso total a su perfil de red social. Mediante un ataque de XSS, usted no tendría que visitar el sitio B para ser víctima, ni abrir una sesión, ni pulsar nada allí, ni siquiera saber que existe. Debido a que el sitio B ya tiene el acceso al perfil de su red social (y quizás la información de sus amigos), los criminales detrás del anuncio en el sitio A ahora también tienen acceso a esa información. Esto es lo que está comenzando a suceder con los mashups de la Web 2.0 parecidos a la colaboración entre Facebook y Yelp.

Desafortunadamente, los sitios no pueden impedir los ataques de XSS simplemente cifrando las conexiones. SSL (Secure Sockets Layer), indicado por el pequeño candado que aparece en la barra de herramientas cuando usted navega por un sitio cifrado, meramente cifra el ataque. Por lo general, los diseñadores del sitio tienen que cerrar sus sitios para impedir los ataques de XSS.

Los usuarios tienen dos maneras de evitar los ataques de XSS. Una es ignorar los vínculos de un sitio a otro: si el sitio A tiene un vínculo a, por ejemplo, algúnsitioaleatorio.com/página, en vez de pulsar dicho vínculo usted iría directamente a algunsitioaleatorio.com en otra ficha y encontraría la página usando la característica de búsqueda del sitio. Esta técnica es efectiva contra los ataques de XSS empotrados en los vínculos de URL, pero es inconveniente—y no ayuda para nada que dos sitios compartan el contenido. Otro método es inutilizar los lenguajes de secuencias de comandos como JavaScript dentro de su navegador. Aunque esto puede inutilizar las características deseables en algunos sitios, quizás usted la considere como una condición aceptable.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.