sábado, 3 de diciembre de 2016

Usuarios TorBrowser al descubierto (SVG Scripting)




Autor: @RaulRenales

Es conocido que uno de los problemas de nuestra era es la perdida de privacidad que estamos sufriendo a medida que incorporamos las nuevas tecnologías en nuestro día a día. En este sentido mucha gente busca soluciones para no ofrecer sus datos o simplemente para poder obtener una dirección ip distinta por donde navegar de una manera mas anónima, allá cada uno con sus objetivos.


¿Que es TorBrowser?


Navegador Tor Browser en funcionamiento desde España, ofreciendo IP de Lituania.

Tor Browser es un navegador gratuito de código abierto configurado para funcionar en la red Tor, en la que tus llamadas pasan encriptadas por varios servidores antes de salir a Internet. Es un poco más lento que Hotspot pero te da privacidad.


¿Porque quedaron usuarios de TorBrowser al descubierto?



El pasado 30 de noviembre, la Mozilla Fundation Security publico su anuncio 2016-92 en el que informaba de una vulnerabilidad Critica relativa a la explotación del objeto nsSMILTimeContainer utilizado para la gestión de animaciones SVG, encontrando un exploit capaz de ejecutar código arbitrario en navegadores Firefox y TorBrowser sobre sistemas operativos Windows.

Según se pudo comprobar tras el análisis del comportamiento del exploit, el trabajo principal de este era la recolección de direcciones IP reales y direcciones MAC de las maquinas para ser reenviadas a un servidor central sin tener conocimiento del uso que esta información puede llegar a tener. Se teoriza sobre el origen del exploit y se cree que tiene origen en una acción gubernamental.

¿Y esto que supone?


Básicamente lo que supone es que multitud de usuarios que utilizan TorBrowser con el objetivo de ocultar su IP estarían siendo sistemáticamente registrados mediante esta técnica, perdiendo por completo la capa de anonimato que este navegador les ofrece.

Pero .... ¿y esto de SVG como funciona?


Aprovechando esta noticia, me gustaría ver un poco como funciona el concepto de las animaciones SVG y la utilización de JavaScript con ellas. Algo que ya habíamos estado hablando en la asociación hace unos días.

Primero de todo definir que es SVG,  un formato vectorial poco conocido pero muy útil para su uso online por su flexibilidad y por la capacidad de ofrecer gráficos con calidad. Este formato nos permite crar animaciones (SMIL Animation) utilizando lenguajes de programación muy conocidos como JavaScript o ECMAScript principalmente.

Una vez que nos decidimos a la creacion de esta animacion, podemos incluir el codigo javascript embebido en la imagen o utlizar lo de manera separada en un archivo externo, por ejemplo.

Para este ejemplo vamos a incluir el javascript dentro del SVG, por lo que el código quedaría mas o menos así:

<svg width="100%" height="100%" viewBox="0 0 100 100"
     xmlns="http://www.w3.org/2000/svg">
  <script type="text/javascript">
    // <![CDATA[
    function change(evt) {
      var target = evt.target;
      var radius = target.getAttribute("r");

      if (radius == 15) {
        radius = 45;
      } else {
        radius = 15;
      }

      target.setAttribute("r",radius);
   }
   // ]]>
  </script>

  <circle cx="50" cy="50" r="45" fill="green"
          onclick="change(evt)" />
</svg>

Este ejemplo es muy sencillo y solo cambia el radio de una circunferencia al pulsar sobre ella, pero dentro de las etiquetas Script cabe todo lo que tu imaginación pueda programar, incluido el reenviar las direcciones ip de los usuarios de TorBrowser.

Si quieres ver el código funcionando y jugar un poco con el, puedes hacerlo en CODEPEN.

También os dejo un ejemplo de un SVG con el código totalmente embebido, de tal manera que no precisa de mucho mas que la ejecución de los eventos para ponerse en marcha:

http://apike.ca/media/svg/exampleJavascript.svg

Y con esto me despido, sondeare a ver si gusta esto del SVG para escribir algun articulo más con ejemplos algo mas jugosos.



Fuentes:

https://www.mozilla.org/en-US/security/advisories/mfsa2016-92/
http://apike.ca/prog_svg_jsanim.html
https://developer.mozilla.org/en-US/docs/Web/SVG/Element/script

Articulo relacionado:

https://insert-script.blogspot.com.es/2016/12/firefox-svg-cross-domain-cookie.html?m=1




No hay comentarios:

Publicar un comentario