« # »

Anomalía en esquemas en Firefox

No tengo mucha idea de cómo explicar esto, a ver si alguien se anima a esclarecer un poco los términos.

He encontrado una ligera anomalía (por no llamarlo bug explotable) en el trato que da Firefox de las URLs que contienen esquemas no reconocidos, ya que si lanzamos una dirección (del tipo ed2k:) desconocida para el navegador, este muestra una alerta. Esto podría no ser nada si no fuese porque nos puede permitir saber que software tiene instalado un visitante. Lo explico:

El principal problema de esto es que si abrimos una URL desconocida por el navegador desde javascript, este lanzará una excepción (un error) que nos permitirá saber si el visitante tiene instalado un programa u otro similar (por ejemplo, con el esquema callto: nos puede abrir Skype como un cliente distinto de Voip).

A continuación podéis ver el script en ejecución*: ver Demo

*: Necesario Firefox, la ejecución puede llegar a colgar el navegador, se guardan datos estadísticos para posterior analisi y post en el blog.

He abierto un track en bugzilla para que me digan algo :P.

Comentarios

  1. jespasac | agosto 22nd, 2009 | 7:58 pm

    No es un bug Marc, ni tampoco te permite saber que software está instalado o no el la máquina del Firefox que visita la página que contiene la demo. Me explico: tu puedes dar por supuesto que el cliente no tiene el Skype porqué el Firefox te dice que no tiene ningún programa asociado, pero, en todo caso _ES UNA SUPOSICIÓN_. Yo puedo tener el skype instalado en mi máquina y no hacer que sea el Firefox el que procese su esquema URL. Quizá sea raro… bueno, quizá si, pero es así. A todas luces no es un bug, sino una manera curiosa de dar por supuesto información, a todas luces, dudosa en todo caso.

  2. marc | agosto 23rd, 2009 | 12:34 pm

    Jordi, te pongo un ejemplo de lo que se puede obtener con esto:

    Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 FirePHP/0.3 | callto,skype,ed2k,itms,lastfm,

    Protocolos Skype, Edonkey, Itunes y LastFM

    Creo que software que interprete estas aplicaciones sólo hay una (menos la ed2k y quizás la de skype).

    Entendiendo lo que entiendes de seguridad me extraña mucho que interpretes una supuesta suposición como algo banal y sin ningún tipo de valor.

    Para mi Firefox tendría que solucionar esto, ya que quizás no llegue a comprometer la seguridad de los usuarios pero si compromete la privacidad de los mismos.

    “Yo puedo tener el skype instalado en mi máquina y no hacer que sea el Firefox el que procese su esquema URL. Quizá sea raro… bueno, quizá si, pero es así.”: Tu eres un usuario avanzado, pídele a tu prima que haga eso a ver que te dice (¿mande?).

    Aparte, que cuando se instala el Skype por poner un ejemplo (al menos en windows) lo que hace es configurar el esquema para ser abierto con un software determinado, luego tanto desde IExploter, Firefox, y el resto de navegadores, se ejecuta el soft que esté configurado para dicho esquema.

    Explorador de archivos – Herramientas – Opciones de carpeta – Tipos de archivo – Extensión (NINGUNO), Tipos de archivo URL:XXXXXX <- definición del esquema
    (Tambien en Protocolo URL: xxx).

    Es a todas luces un bug, javascript NO tiene porqué saber esa información.

  3. jespasac | septiembre 2nd, 2009 | 8:50 pm

    No interpreto eso como información banal. Toda información es la punta del iceberg de un supuesto ataque. Por ejemplo, la identificación de servidores httpd o smtp suele “enmascararse” precisamente por eso. Imagínate que tienes el WebServer Pepito 2.0 y que corre por ahí un exploit al respecto de esa versión… pues eso.

    Sin embargo, a eso se le llama “security by obscurity” y, aparte de que su eficacia es ninguna más allá de “disimular un poco”, eso no tiene nada que ver con un bug.

    Un bug es un fallo de programación como bien sabes (qué te voy yo a contar a ti, que eres peazo programador) y, en el caso que nos ocupa, no lo es. Esa programación funciona perfectamente bien. Que quizá pueda significar un compromiso para el cliente? Quizá. Que quizá molaría que el Firefox diera la oportunidad de “no enseñarlo”? Quizá.

    Pero no es un bug. Y así te lo harán saber los developers cuando contesten. Lo tratarán como una mejora/sugerencia o cómo quieras llamarle, pero no es un bug.

    ¿Acaso es un bug que cuando connectes por ssh usando del flag verbose (-v) se te diga la versión del servidor contra el que conectas? Pues es lo mismo. Y el OpenSSH es, posiblemente, la aplicacion relacionada con seguridad de más extenso uso hoy en día.

  4. marc | septiembre 7th, 2009 | 6:36 pm

    Wikipedia: Software Bug

    Un defecto de software (computer bug en inglés), es el resultado de un fallo o deficiencia durante el proceso de creación de programas de ordenador o computadora (software). Dicho fallo puede presentarse en cualquiera de las etapas del ciclo de vida del software aunque los más evidentes se dan en la etapa de desarrollo y programación. Los errores pueden suceder en cualquier etapa de la creación de software.

    Me discutes si eso es un bug o una anomalía en la implementación? pero si será lo mismo hombre. Yo a eso lo llamo chapuza, y pa mi chapuza también se le puede llamar bug. Pero bueno, si nos ponemos semánticamente correctos y talibanes de la lengua me remito a la descripción de la wikipedia, tema cerrado.

    Y a lo del Firefox insisto, que javascript retorne error al lanzar una URI es un BUG (del arquitecto del motor de javascript quizas?), y garrafal para la privacidad del usuario (es el único navegador que casca con esto).

    Saludos y hasta pronto!

  5. jespasac | septiembre 11th, 2009 | 11:19 am

    ¿Qué dicen los developers al respecto? Pasa la URL de referencia del bugzilla al respecto.

  6. marc | septiembre 11th, 2009 | 1:27 pm

    Los developers no se que dicen, ya que el bug track que abrí no está. Supongo que considerarán lo mismo que tu.

    Tahora!

Deja un comentario

(*: Datos necesarios para dejar un comentario)

Get Adobe Flash playerPlugin by wpburn.com wordpress themes