21 may 2009

Como evitar la explotación de la vulnerabilidad XST (Cross-Site Tracing)

Mi constante preocupación acerca de los apurados e irreales cronogramas de desarrollo para sitios Web se confirmó el otro día cuando me llamaron para investigar lo que resultó ser un caso de cross-site tracing (XST).

Un ataque cross-site tracing explota controles ActiveX, Flash, Java y otros que permiten la ejecución de una llamada HTTP TRACE. Este tipo de ataque no es nuevo; fue descubierto por el investigador de seguridad Web Jeremiah Grossman en 2003, y permite a un atacante conseguir acceso a las cookies e información de credenciales de autenticación de un individuo.

El llamado HTTP TRACE le pide a un servidor Web que conteste el contenido de las solicitudes al cliente. La solicitud completa, incluyendo los encabezados HTTP, que pueden incluir información sensible como cookies o información de autenticación, es devuelta en el cuerpo de la entidad de una respuesta TRACE. La solicitud es usada principalmente por los desarrolladores para probar y depurar aplicaciones HTTP y por defecto está disponible en la mayoría de los programas de servidores Web.

Una forma de llevar a cabo un ataque XST es crear una página que incluya algún JavaScript que contenga la solicitud TRACE. El JavaScript entonces puede explotar cualquier vulnerabilidad cross-domain en el navegador del visitante para recolectar las credenciales en cache de cualquier sitio, incluyendo aquellos que utilizan SSL.

Otro método más comúnmente usado toma el snippet JavaScript que contiene la solicitud TRACE y lo inyecta en la aplicación Web vulnerable. El JavaScript será capaz de enviar los encabezados de las solicitudes de la víctima, incluyendo la información de cookie etiquetada como “httpOnly”, al atacante. “httpOnly” es un parámetro adicional agregado a los cookies, que oculta a los cookies de los scripts y es soportado por la mayoría de los navegadores; el método TRACE, sin embargo, puede ser usado evitar esta protección.

Es fácil para un atacante, o para un administrador de sistema, verificar si un servidor Web soporta el método TRACE. Usando utilitarios tales como el Netcat de fuente abierto – un servicio de redes que puede leer las conexiones de red con TCP o UDP – los atacantes pueden usar el método OPTIONSS de HTTP para obtener la lista de métodos soportados por el servidor Web.

Consejos rápidos: Cómo detener la explotación de una vulnerabilidad cross-site tracing
Para impedir este tipo de ataque, es esencial que los métodos PUT, DELETE, CONNECT y TRACE estén deshabilitados en sus servidores Web ya que todos representan un riesgo de seguridad.

Si una aplicación necesita uno o más de estos métodos, tal como los servicios Web REST (que puede necesitar PUT o DELETE), es importante verificar que su uso sea apropiadamente limitado a los usuarios confiables y en condiciones seguras. Para deshabilitar el soporte de HTTP TRACE en un servidor Apache, fije TreaceEnable en Off. Si está corriendo IIS en un servidor Windows, use la herramienta URLScan para rechazar las solicitudes HTTP TRACE o para permitir solo los métodos necesarios para satisfacer los requerimientos de su sitio y de su política de seguridad.

[Nota de Segu-info: Paper sobre XST en ingles de Jeremiah Grossman se puede descargar de: http://www.net-security.org/dl/articles/WH-WhitePaper_XST_ebook.pdf ]


Autor: Michael Cobb, CISSP-ISSAP
Fuente: SearchSecurity.co.UK http://go.techtarget.com/r/6996131/648659
Traducción de Raul Batista para Segu-Info

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!