04 enero 2010

EU2010.es: el FAIL es para...


¡Hola amigos! Soy Co...(perdón, no podía evitarlo)
Hoy vamos a explicar la diferencia entre usuarios que explotan Cross-Site Scriptings y "hackers" que consiguen saltarse sistemas de seguridad de una página web:

- Cross-Site Scripting
Versión teórica: Fallo en la validación de los datos introducidos por un usuario en la aplicación. En caso de que dichos datos sean código HTML o JavaScript, estos serán interpretados por el navegador del usuario.
Versión para toda la familia: Te hago hacer clic en un enlace el cual realiza la búsqueda directamente (al incluir el parámetro y valor de lo que queremos buscar ya en la petición web) y en tu navegador aparece la respuesta que devuelve la aplicación. Si el valor es una cadena de texto que contiene ciertos carácteres especiales, conseguiremos introducir código HTML o Javascript y mostrarlo en tu navegador (lado cliente).



- "hackers" que consiguen saltarse sistemas de seguridad de una página web
Versión teórica: Acceso al servidor que alberga la web o explotación de una vulnerabilidad en la aplicación que permite ejecutar sentencias con privilegios suficientes para modificar documentos del servidor web o introducir nuevos valores en base de datos.Conseguir actualizar la base de datos y modificar/añadir registros directamente, para que los cambios sean permanentes y todo el mundo los vea al acceder a la aplicación o conseguir explotar vulnerabilidades de ejecución remota de comandos, etc.
Versión para toda la familia: ¡Han entrado al servidor donde está la web, y han modificado los ficheros para mostrar otra cosa! ¡Oh Cielos!



Casi todos sabemos que el mensaje que se distribuía estos días por twitter era el correspondiente a quejas sobre el precio de la web de la Presidencia de España en la Unión Europea (eu2010.es), incluyendo un enlace a dicha web, en la que se mostraba la cara de Rowan Atkinson interpretando a su personaje más famoso, Mr.Bean. Ese enlace, al distribuirse mediante el servicio de microblogging, estaba acortado para que cupiese perfectamente. Si a uno no se le ocurre mirar la dirección a la que está apuntando realmente, y accede, se toparía con el supuesto "asalto de Mr.Bean".

La dirección completa a la que se apuntaba era la siguiente:
Análisis rápido:
  • Funcionalidad vulnerable: resultadoBusqueda.html
  • Parámetro vulnerable: query
  • Código inyectado en la web, interpretado por el navegador:


La función javascript document.write recibe como parámetro una cadena de texto, y esta es escrita en el documento actual. Pero no escrita directamente en el fichero, si no en el documento que estamos visualizando en el navegador, repito, EN EL NAVEGADOR. Como podéis deducir, la cadena de texto es un código HTML que importa una imagen, que recoge de la dirección web http://blog.tmcnet.com/blog/tom-keating/images/mr-bean.jpg.

De Cross-Site Scripting y sus tipos (persistente y no persistente), así como modificaciones concretas en según que parámetros, os hemos hablado por aquí largo y tendido, e incluso, hemos practicado con ellos, teniendo corazonadas o estudiando audiencias web de los blogs, entre otros.

¿Y qué pasa? Que también os hemos hablado muchas veces de los medios de comunicación frente a "hackeos", como se toman las noticias, como las resumen, como se hacen eco de ellas, las palabras que utilizan y demás, el problema es que el público general, cuando veían el telediario hoy, o visitaban sus periódicos online, se han quedado con una idea que no es del todo...cierta, o por lo menos con tal magnitud.

Si, es mucho dinero para una web realizada sobre un software libre OpenCMS (versión 7.5.1, por lo menos es la última...), con traducciones automáticas a otros idiomas (eso cuesta 180.000 euros según esta nota de adjudicación), y tiene fallos de seguridad, pero este no es de los más graves-alerta-se.cae.el.mundo-todos.al.bunker-primero.mujeres.y.niños. Este se debería quedar en anecdótico.

33 comments :

rodri dijo...

12M€ ha sido el contrato de adjudicación...eso dará para unas cuantas auditorías de seguridad, no??

Miguel dijo...

me ha encantado la "versión para toda la familia", que me va a permitir mandaros a un montón de nuevos lectores (al menos para esta noticia ;)

un abrazo!

Anónimo dijo...

Más allá de que no le quito importancia al dinero que pagamos todos los españoles, pienso que no debemos meternos con las cantidades como si de una burrada se tratase ya que en el detalle de la contratacion no se especifica a lo que se compromete el proveedor.

Este ultimo párrafo que has escrito lo puedo interpretar como competencia entre proveedores y podría pensar que tu pujas.

Los motivos por los que cualquier vulnerabilidad puede perdurar o se puede haber pasado en un sitio como este, pueden ser varios, desde competencia entre proveedores, querer echar a un proveedor, querer hacer simplemente mala prensa para sacarse de encima a algún cargo político, etc.etc.etc.etc.

Yo pensaba que aquí escribiais artículos de información/cultural como se ha hecho con el resto del artículos.

Te animo a rectificar el enfoque si lo que has querido escribir es otra cosa.

-Nico

Chema Alonso dijo...

@JAG, sí, pero como ya sabes, un XSS en el buscador es un XSS de libro.

Sale en la primera media hora de una auditoría de seguridad. Vamos o eso creo que tarmanos en "buscarlo" nosotros.

Sobretodo, después de que el PSOE tuviera el suyo propio "de libro".

Saludos Malignos!

José A. Guasch dijo...

@Miguel, muchas gracias por tus palabras! Intentamos siempre explicar las cosas "para todos los públicos", y que no salgan los tópicos de "sólo os veo como 0's y 1's" :)

@Anónimo/Nico, ¡realmente es envidia "sana" por hablar de tantos millones de euros! Siento si con mi forma de escribir este post "tan de urgencia" se ha podido malinterpretar el enfoque.

@Maligno, eso está claro, sobretodo en estos libros que resultan ser "best sellers"! Yo creo que más que en la primera media hora, nada más abrir una web lo primero que se hace es meter comillas o alerts por todas partes ¿eh? :P Quizás al no considerarlo importante, decidieron pasarlo por alto... El problema aquí es malinterpretar este tipo de vulnerabilidades y transmitir a la gente el 10% de lo que realmente ha ocurrido.

Anónimo dijo...

A mi no parece aceptable que un fallo así llegue a un entorno de producción hoy en día, sea cual sea la causa no existe excusa profesional. Vergonzoso también el trato que ha recibido la noticia en los medios. He escrito mi opinión en mi blog.

José A. Guasch dijo...

@José Nicolás, espero que sí, pero ahora entre tú y yo...¿realmente será suficiente para que dejemos de ver este tipo de fallos u otros? Crucemos los dedos

Anónimo dijo...

¿180.000 por la traducción? ¿El sueldo de 3 traductores profesionales durante un año? ¿Todo eso les costo traducir un portal web?

Ahí hay alguien que se esta llevando dinero y es vergonzoso que nadie haga o diga nada.

José A. Guasch dijo...

Curioso cuanto menos, que después de un buen downtime de la web durante tanto tiempo a lo largo del día de hoy, sigan vulnerable a Cross-Site Scripting, aunque no he probado en el mismo .html...

XSS en eu2010

El hecho de que no se haya conseguido explotar una vulnerabilidad crítica, no quiere decir que no se tenga que tener totalmente en cuenta. Las vulnerabilidades Cross-Site Scripting, son, como tal, vulnerabilidades, y la criticidad está definida según el entorno dónde nos encontremos.

En una web personal quizás pueda pasar desapercibido, pero en un proyecto de tales características, que va a servir de plataforma o parte pública a una representación a nivel europeo, no se debería consentir NINGUNA vulnerabilidad en la aplicación, sea un XSS o un listado de directorios en según que directorio. Es más, ni siquiera deberíamos conocer que gestor se está utilizando por debajo, ni su versión exacta.

Emilio Casbas dijo...

Este tipo de propagandas puede servir para "concienciar" de la necesidad de auditorías web. La mala imagen se queda para los implicados cuando el mayor culpable ha sido la prensa.

Aunque algunos ya lo han dejado claro tambien, en cuanto al hackeo y costes. http://www.mmadrigal.com/algunos-datos-sobre-el-presunto-hackeo-de-la-web-de-presidencia-de-la-ue/

Buena explicación para todos los públicos con ese toque de humor. :-)

Anónimo dijo...

Los 180.000 no son para las traducciones automáticas, la Presidencia requiere muchos otros servicios de traducción.

lost-perdidos dijo...

¿Y con los 12 millones de euros que ha gastado el actual gobierno de Zapatero no solucionan este tipo de fallos? Pues menudo derroche el que está haciendo este hombre, entonces habrá que ponerse a pensar en los comprometedores fallos que podrían existir.

Todo esto supone un "FAIL" para los propios programadores, y especialmente para los responsables de seguridad del sitio. Pero, por el titular y referencias aquí descritas, esto más bien parece una crítica hacia elMundo.es que al verdadero fallo en sí.

El suceso está descrito en varios sitios en una "versión familiar", pero aun así ha quedado bastante claro que se trata de un ataque hacia el sitio, puesto que se han aprovechado de una vulnerabilidad en su validación de datos.

Para terminar, decir también que la información publicada en elMundo se ha visto con una serie de explicaciones parecidas en otros periódicos digitales y se ha podido comprobar esto también en noticias de televisión, pero obviamente no van a exponer en ellas planteamientos sobre XSS, puesto que ni los medios de comunicación son una consultoría de seguridad, ni todo el mundo es informático (y me incluyo).

Un saludo a todos.

José A. Guasch dijo...

@lost-perdidos, el FAIL es para los encargados de la web, de seguridad y demás, eso está claro, y de ahí mi último comentario, sobre que la vulnerabilidad está, y es vergonzoso que una web de estas características tenga un simple fallo de seguridad (nada de somos humanos, hay sitios y sitios, sobretodo disponiendo de tantos recursos como parece)

El FAIL también es para los medios, en los que vi como primero transmitían una información (todos por igual) que era falsa y engañaba a los lectores que no tenían mucho conocimiento sobre estos temas de lo que había ocurrido, y que a lo largo de la tarde fueron actualizando con la verdadera información (algunos modificaron la noticia sin decir nada, y en el RSS quedaron todas las versiones, otros escribieron otra noticia rectificando la información que dieron en un principio...) Esto fue lo que me hizo escribir este post y no dejarlo en un tweet como hicimos al principio en twitter.com/secbydefault

Si lo hacen con esto, ¿qué harán sobre las cosas que no entendemos el resto? :/

Txalin dijo...

http://www.eu2010.es/system/login/index.html

jijijijiji

Alguien ha probado a hacer un sql injection? Con la chapuza que se han montado fijo que se puede :)

José A. Guasch dijo...

@Txalin, ahí habrá Inyección SQL si la hay reportada (o no) en OpenCMS. Por eso comenté anteriormente que no se debería saber NADA de dónde está montado, ni sobre qué, etc. El revelar demasiada información también puede dar quebraderos de cabeza, y en sitios como este, las criticidades de todas las vulnerabilidades encontradas deben elevarse, sin escatimar.

Anónimo dijo...

Buenos días, no acostumbro a escribir comentarios pero hoy creo que es necesario hacerlo... para únicamente pare deciros que: sois la polla!! jejje

La verdad que me ha encantado la forma tan MAESTRA de contrarrestar una noticia que no tenía ni pies ni cabeza..

Un Saludo, y seguid así.

Kalvin dijo...

Alguien ha probado de cambiar el idioma de la página? ... En inglés si que está traducido pero en catalán solo se traducen los títulos de los enlaces del menú principal... Eso lo he descubierto en 1min. Si alguien se pasa un rato más navegando por el sitio no seguro que el nivel de indignación sube hasta las nubes. Me parece que en traducores no ha sido en lo que se ha ido la pastaca gansa que se han gastado...

Seguid así! Os leo cada día!

Anónimo dijo...

El calendario podría tener inyección a ciegas (no lo he comprobado del todo porque la web va lentísima)... veremos lo que tardan en hacer un defacement de verdad...

aureli dijo...

Tan solo Felicitarte por el articulo...



"justificar y sostener "filosóficamente" a una burocracia política para.." según Zaratrusta

fossie dijo...

Respecto a lo que ha dicho "Anonimo" (Nico) no estoy nada de acuerdo, creo que este blog es imparcial y no puja para nada sobre las adjudicaciones. No creo que sea malo quejarse, yo tambien pienso que telefónica se está aprovechando de un software libre para ganar un monton de dinero sin hacer "nada" y eso no me parece justo.

Patxi dijo...

Creo que Anecdótico (IMHO) no es precisamente el calificativo que merece, viendo la repercusión mediática (redículo europeo incluido) y sabiendo las cosas que se pueden llegar a hacer con una vulnerabilidad XSS.

Un saludo y buen trabajo.

Anónimo dijo...

y todavía sigue caida.. eso si que es una CHAPUZA de cojones..



The requested URL could not be retrieved

--------------------------------------------------------------------------------

While trying to retrieve the URL: http://www.eu2010.es/en/resultadoBusqueda.html?

The following error was encountered:

•Connection to 195.235.239.6 Failed
The system returned:

(110) Connection timed out

José A. Guasch dijo...

@Patxi, totalmente de acuerdo, en realidad quería transmitir que me parece anecdótico en comparación a "hackear el servidor web y campar a tus anchas"

@Anónimo, quizás por la avalancha de visitas, aunque no es muy normal cuando se supone que es una web que debería tener medios suficientes para responder a tal cantidad de accesos. Ahora mismo es famosa en España por lo que está ocurriendo, cuando estemos en plena presidencia y toda Europa la utilice como medio informativo, veremos como responde.

Espero que además de preocuparse de la disponibilidad, estén preocupándose de el resto de temas.

Anónimo dijo...

Fantástica Explicación de lo sucedido!!

También añadiré que el fastuo presupuesto de la web se debe a que el proyecto había costado más de 11 millones de euros, si bien este importe no solo cubre el alojamiento, desarrollo y seguridad del sitio. También se incluyen otros asuntos relacionados con la instalación y funcionamiento de los medios de telecomunicaciones, sistemas informáticos y servicios de videostreaming de los centros de prensa que se habilitarán en las cumbres internacionales.

Espero que ahora añadan clases de seguridad informática y unas becas acceso a todos estos periodistas de media pluma con el fin de estudiar el diccionario de la lengua y así diferenciar entre hacker y entendido en la materia.

Un saludo!!

Pd. Supongo que después de esta, la palabra hacker será añadida en el Real diccionario de la lengua española...

Anónimo dijo...

Supongo que para vosotros modificar el precio de una cesta online por medio de la manipulación de variables, el robo de sesiones o espiar una comunicación mediante MITM no es hacking ya que no tomas el control de ningún sistema.
Curioso criterio el vuestro.

José A. Guasch dijo...

@Anónimo, nadie ha dicho que no se considera "hacking", lo que se pretende exponer con este post es la diferencia entre lo realmente ocurrido y lo "transmitido".

Como se ha comentado en anteriores comentarios de este mismo hilo, el Cross-Site Scripting es una vulnerabilidad, y como tal debe ser subsanada.

La cosa cambiaría si la web tuviese un proceso de autenticación (¿cómo el panel de login de OpenCMS?) y se consigue que uno de los administradores de la web acceda a tal dirección que contiene, en vez de la inclusión de una imagen como el de la noticia, con un código javascript que "robe" y envíe su sesión (document.cookie) a un usuario. Por ello, no se dice que no sea hacking, se dice que no se ha asaltado de momento ningún servidor mediante esta vulnerabilidad.

David dijo...

Muchas gracias por la explicación. Sólo recordar que la seguridad por la oscuridad es una falacia. Me parece muy bien que la web funcione con OpenCMS, que Telefónica use software libre y que se sepa.

JotaSk8Bdr dijo...

¡Blasfemia!
¿¿¿!!!11,9 millones de € sólo por arreglarlo poniendo un "htmlentities"!!!???
¡¡¡Viva la informática!!!
¡¡¡Elegí bien la carrera!!!

(ironía ON)

Anónimo dijo...

Buenas tardes. Y una vez practicado el correpondiente saludo, comentarle sr. José A, Guash, asi, a en directo que es usted o bien inoiperante en seguridad o tan mentiroso como el gobierno actual.
- Aún hoy, el formulario buscador de dicho sitio, contiene errores en su programación, ya que procurando inyectar un script de una simple función "alert", el servidor responde en vez de como en el resto de cadenas no existentes como sería lo normal, es decir con el habitual programado en este sitio de - Resultados de búsqueda
No se ha encontrado coincidencias -; con el de una página de error de respuesta a dicha búsqueda, lo que indica que dicho sitio es vulnerable mediante programación inyectada correctamente. La respuesta a una acción de tal índole, ha sido la siguiente:
Error

Error
This page can't be displayed. Contact support for additional information.
The incident ID is: 5265074793258320322

Ello indica claramente que mediante una simplísima autoría de seguridad externa, que se ha descubierto que existe una puerta "backdoor" para la manipulación del código interno del sitio existente en el servidor de hosting. Después ya vendrían procedimientos adecuados para romper directamente el mismo.
Sea TRANSPARENTE de una vez por todas y no nos tome el pelo, que algunos ya tenemos hasta canas.

No obstante, saludos.

José A. Guasch dijo...

@Anónimo de las canas,

Saludos, siento decirle que no he entendido apenas nada de lo que ha dicho, no sé por qué me llama mentiroso, lo de in**perante y demás.

De todas formas, observo que han solventado el Cross-Site en el otro html que citábamos, algo de lo que me alegro, y esperamos que no ocurra en ninguna otra parte de la web.

filtro-chapuza-login-opencms dijo...

Hola,

He visto que han cerrado también la página de login de OpenCms http://www.eu2010.es/system/login/index.html , ahora devuelve un error 400 "Bad Request", (aunque siendo puristas debería ser un error 403).

En todo caso lo han cerrado muy chapuceramente ya que si en vez de poner /system/login, ponemos /system//login, nos saltamos el filtro-chapuza:

http://www.eu2010.es/system//login/index.html

el formulario da un error, pero con esta URL se pueden probar contraseñas sin problema:

http://www.eu2010.es/system//login/index.html?ocUname=Admin&ocPword=password&ocOuFqn=&login=true&requestedResource=%252Fsystem%252Fworkplace%252Fviews%252Fworkplace.jsp

Yo trabajo para una web publica de un ministerio y deciros que por lo que sé a mi empresa no nos han pagado tanto como a telefónica, 12 millones de euros y de momento no nos han cazado en ninguna de estas (el martes lo primero que hice fue probar el mr bean en mi web y pasamos la prueba del algodón)

SpamLoco dijo...

Muy bueno el artículo, como comentas en uno de los comentarios, ¿qué harán sobre las cosas que no entendemos el resto?

Anónimo dijo...

¿180.000 por traducir una web?

Otro pelotazo más. ¿De quien es amigo el contratista?