
Buscador de fugas entre sitios (XS-Leaks)
XSLeaker es una herramienta que ayuda a encontrar XS-Leaks en sitios web. La herramienta compara los valores de recursos para los que se conoce una técnica de fuga (p. ej., número de iframes) entre diferentes estados.
XSLeaker consta de dos componentes: una extensión de Chrome que se utiliza para recopilar los valores de recursos en diferentes estados y un servidor node.js que se utiliza para comparar y mostrar los resultados.
Se comprueban los siguientes valores de recursos para detectar diferencias:
Suponiendo que el usuario quiera probar n estados diferentes, se debe realizar la siguiente configuración:
Crear n perfiles de Chrome, uno para cada estado. Como los perfiles se pueden reutilizar, el usuario solo tiene que crear nuevos perfiles de Chrome si se deben probar más de n estados.
Instalar la extensión de Chrome XSLeaker para cada perfil.
Esta configuración solo debe realizarse una vez, excepto si el usuario quiere probar más de n estados.
Abrir n ventanas del navegador con diferentes perfiles.
Activar la extensión del navegador en cada ventana. Esto se hace con el botón "Activate" en la ventana emergente.
Opcionalmente, elegir un nombre de estado (p. ej., cuenta de administrador). Esto es recomendable porque facilita mucho la identificación de los estados en los resultados.
Configurar los diferentes estados del sitio web que se debe probar, uno para cada ventana (p. ej., iniciando sesión como diferentes usuarios).
Elegir una ventana y activar el Master Mode mediante el interruptor en la ventana emergente. Las otras ventanas ahora siguen los cambios de URL de la ventana maestra.
Dentro de la ventana maestra, navegar hasta el sitio que se debe probar. Cada otra ventana navega a la misma página.
Iniciar la prueba con un clic en el botón "Send Results" en la ventana emergente de la ventana maestra.
Navegar a la interfaz web (p. ej., http://localhost:3000) proporcionada por Node.js para comprobar las diferencias.
Para la siguiente prueba del mismo sitio web, el usuario solo tiene que navegar a la URL de destino con la ventana maestra y pulsar de nuevo el botón "Send Results".
Haz clic en la imagen para ver XSLeaker en acción:
La interfaz web que se aloja con node.js tiene los siguientes sitios:
Results: Muestra los resultados de prueba más recientes.
History: Muestra todas las pruebas realizadas en el pasado. Al hacer clic en una fila de la tabla se muestran los resultados de la prueba.
Automation: La página Automation permite al usuario subir una lista de URLs que se deben probar. El botón "Start Test" navega cada ventana del navegador conectada a una URL tras otra y ejecuta la prueba. Los resultados se pueden consultar en el historial.
Nota: Primero debes configurar los estados que quieres probar en las diferentes ventanas.
Actualmente hay un error que hace que las diferencias guardadas en la base de datos no siempre sean correctas. Verifica las diferencias revisando los resultados de la prueba después de la prueba automatizada.
Test: Un banco de pruebas que se puede usar para comprobar si XSLeaker funciona correctamente. En http://localhost:3000/tests se puede elegir un estado. Luego se pueden establecer propiedades dependientes del estado. Una vez que varias ventanas del navegador con diferentes estados están abiertas, navega al sitio de prueba (http://localhost:3000/tests/testsite) con la ventana maestra y ejecuta la prueba.

La imagen muestra la arquitectura de XSLeaker. Las diferentes ventanas del navegador con diferentes estados se conectan a la aplicación node.js a través de WebSockets. El servidor proporciona una interfaz web donde el usuario puede consultar los resultados de las pruebas (ver Interfaz web de XSLeaker). El servidor guarda los resultados de las pruebas en una base de datos SQLite.