cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una...

61
Cookies y otras tecnologías de monitorización en Internet Alejandro Ramos. Twitter: @aramosf Slideshare: http://www.slideshare.com/aramosf 14/9/2015

Transcript of cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una...

Page 1: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Cookies y otras tecnologías de

monitorización en InternetAlejandro Ramos.

Twitter: @aramosf Slideshare: http://www.slideshare.com/aramosf

14/9/2015

Page 2: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Introducción.

• Por motivos históricos el protocolo HTTP no está orientado a mantener la sesión.

• Lo que implica que no es capaz de distinguir a los usuarios mientras navegan.

• Debido a la necesidad de crear un “carrito de la compra” nacen las cookies.

Page 3: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Ejemplos de otros usos de las cookies.

• Identificar de forma inequívoca a un usuario permite: •Saber que páginas ha visitado. •Que productos ha buscado. •Su localización geográfica. •Conocer desde que página ha llegado. •El navegador que utiliza. •Ver en que parte de la web a movido el ratón. •… O incluso las teclas que ha pulsado.

Page 4: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración.El poder de la analítica: Open Web Analytics y los

Downstreams

Page 5: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:
Page 6: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Propiedades de las cookies• Una cookie es un secreto compartido entre cliente

y servidor para validar la identidad: un testigo. • Se almacenan en el sistema en ficheros de forma

persistente: “pequeños archivos de texto” • Tienen fecha de expiración. El testigo caduca. • Se pueden establecer para que solo se transmitan

en protocolo seguro (HTTPS). • Las de un dominio no pueden ser consultadas por

otro dominio.

Page 7: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Cookie estándar•Definidas en los RFC 2109 y 2965. •Son la gran mayoría y las más conocidas. •Se establecen mediante cabecera HTTP: Set-Cookie. •Según el navegador se almacenan en:

•IE (ficheros): %AppData%\Microsoft\Windows\Cookies •Firefox (sqlite): %AppData%\Mozilla\Firefox\Profiles\xxxxxx.default\cookies.sqlite

•Chrome (sqlite): %LocalAppData%\Google\Chrome\User Data\Default\Cookies

Page 8: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Peticiones HTTP

ServidorHTTP/1.0 200 OK Content-type: text/html Set-Cookie: name=value Set-Cookie: name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT (content of page)

Navegador

GET /spec.html HTTP/1.1 Host: www.example.org Cookie: name=value; name2=value2 Accept: */*

Page 9: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Tipos de cookies.•Existen varios formas de almacenar información de forma persistente en un navegador:

•Cookies estándar: aceptadas por los RFC de HTTP. •Cookies de HTML5 “webstorage”: nuevo método para almacenar cookies en el navegador.

•Cookies “Local Shared Object” o LSO: en las que se usa un contenedor de Flash.

•IE userData: parar versiones anteriores a la 10 de IE. •SilverLight Isolated Storage: similar a Flash pero de MS.

•No todas ellas son “ampliamente” conocidas o se pueden eliminar desde el navegador.

Page 10: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Cookies Flash - Local Shared Object•Es necesario utilizar el plugin de Flash. •Se pueden compartir entre navegadores. Ej: Firefox->IE. •Existió controversia cuando se comenzó a utilizar. Su uso era muy extendido y no se conocían los mecanismos para eliminar este tipo de datos.

•Desde 2011 se pueden eliminar desde el propio navegador. •Peligrosas ya que no caducan. •Se almacenan en:

•IE/Firefox: %AppData%\Macromedia\Flash Player\#SharedObjects\XXX

•Chrome: %LocalAppdata%\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects

•Morirán pronto, junto a flash.

Page 11: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración.La configuración de Flash y sus cookies.

Page 12: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:
Page 13: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Cookies HTML5•Nacen con HTML5 para aumentar el tamaño de las cookies y mejorar el rendimiento.

•Se pueden almacenar de formas distintas: •Session Storage: no persistente. •Local Storage: persistente y ampliamente usada •Global Storage: antiguo método. •Database Storage: en sqlite. Soportado por pocos navegadores. •IndexedDB: Chrome/Firefox y parcialmente en IE.

•Su ruta en el disco es: •IE: %UserProfile%\AppData\LocalLow\Microsoft\Internet Explorer\DOMStore

•Firefox: %AppData%\Mozilla\Firefox\Profiles\xxxxxxx.default\webappsstore.sqlite

•Chrome:%LocalAppData%\Google\Chrome\User Data\Default\Local Storage

Page 14: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Ejemplo almacenamiento Local Storage

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=html5AlmacenamientoLocal

Page 15: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración.Como se consultan las cookies en HTML5

Page 16: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:
Page 17: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Proyecto: Persist-JS•Librería que implementa varios métodos para almacenar cookies

•flash: Flash 8 persistent storage. •gears: Google Gears-based persistent storage. • localstorage: HTML5 draft storage. •globalstorage: HTML5 draft storage (old spec). • ie: Internet Explorer userdata behaviors. •cookie: Cookie-based persistent storage.

•https://github.com/jeremydurham/persist-js

Page 18: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración.PersistJS en Internet.

Page 19: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:
Page 20: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Alternativas a las cookies.• Técnicamente es posible “engañar” al

navegador para identificar a un usuario sin la necesidad de cookies.

• Esto permite que algunas empresas o gobiernos usen estos métodos para rastrear usuarios y sus comportamientos, aunque eliminen las cookies.

Page 21: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

¿Y estos métodos se usan?

Si….Y se las conoce como

cookies zombie o (supercookies)

Page 22: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Proyecto: jQuery-store

• Librería que permite almacenar información en:

• HTML 5's DOM Storage

• Microsoft's UserData

• Si esos métodos fallan: window.name

• Se puede usar para trazar una sesión, pero al no ser persistente no aguanta los reinicios del navegador.

https://github.com/medialize/jQuery-store

Page 23: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Fingerprint del navegador• Identifica al usuario en base a una firma obtenida al

conectarse. • Método ampliamente usado. • La firma se genera en base a características como:

• Fuentes instaladas (javascript y flash). • Complementos instalados. • Zona horaria • Resolución de la pantalla. • Características del navegador (canvas)

Page 24: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Estudio sobre fingerprints

• fi

http://www.cosic.esat.kuleuven.be/publications/article-2334.pdf

Page 25: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Proyecto: FingerprintJS• Permite obtener una huella única de un navegador con una

probabilidad del 94%. • Múltiples variantes. Más de 10 proyectos en Github similares. • Proyecto EFF Panopticlick de 2010

https://github.com/Valve/fingerprintjs

https://github.com/carlo/jquery-browser-fingerprint

Page 26: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

https://github.com/Valve/fingerprintjs2

Page 27: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración.La huella digital del navegador.

Page 28: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:
Page 29: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

… En España

De las 5 páginas con más tráfico de España, una de ellas usan Fingerprint.

marca.com:

http://b.scorecardresearch.com/c2/7715761/cs.js

Page 30: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

HTTP ETags•La cabecera HTTP ETag es un identificador único que se entrega junto a un objeto de una página web.

•Es usada para que el navegador consulte si ha sido modificado el objeto que almacena en caché.

•Si no se ha modificado, no hace la petición. •Si se ha modificado, realiza la petición y actualiza la caché.

•Si el servidor web manda un identificador único en el Etag para cada usuario, puede leerlo posteriormente para identificarlo.

Page 31: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Funcionamiento de ETag

Page 32: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Proyecto: Cookieless• Aplicación que implementa tracking mediante Etag.

• Fácil de usar y muy difícil de detectar si está bien implantado.

• Proyectos alternativos:

• http://lucb1e.com/rp/cookielesscookies/

• https://github.com/mephir/etagsession

• https://github.com/adamdeprince/etag-tracker

Page 33: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Caso real: KissMetrics

http://www.wired.com/2011/07/undeletable-cookie/

Page 34: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración.Uso de Etag para almacenar una cookie.

Page 35: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:
Page 36: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

… En España

De las 15 páginas con más tráfico de España, dos de ellas usan ETags.

• segundamano.es

• http://zsc.scmspain.com/Scripts/oas_analytics.js • 20minutos.es:

• http://pr.20min.es/RealMedia/ads/Creatives/default/empty.gif

Page 37: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

WebCache: “If-Modified-Since”• Similar al caso anterior de Etag, basándose en

la caché del navegador. • El servidor establece una fecha concreta para

cada usuario en un objeto (Last-Modified) • El navegador comprueba si la versión de su

caché es la última mediante la cabecera “If-Modified-Since” más la fecha que recibió.

• El servidor lee la fecha de la petición e identifica al usuario.

Page 38: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Javascript con código único.• El servidor manda a cada usuario un

javascript con un ID único. • El javascript es almacenado en la caché. • El ID es obtenido por el propio javascript

como valor de sesión. • Este método es ampliamente usado, no

siempre con propósitos malvados.

Page 39: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración.Un Javascript distinto para cada usuario.

Page 40: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:
Page 41: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Otros sistemas de caché• AppCache de HTML5 • Flash Resource Cache • Uso de canvas en un PNG • WebHistory

Page 42: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Otros métodos• Existen más métodos para

identificar de forma inequívoca a un usuario mientras navega:

• Java JNLP • Google Gears • HTTP Autenticación básica.

Page 43: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

evercookie•Herramienta que implementa hasta 14 métodos distintos para persistir una cookie.

•Creada por Samy Kamkar en 2010 •Entre ellos algunos muy agresivos:

•Storing cookies in Web History, HTTP ETags, Web cache

•Java JNLP PersistenceService •window.name caching •PNG •Java CVE-2013-0422 exploit

• https://github.com/samyk/evercookie

Page 44: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Evercookies en la NSA

• Presentación filtrada por Snowden

• La NSA se plantea el uso de evercookies.

http://www.theguardian.com/world/interactive/2013/oct/04/tor-stinks-nsa-presentation-document

Page 45: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración–y final-.El uso de Evercookie

Page 46: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:
Page 47: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Vectores que están por venir• Content Security Policy Pinning:

• https://w3c.github.io/webappsec/specs/csp-pinning/#content-security-policy-header-field

• Public Key Pinning Extension?: • https://tools.ietf.org/html/draft-ietf-

websec-key-pinning-21

Page 48: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Resumen

Plugins(

• Flash(•  Java(• Silverlight(• Gears(

Cache(

• AppCache(• Etag(• Last:Modified(• Canvas(• Flash(resource(Cache(

• CSP(Pinning*(• PKP(Pinning*(

HTML5(

•  localStorage(•  IndexedDB(• AppCache(• WebRTC(

Fingerprint(

• Plugins(• Zona(Geográfica(• Fuentes(• Resolución(• …(

Red(

• SDHC(• ChannelID(• TLS(handshake(• DNS(Cache(

Page 49: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Iniciativas 1

• Opt-out cookies, permite configurar cookies para especificar que no se desea el seguimiento.

Fail

Fail

Fail

• DNT: Do not track, cabecera HTTP que solicita que no se haga seguimiento.

• IE10 lo implantó por defecto con gran controversia.

• P3P: Platform for Privacy Preferences, cabecera HTTP que declara que desea hacer el sitio con la información recopilada

• Firefox Polaris project

Hmm

Page 50: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Iniciativas 2Ley de cookies: artículo 22 de la Ley 34/2002 de 11 julio

https://www.agpd.es/portalwebAGPD/canaldocumentacion/publicaciones/common/Guias/Guia_Cookies.pdf

Page 51: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Resultado

FAIL

Page 52: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Recomendaciones.• Pensemos que no hay manera sencilla de librarse. • Única opción: navegar en modo privado “InPrivate” o “Incógnito”.

Esto deshabilita la caché. • Configuraciones seguras de navegadores: https://github.com/

pyllyukko/user.js • Vaciar la caché del navegador al terminar de usarlo. • Cerrar el navegador al terminar de navegar. • Utilizar extensiones como “AdBlock+” , “Private Browsing”,

“Disconnect” ó “SecretAgent” • Uso de VPNs • Revisa tu configuración: http://ip-check.info/

Page 53: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Referencias.• http://robertheaton.com/2014/01/20/cookieless-user-tracking-for-douchebags/

• http://www.futureofprivacy.org/wp-content/uploads/2011/07/Flash%20Cookies%20and%20Privacy%20II%20Now%20with%20HTML5%20and%20ETag%20Respawning.pdf

• http://lucb1e.com/rp/cookielesscookies/

• http://samy.pl/evercookie/

• http://en.wikipedia.org/wiki/Local_shared_object

• http://en.wikipedia.org/wiki/Zombie_cookie

• http://www.w3schools.com/html/html5_webstorage.asp

• http://www.agpd.es/portalwebAGPD/canaldocumentacion/publicaciones/common/Guias/Guia_Cookies.pdf

• http://msdn.microsoft.com/es-es/library/bdts8hk0(v=vs.95).aspx

• http://www.arctic.org/~dean/tracking-without-cookies.html

• http://ashkansoltani.org/2011/08/11/respawn-redux-flash-cookies/

• https://panopticlick.eff.org/browser-uniqueness.pdf

• http://msdn.microsoft.com/en-us/library/ms531424.aspx

• http://www.cosic.esat.kuleuven.be/publications/article-2334.pdf

Page 54: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Gracias.Twitter: @aramosf Slideshare: http://www.slideshare.com/aramosf

Septiembre/2015

Page 55: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Breve introducción a Tor• Red de comunicaciones creada

con le objetivo de que los usuarios no revelen su identidad.

• Se desarrolla sobre Internet y con el uso de un software especifico.

• Para evitar la revelación de identidad se hace un “triple” salto entre los nodos que la componen.

• Los servicios alojados en tor tienen dominios “.onion”

• A veces conocida como “darknet”,

Page 56: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Redirect con control de cookie

Page 57: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Caso DoubleclickID

Page 58: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Fingerprint en Tor

PC Al3x.tor

T1T2

T3

Destino

AD

Fingerprint Al3x.tor

Red Tor

PC Alex

Fingerprint Alex

Internet

Al3x.tor == Alex!!

Page 59: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Fingerprint en Tor• Servicios .onion con Fingerprint

• http://m2ikembygbnnoxhm.onion//templates/cache/synio/7a741d95dbb532a8e12261b876e1aa90.js

• http://gcvqzacplu4veul4.onion/static/gen/packed-site-a0c4b177.js

• Servicios .onion con servicios de AD que hacen fingerprint: • http://j.adlooxtracking.com/ads/js/tfav_leo_leoban.js • http://secure-it.imrworldwide.com/v53.js • http://whoer.net/js/whoer.packed.js?602

Page 60: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Demostración :-DFingerprint en Tor

Page 61: cookies y otras tecnologias de monitorizacion en … y otras...Propiedades de las cookies • Una cookie es un secreto compartido entre cliente y servidor para validar la identidad:

Gracias otra vez.Twitter: @aramosf Slideshare: http://www.slideshare.com/aramosf

Septiembre/2015