Los investigadores Eduardo Vela y David Lindsay han presentado, en el marco de la conferencia Black Hat Europa de este año, un nuevo método para ejecutar ataques de cross-site scripting a través de los filtros XSS de Internet Explorer 8.
Microsoft introdujo un mecanismo para filtrar ataques de cross-site scripting, concretamente los de "tipo 1" o no persistentes. Un cross-site scripting no persistente es la clase de ataque más común y extendida de este tipo de ataques.
El atacante manipula una URL insertando código malicioso que, de manera errónea, aprovechando una vulnerabilidad, el sitio web usará para generar una página que contendrá el código legítimo más el código introducido por el atacante.
La víctima que "inadvertidamente" use la URL proporcionada por el atacante, enviará una petición hacia el servidor web y este "reflejará" el código de vuelta hacia el cliente donde es usado por el navegador como si fuese código legítimo.
Es denominado no persistente ya que el servidor no almacena el código malicioso y es reflejado porqué en realidad es el mismo navegador el que va a enviar el ataque a través de la petición HTTP hacia el servidor web y éste de vuelta al navegador de la víctima.
La idea general del filtro XSS de Internet Explorer, es observar la secuencia solicitud-respuesta entre navegador y sitio web. A grandes rasgos, modifica el código que se recibe del servidor antes de que sea interpretado por el navegador, si detecta que la página recibida contiene código sospechoso enviado en una de las solicitudes del navegador. Básicamente, evita "reflejar" el código malicioso.
La base del mecanismo de neutralización de ataques del filtro es alterar el código malicioso. En caso de observar código sospechoso de vuelta al navegador, el filtro actúa antes de que se interprete la página, insertando o reemplazando caracteres en partes de ese código para impedir su ejecución transformándolo en código no válido.
Ya en su momento se hizo público una vulnerabilidad que aprovechaba el filtro XSS para producir este tipo de ataques. Microsoft liberó un boletín (MS10-002) en el que se corregía la vulnerabilidad. Aun así, se encontraron nuevas formas para revertir el uso del filtro y Microsoft volvió a reforzarlo en un nuevo boletín (MS10-018).
Lo que han mostrado los investigadores es que es no solo es posible evadir el filtro sino que sigue siendo posible efectuar ataques de cross-site scripting, incluso en sitios webs que no son vulnerables. Adicionalmente, el filtro también podría ser usado por el atacante para impedir la ejecución de scripts legítimos, posibilitando la evasión de mecanismos de seguridad propios del sitio web visitado.
David Ross de Microsoft, ha confirmado que publicarán un parche hacia el mes de junio para prevenir este tipo de ataque.
Más Información:
Abusing IE8s XSS Filters [PDF]
http://p42.us/ie8xss/Abusing_IE8s_XSS_Filters.pdf
Guidance on Internet Explorer XSS Filter
http://blogs.technet.com/msrc/archive/2010/04/19/guidance-on-internet-explorer-xss-filter.aspx
Microsoft introdujo un mecanismo para filtrar ataques de cross-site scripting, concretamente los de "tipo 1" o no persistentes. Un cross-site scripting no persistente es la clase de ataque más común y extendida de este tipo de ataques.
El atacante manipula una URL insertando código malicioso que, de manera errónea, aprovechando una vulnerabilidad, el sitio web usará para generar una página que contendrá el código legítimo más el código introducido por el atacante.
La víctima que "inadvertidamente" use la URL proporcionada por el atacante, enviará una petición hacia el servidor web y este "reflejará" el código de vuelta hacia el cliente donde es usado por el navegador como si fuese código legítimo.
Es denominado no persistente ya que el servidor no almacena el código malicioso y es reflejado porqué en realidad es el mismo navegador el que va a enviar el ataque a través de la petición HTTP hacia el servidor web y éste de vuelta al navegador de la víctima.
La idea general del filtro XSS de Internet Explorer, es observar la secuencia solicitud-respuesta entre navegador y sitio web. A grandes rasgos, modifica el código que se recibe del servidor antes de que sea interpretado por el navegador, si detecta que la página recibida contiene código sospechoso enviado en una de las solicitudes del navegador. Básicamente, evita "reflejar" el código malicioso.
La base del mecanismo de neutralización de ataques del filtro es alterar el código malicioso. En caso de observar código sospechoso de vuelta al navegador, el filtro actúa antes de que se interprete la página, insertando o reemplazando caracteres en partes de ese código para impedir su ejecución transformándolo en código no válido.
Ya en su momento se hizo público una vulnerabilidad que aprovechaba el filtro XSS para producir este tipo de ataques. Microsoft liberó un boletín (MS10-002) en el que se corregía la vulnerabilidad. Aun así, se encontraron nuevas formas para revertir el uso del filtro y Microsoft volvió a reforzarlo en un nuevo boletín (MS10-018).
Lo que han mostrado los investigadores es que es no solo es posible evadir el filtro sino que sigue siendo posible efectuar ataques de cross-site scripting, incluso en sitios webs que no son vulnerables. Adicionalmente, el filtro también podría ser usado por el atacante para impedir la ejecución de scripts legítimos, posibilitando la evasión de mecanismos de seguridad propios del sitio web visitado.
David Ross de Microsoft, ha confirmado que publicarán un parche hacia el mes de junio para prevenir este tipo de ataque.
Más Información:
Abusing IE8s XSS Filters [PDF]
http://p42.us/ie8xss/Abusing_IE8s_XSS_Filters.pdf
Guidance on Internet Explorer XSS Filter
http://blogs.technet.com/msrc/archive/2010/04/19/guidance-on-internet-explorer-xss-filter.aspx
No hay comentarios.:
Publicar un comentario
Déjanos tu comentario, nos permitirá mejorar.
¿Qué opinas de este tema?
¿Tienes alguna duda o sugerencia?
¿Te parece adecuado y completo este tema?
¿Falta información? ¿Cual?