SlideShare una empresa de Scribd logo
1 de 17
ASCOK
(PoC 1-0)
Anti Super
CoOKies
basadas en
HSTS
Bilbao, 3 de Mayo de 2017
javier@javiertobal.com
@javitobal
www.javiertobal.com
@javitobal
CONTENIDO
1. Introducción
2. HTTP Strict Transport Security (HSTS)
 Especificación (RFC 6797)
 Soporte
 Implementación
3. Supercookies basadas en HSTS
 Funcionamiento
4. Contramedidas para evitar las Supercookies
HSTS
 Alternativas
5. ASCOK 1.0
Disclaimer:
ASCOK es,
aún, una
PoC:
Prueba de
Concepto
@javitobal
1. Introducción
¿por qué?
¿por qué
HSTS?
¿por qué
ASCOK?
Interés creciente por la aplicación de super-cookies
basadas en HSTS. Interés creciente por desarrollar
medidas protectoras frente a estas super-cookies
HSTS es un mecanismo que se está generalizando y que
está soportado por la mayoría de los navegadores web
actuales. HSTS es, además, “persistente” aunque se
eliminen las “cookies tradiciones” o se use el modo
anónimo (o “incógnito” o “privado”) del navegador
ASCOK (Anti Super CoOKies) es, actualmente, una
prueba de concepto que explora alternativas para
proteger al usuario de Internet del uso de las super-
cookies HSTS
@javitobal
2. HTTP Strict Transport Security (HSTS)
HSTS
aporta
seguridad
a HTTPS
El 3,2% de los
sites del Top
1M de Alexa
implementan
HSTS.
Sólo el 14%
usa HTTPS.
SIN HSTS
CON HSTS
https://www.owasp.org
@javitobal
2.1 HSTS. Especificación
RFC 6797
“[HSTS:]
mecanismo
que permite a
los sitios web
declararse a
sí mismos
como
accesibles
sólo vía
conexiones
seguras
[SSL/TLS]”
Los servidores web se autodefinen como HSTS:
“known HSTS host” (KHH)
Dos mecanismos:
• Lista precargada en el navegador
• Mediante cabecera HTTP en una respuesta a una
petición HTTPS (SSL/TLS)
A partir de este momento, el navegador utilizará
directamente conexión HTTPS sin pasar por HTTP.
Strict-Transport-Security:
max-age=31536000
[;includeSubdomains]
[;preload]
MAX-AGE en segundos: 0 -
31.536.000 (365 días)
@javitobal
2.2 HSTS. Soporte
HSTS está
soportado
por,
práctica-
mente, todas
las versiones
actuales de
los
navegadores
http://caniuse.com/#feat=stricttransportsecurity
@javitobal
2.3 HSTS. Implementación
Los navegadores analizados implementan HSTS de forma similar,
diferenciando la manera de registrar la lista de “known HSTS host”.
CHROME
chrome://
net-
internals
/#hsts
FIREFOX
%APPDATA%Mozil
laFirefoxProf
iles<profile-
id>SiteSecurit
yServiceState.t
xt
SAFARI
~/Library/Cooki
es/HSTS.plist
@javitobal
2.4 HSTS. Funcionamiento en FIREFOX
Por ejemplo,
Firefox cargar la
lista desde
fichero y la
actualiza
periódicamente
(o al terminar)
%APPDATA%
Mozilla
Firefox
Profiles
<profile-id>
SiteSecuritySer
viceState.txt
HOST FREQ LAST-ACCESS EXPIRE TIME SET INCLUDESUBDOMAINS
@javitobal
3. Supercookies basadas en HSTS
Sam Greenhalgh (@zapthedingbat)
es un experto en seguridad,
responsable de RadicalResearch,
que ha desarrollado esta
implementación de super-cookies
basadas en HSTS.
Esta herramienta permite
comprobar como, por ejemplo, la
“super-cookie” se mantiene en
modo “incógnito”.
http://www.radicalresearch.co.uk/lab/hstssupercookies
@javitobal
3.1 Supercookies basadas en HSTS. SET
[HTTP. Puerto: 80]
GET / HTTP/1.1
Host: 1-hsts-lab.radicalresearch.co.uk
...
HTTP/1.1 301 Moved Permanently
Location: https://1-hsts-
lab.radicalresearch.co.uk/
...
[HTTPS. Puerto: 443]
https://1-hsts-lab-
radicalresearch.co.uk/
GET /HTTP/1.1
Host: 1-hsts-lab.radicalresearch.co.uk
...
HTTP/1.1 200 OK
...
Strict-Transport-Security:
max-age=1493038952
...
lista de “known
HSTS host”
Añadir 1-hsts-lab-
radicalresearch.co
.uk
0x8187FE4A
@javitobal
3.2 Supercookies basadas en HSTS. RETRIEVE
TIME METHOD RESULT URL
0.384 GET 200 https://www.radicalresearch.co.uk/lab/hstssupercookies
0.151 GET (Cache) https://www.radicalresearch.co.uk/Content/Css/main.css
0.162 GET (Cache) https://www.radicalresearch.co.uk/Scripts/JsHead?v=
0.127 GET (Cache) https://www.radicalresearch.co.uk/Scripts/Js?v=
0.105 GET 200 https://www.radicalresearch.co.uk/Scripts/Lab/HstsSuperCookies?v=agvzTXbxVya8wtMOizZpSLPY_23PwgzcIRIIwiQ6DGc1
0.208 GET 200 http://www.radicalresearch.co.uk/lab/hstssupercookies
0.206 GET 304 http://www.radicalresearch.co.uk/Content/Css/main.css
0.104 GET (Cache) http://www.radicalresearch.co.uk/Scripts/JsHead?v=
0.099 GET (Cache) http://www.radicalresearch.co.uk/Scripts/Js?v=
0.104 GET (Cache) http://www.radicalresearch.co.uk/Scripts/Lab/HstsSuperCookies?v=agvzTXbxVya8wtMOizZpSLPY_23PwgzcIRIIwiQ6DGc1
0.153 GET 304 http://www.radicalresearch.co.uk/Content/Images/favicon-32x32.png
* GET * http://1f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%270%27]
0.605 GET 200 https://1f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%270%27]
0.730 GET 200 http://0-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%271%27]
* GET * http://1-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%272%27]
0.700 GET 200 http://2-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%273%27]
….
0.429 GET 200 http://1e-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27v%27]
* GET * http://1f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27w%27]
0.427 GET 200 https://1-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%272%27]
0.416 GET 200 https://3-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%274%27]
0.626 GET 200 https://6-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%277%27]
0.694 GET 200 https://9-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27a%27]
0.603 GET 200 https://a-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27b%27]
0.590 GET 200 https://b-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27c%27]
0.524 GET 200 https://c-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27d%27]
0.568 GET 200 https://d-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27e%27]
0.549 GET 200 https://e-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27f%27]
0.558 GET 200 https://f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27g%27]
0.652 GET 200 https://10-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27h%27]
0.613 GET 200 https://11-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27i%27]
0.559 GET 200 https://12-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27j%27]
0.648 GET 200 https://17-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27o%27]
0.614 GET 200 https://18-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27p%27]
0.214 GET 200 https://1f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27w%27]
* GET * http://www.radicalresearch.co.uk/Content/Images/favicon-32x32.png
0x8187FE4A
x32
x16
@javitobal
4. CONTRAMEDIDAS EVALUADAS (1)
Ventajas e
inconvenientes
de las
contramedidas
evaluadas
Eliminar todos los
“known HSTS
hosts” (KHH)
Vaciar la lista al
iniciar o cerrar el
navegador
 Todas las sesiones
serían anónimas
 Interoperabilidad
entre navegadores
 Visitas consecutivas
 Inseguro (sites
legitimos)
Impedir el registro
de nuevos “known
HSTS hosts”
Interceptar la
cabecera HSTS y
poner max-age= 0
 Impediría añadir
nuevos KHH
 Quitaría de la lista los
KHH preexistentes
 Interoperabilidad
entre navegadores
 Inseguro (sites
legitimos)
 Interceptar HTTPS
Hacer caducar los
“known HSTS
hosts”
Interceptar la
cabecera HSTS y
poner max-age= 5
 Se añadiría el KHH,
pero en la próxima
petición se revisaría
 Inseguro (sites
legitimos)
 Interceptar HTTPS
@javitobal
4.1 CONTRAMEDIDAS EVALUADAS (2)
Incluir todos los hosts del
dominio sospechoso como KHH
1. Interceptar la cabecera HSTS e
incluir “;includesubdomains” en
la respuesta del dominio de nivel
superior.
 Sólo afecta a los dominios peligrosos
 El servicio recibiría siempre como
cookie el valor “0xFF….FF”
 En caso de “falso” positivo, el
servicio fallaría; e.g. hay un servidor
http (no https) con contenido útil
 Interceptar HTTPS y generar una
petición adicional
Incluir todos los hosts del
dominio sospechoso como KHH
2. Forzar peticiones HTTPS a todos
los hosts de la super-cookie que no
están en la lista (KHH) para forzar
su inclusión.
 Sólo afecta a los dominios peligrosos
 El servicio recibiría siempre como
cookie el valor “0xFF….FF”
 En caso de “falso” positivo, el
servicio podría verse afectado (muy
poco probable)
 Un site con super-cookie podría
desarrollar una contra-contra-medida
@javitobal
5. ASCOK 1.0. Status: PoC. Funcionamiento
VERSIÓN ACTUAL
Extensión de desarrollador de Chrome. JavaScript.
1. DETECTAR LA SUPERCOOKIE
 Analiza todas las peticiones HTTP/HTTPS realizadas.
 Detecta peticiones consecutivas a hosts del mismo
(sub)dominio alternando HTTP y HTTPS
 Alerta al encontrar un número mínimo de hosts que
cumplen la condición (configurable -20-)
 [Descarta hosts “preload” o “includeSubdomains”]
2. CAMBIAR EL ID
Una vez detectada la posible super-cookie, se muestra un
mensaje al usuario y se le permite “neutralizar” la super-
cookie. Para ello, realiza peticiones HTTPS a todos los
hosts HTTP de la super-cookie (“la pone a 0xFF…FF”)
EXCLUSIVA
MUNDIAL!
@javitobal
5.1 ASCOK 1.0. Status: PoC. DEMO
DEMO TIME!EXCLUSIVA
MUNDIAL!
@javitobal
5.2 ASCOK 1.0. Evolución futura
La versión actual de ASCOK 1.0 es una prueba de
concepto. Si es necesario, esta extensión deberá
evolucionar antes de ser distribuida:
• Soporte para mayor número de navegadores: Chrome,
Firefox, Safari, IOS, Android, etc.
• Funcionamiento y aspecto más profesional. Modo
“silencioso”: el usuario no percibe ninguna actividad.
• Distribuirlo en los “markets” oficiales. Firmar la
extensión, depurar, etc.
• Registro centralizado de sites que utilizan super-
cookies HSTS.
Pronto
aparecerán
en la red
implementa
ciones de
super-
cookies
basadas en
HSTS
Eskerrik
asko!
Aio!
javier@javiertobal.com
@javitobal
www.javiertobal.com
Eskerrik
asko!
Aio!

Más contenido relacionado

Similar a ASCOK 1-0. PoC. Anti-Super CoOKies. Prueba de concepto

Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]RootedCON
 
Varnish para meros mortales
Varnish para meros mortalesVarnish para meros mortales
Varnish para meros mortalesMartín .
 
Segurización de PrestaShop
Segurización de PrestaShopSegurización de PrestaShop
Segurización de PrestaShopjruizcantero
 
Seguridad en Apache Web Server
Seguridad en Apache Web ServerSeguridad en Apache Web Server
Seguridad en Apache Web ServerChema Alonso
 
Open Source Modern Web Development
Open Source Modern Web DevelopmentOpen Source Modern Web Development
Open Source Modern Web DevelopmentJaime Irurzun
 
Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2Terrafx9
 

Similar a ASCOK 1-0. PoC. Anti-Super CoOKies. Prueba de concepto (8)

Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
 
Varnish para meros mortales
Varnish para meros mortalesVarnish para meros mortales
Varnish para meros mortales
 
Segurización de PrestaShop
Segurización de PrestaShopSegurización de PrestaShop
Segurización de PrestaShop
 
200310 - Apache Web Server
200310 - Apache Web Server200310 - Apache Web Server
200310 - Apache Web Server
 
Seguridad en Apache Web Server
Seguridad en Apache Web ServerSeguridad en Apache Web Server
Seguridad en Apache Web Server
 
Open Source Modern Web Development
Open Source Modern Web DevelopmentOpen Source Modern Web Development
Open Source Modern Web Development
 
Pecha kucha
Pecha kuchaPecha kucha
Pecha kucha
 
Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2
 

ASCOK 1-0. PoC. Anti-Super CoOKies. Prueba de concepto

  • 1. ASCOK (PoC 1-0) Anti Super CoOKies basadas en HSTS Bilbao, 3 de Mayo de 2017 javier@javiertobal.com @javitobal www.javiertobal.com
  • 2. @javitobal CONTENIDO 1. Introducción 2. HTTP Strict Transport Security (HSTS)  Especificación (RFC 6797)  Soporte  Implementación 3. Supercookies basadas en HSTS  Funcionamiento 4. Contramedidas para evitar las Supercookies HSTS  Alternativas 5. ASCOK 1.0 Disclaimer: ASCOK es, aún, una PoC: Prueba de Concepto
  • 3. @javitobal 1. Introducción ¿por qué? ¿por qué HSTS? ¿por qué ASCOK? Interés creciente por la aplicación de super-cookies basadas en HSTS. Interés creciente por desarrollar medidas protectoras frente a estas super-cookies HSTS es un mecanismo que se está generalizando y que está soportado por la mayoría de los navegadores web actuales. HSTS es, además, “persistente” aunque se eliminen las “cookies tradiciones” o se use el modo anónimo (o “incógnito” o “privado”) del navegador ASCOK (Anti Super CoOKies) es, actualmente, una prueba de concepto que explora alternativas para proteger al usuario de Internet del uso de las super- cookies HSTS
  • 4. @javitobal 2. HTTP Strict Transport Security (HSTS) HSTS aporta seguridad a HTTPS El 3,2% de los sites del Top 1M de Alexa implementan HSTS. Sólo el 14% usa HTTPS. SIN HSTS CON HSTS https://www.owasp.org
  • 5. @javitobal 2.1 HSTS. Especificación RFC 6797 “[HSTS:] mecanismo que permite a los sitios web declararse a sí mismos como accesibles sólo vía conexiones seguras [SSL/TLS]” Los servidores web se autodefinen como HSTS: “known HSTS host” (KHH) Dos mecanismos: • Lista precargada en el navegador • Mediante cabecera HTTP en una respuesta a una petición HTTPS (SSL/TLS) A partir de este momento, el navegador utilizará directamente conexión HTTPS sin pasar por HTTP. Strict-Transport-Security: max-age=31536000 [;includeSubdomains] [;preload] MAX-AGE en segundos: 0 - 31.536.000 (365 días)
  • 6. @javitobal 2.2 HSTS. Soporte HSTS está soportado por, práctica- mente, todas las versiones actuales de los navegadores http://caniuse.com/#feat=stricttransportsecurity
  • 7. @javitobal 2.3 HSTS. Implementación Los navegadores analizados implementan HSTS de forma similar, diferenciando la manera de registrar la lista de “known HSTS host”. CHROME chrome:// net- internals /#hsts FIREFOX %APPDATA%Mozil laFirefoxProf iles<profile- id>SiteSecurit yServiceState.t xt SAFARI ~/Library/Cooki es/HSTS.plist
  • 8. @javitobal 2.4 HSTS. Funcionamiento en FIREFOX Por ejemplo, Firefox cargar la lista desde fichero y la actualiza periódicamente (o al terminar) %APPDATA% Mozilla Firefox Profiles <profile-id> SiteSecuritySer viceState.txt HOST FREQ LAST-ACCESS EXPIRE TIME SET INCLUDESUBDOMAINS
  • 9. @javitobal 3. Supercookies basadas en HSTS Sam Greenhalgh (@zapthedingbat) es un experto en seguridad, responsable de RadicalResearch, que ha desarrollado esta implementación de super-cookies basadas en HSTS. Esta herramienta permite comprobar como, por ejemplo, la “super-cookie” se mantiene en modo “incógnito”. http://www.radicalresearch.co.uk/lab/hstssupercookies
  • 10. @javitobal 3.1 Supercookies basadas en HSTS. SET [HTTP. Puerto: 80] GET / HTTP/1.1 Host: 1-hsts-lab.radicalresearch.co.uk ... HTTP/1.1 301 Moved Permanently Location: https://1-hsts- lab.radicalresearch.co.uk/ ... [HTTPS. Puerto: 443] https://1-hsts-lab- radicalresearch.co.uk/ GET /HTTP/1.1 Host: 1-hsts-lab.radicalresearch.co.uk ... HTTP/1.1 200 OK ... Strict-Transport-Security: max-age=1493038952 ... lista de “known HSTS host” Añadir 1-hsts-lab- radicalresearch.co .uk 0x8187FE4A
  • 11. @javitobal 3.2 Supercookies basadas en HSTS. RETRIEVE TIME METHOD RESULT URL 0.384 GET 200 https://www.radicalresearch.co.uk/lab/hstssupercookies 0.151 GET (Cache) https://www.radicalresearch.co.uk/Content/Css/main.css 0.162 GET (Cache) https://www.radicalresearch.co.uk/Scripts/JsHead?v= 0.127 GET (Cache) https://www.radicalresearch.co.uk/Scripts/Js?v= 0.105 GET 200 https://www.radicalresearch.co.uk/Scripts/Lab/HstsSuperCookies?v=agvzTXbxVya8wtMOizZpSLPY_23PwgzcIRIIwiQ6DGc1 0.208 GET 200 http://www.radicalresearch.co.uk/lab/hstssupercookies 0.206 GET 304 http://www.radicalresearch.co.uk/Content/Css/main.css 0.104 GET (Cache) http://www.radicalresearch.co.uk/Scripts/JsHead?v= 0.099 GET (Cache) http://www.radicalresearch.co.uk/Scripts/Js?v= 0.104 GET (Cache) http://www.radicalresearch.co.uk/Scripts/Lab/HstsSuperCookies?v=agvzTXbxVya8wtMOizZpSLPY_23PwgzcIRIIwiQ6DGc1 0.153 GET 304 http://www.radicalresearch.co.uk/Content/Images/favicon-32x32.png * GET * http://1f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%270%27] 0.605 GET 200 https://1f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%270%27] 0.730 GET 200 http://0-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%271%27] * GET * http://1-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%272%27] 0.700 GET 200 http://2-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%273%27] …. 0.429 GET 200 http://1e-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27v%27] * GET * http://1f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27w%27] 0.427 GET 200 https://1-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%272%27] 0.416 GET 200 https://3-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%274%27] 0.626 GET 200 https://6-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%277%27] 0.694 GET 200 https://9-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27a%27] 0.603 GET 200 https://a-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27b%27] 0.590 GET 200 https://b-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27c%27] 0.524 GET 200 https://c-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27d%27] 0.568 GET 200 https://d-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27e%27] 0.549 GET 200 https://e-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27f%27] 0.558 GET 200 https://f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27g%27] 0.652 GET 200 https://10-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27h%27] 0.613 GET 200 https://11-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27i%27] 0.559 GET 200 https://12-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27j%27] 0.648 GET 200 https://17-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27o%27] 0.614 GET 200 https://18-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27p%27] 0.214 GET 200 https://1f-hsts-lab.radicalresearch.co.uk/hsts/get?cb=window[%27hsts%27]._[%27w%27] * GET * http://www.radicalresearch.co.uk/Content/Images/favicon-32x32.png 0x8187FE4A x32 x16
  • 12. @javitobal 4. CONTRAMEDIDAS EVALUADAS (1) Ventajas e inconvenientes de las contramedidas evaluadas Eliminar todos los “known HSTS hosts” (KHH) Vaciar la lista al iniciar o cerrar el navegador  Todas las sesiones serían anónimas  Interoperabilidad entre navegadores  Visitas consecutivas  Inseguro (sites legitimos) Impedir el registro de nuevos “known HSTS hosts” Interceptar la cabecera HSTS y poner max-age= 0  Impediría añadir nuevos KHH  Quitaría de la lista los KHH preexistentes  Interoperabilidad entre navegadores  Inseguro (sites legitimos)  Interceptar HTTPS Hacer caducar los “known HSTS hosts” Interceptar la cabecera HSTS y poner max-age= 5  Se añadiría el KHH, pero en la próxima petición se revisaría  Inseguro (sites legitimos)  Interceptar HTTPS
  • 13. @javitobal 4.1 CONTRAMEDIDAS EVALUADAS (2) Incluir todos los hosts del dominio sospechoso como KHH 1. Interceptar la cabecera HSTS e incluir “;includesubdomains” en la respuesta del dominio de nivel superior.  Sólo afecta a los dominios peligrosos  El servicio recibiría siempre como cookie el valor “0xFF….FF”  En caso de “falso” positivo, el servicio fallaría; e.g. hay un servidor http (no https) con contenido útil  Interceptar HTTPS y generar una petición adicional Incluir todos los hosts del dominio sospechoso como KHH 2. Forzar peticiones HTTPS a todos los hosts de la super-cookie que no están en la lista (KHH) para forzar su inclusión.  Sólo afecta a los dominios peligrosos  El servicio recibiría siempre como cookie el valor “0xFF….FF”  En caso de “falso” positivo, el servicio podría verse afectado (muy poco probable)  Un site con super-cookie podría desarrollar una contra-contra-medida
  • 14. @javitobal 5. ASCOK 1.0. Status: PoC. Funcionamiento VERSIÓN ACTUAL Extensión de desarrollador de Chrome. JavaScript. 1. DETECTAR LA SUPERCOOKIE  Analiza todas las peticiones HTTP/HTTPS realizadas.  Detecta peticiones consecutivas a hosts del mismo (sub)dominio alternando HTTP y HTTPS  Alerta al encontrar un número mínimo de hosts que cumplen la condición (configurable -20-)  [Descarta hosts “preload” o “includeSubdomains”] 2. CAMBIAR EL ID Una vez detectada la posible super-cookie, se muestra un mensaje al usuario y se le permite “neutralizar” la super- cookie. Para ello, realiza peticiones HTTPS a todos los hosts HTTP de la super-cookie (“la pone a 0xFF…FF”) EXCLUSIVA MUNDIAL!
  • 15. @javitobal 5.1 ASCOK 1.0. Status: PoC. DEMO DEMO TIME!EXCLUSIVA MUNDIAL!
  • 16. @javitobal 5.2 ASCOK 1.0. Evolución futura La versión actual de ASCOK 1.0 es una prueba de concepto. Si es necesario, esta extensión deberá evolucionar antes de ser distribuida: • Soporte para mayor número de navegadores: Chrome, Firefox, Safari, IOS, Android, etc. • Funcionamiento y aspecto más profesional. Modo “silencioso”: el usuario no percibe ninguna actividad. • Distribuirlo en los “markets” oficiales. Firmar la extensión, depurar, etc. • Registro centralizado de sites que utilizan super- cookies HSTS. Pronto aparecerán en la red implementa ciones de super- cookies basadas en HSTS