Cuando hablamos de casos donde se accede a información confidencial de una persona o empresa para posteriormente enviarla a un servidor remoto controlado por un atacante, normalmente pensamos en un escenario en el que previamente se ha instalado algún tipo de malware.

Esta es al menos la técnica usada en la mayoría de ocasiones, donde los atacantes engañan al usuario o se aprovechan de una vulnerabilidad en el sistema o alguna de las aplicaciones instaladas para ejecutar un malware que les dé acceso, y puedan así robar la información. Sin embargo, hoy hablaremos de una técnica novedosa que unos investigadores acaban de publicar.

Es importante destacar la importancia de estas investigaciones puesto que ayudan a prevenir posible escenarios futuros en los que los delincuentes contarían con herramientas avanzadas para espiar a los usuarios.

Espiando desde el navegador

Lo que investigadores de la Universidad de Columbia acaban de publicar en un interesante artículo es una manera innovadora de espiar sistemas informáticos, aplicaciones web o máquinas virtuales sin instalar ningún tipo de software en el mismo y con pocas posibilidades de ser detectado, al menos en teoría.

Antes de nada, es importante aclarar que esta es una prueba de concepto realizada por un equipo de expertos y que, tal y como ha sucedido en anteriores ocasiones, es difícil que veamos esta técnica siendo usada de forma masiva.

Este ataque es relativamente sencillo de implementar si se tiene los amplios conocimientos de los investigadores que lo han descubierto, ya que no se necesita instalar código malicioso ni sortear medidas de seguridad. Todo lo que se necesita es conseguir engañar a la víctima para que acceda a una web configurada previamente para realizar este ataque para que, una vez allí, se ejecute un código Javascript que permitirá analizar la información que entra y sale de la caché del sistema de la víctima.

En esta investigación se apunta que, en teoría, todos los ordenadores que dispongan de un procesador reciente de Intel y utilicen un navegador que pueda interpretar HTML5 son vulnerables a este ataque. No obstante, recordemos de nuevo que estamos hablando de un entorno de pruebas y que este puede diferir en gran medida de un entorno real con multiples escenarios posibles.

Ataques side-channel: qué son y cómo funcionan

Ataques como el que estamos describiendo se denominan side-channel y son aquellos ataques que se basan en la información obtenida a partir de la implementación de un sistema critpográfico. Ya hemos hablado en anteriores ocasiones de ataques de este tipo y, aunque no son algo reciente, durante los últimos años han ido apareciendo varias pruebas de concepto de este tipo de ataques que podrían englobarse en esta categoría.

De esta forma, valores cuantificables como el consumo de energía, filtraciones electromagnéticas o incluso el sonido generado por un microprocesador puede utilizarse para obtener información que, seguidamente, podría ser utilizada para robar información o acceder a un sistema.

En este caso, los investigadores han centrado sus ataques sobre la caché del ordenador, o lo que es lo mismo, la parte del procesador que hace de intermediario entre el propio procesador y la memoria RAM. De esta forma, consiguieron recuperar información que pertenecía a otros procesos, usuarios e incluso a máquinas virtuales que estaban funcionando en el mismo sistema desde el que se accedía con el navegador a la web maliciosa.

Funcionamiento del ataque

Como hemos explicado anteriormente, el quid de la cuestión se centra en conseguir que la víctima visite una web preparada especialmente para poder ejecutar este ataque. Una vez conseguido, el atacante puede ejecutar código Javascript que le permitirá averiguar el tiempo necesario para acceder a una variable tanto si está almacenada en la caché como si ha salido de la misma recientemente. Gracias a este procedimiento, el atacante puede obtener una visión muy detallada de la actividad en tiempo real de la caché.

En este punto, el atacante debería interpretar la información que ha obtenido de la caché para aprender a relacionarla con procesos que se estén ejecutando en el momento de la toma de la muestra. Este aprendizaje se consigue induciendo a la víctima a que realice algún tipo de acción en el sistema y revisando la ejecución de código Javascript para descubrir llamadas a funciones que puedan resultar interesantes como el acceso a ficheros, acceso a la red o la redirección de memoria.

Los investigadores descubrieron que ejecutando un programa que accediera gradualmente a varias partes de la memoria podían, seguidamente, buscar en este patrón de acceso usando el ataque con Javascript ya descrito y medir la frecuencia máxima de muestreo en la que se ejecutaría el código Javascript “de acceso”.

Usando por ejemplo una imagen con la palabra “Usenix” podemos ver el resultado de analizar la caché con esta técnica:

SIDE_CHANNEL

En la imagen de la izquierda podemos ver el resultado de aplicar la técnica sobre la caché de una máquina huésped mientras que en la imagen derecha se observa el resultado sobre una máquina virtual. Aun a pesar de que la calidad del resultado difiere, es importante resaltar la posibilidad de obtener información legible incluso desde entornos virtuales.

Contramedidas

Partiendo de la base de que estamos hablando de una investigación realizada por un grupo de investigadores con amplios conocimientos sobre el tema, es importante poner en contexto esta investigación. Debemos tener en cuenta que las pruebas que han mostrado son el fruto de un largo perÍodo de investigación y no significa que pueda ser replicada de la noche a la mañana por cualquiera.

Dicho esto, tampoco podemos ignorar los resultados de esta investigación, más aun si tenemos en cuenta que el número de sistemas que podrían verse afectados es elevado y además estaríamos hablando de un ataque multiplataforma.

Pensando en las contramedidas a adoptar, si partimos de la base de que es necesario ejecutar Javascript en el navegador para lanzar el ataque, desactivar por defecto esta funcionalidad o bloquearla a gusto del usuario usando complementos como NoScript parece la solución más sencilla y efectiva.

No obstante, tal y como apuntan los investigadores, tanto esta como otras posibles soluciones impactan de forma negativa en la usabilidad del sistema por lo que hay que valorar a fondo estas soluciones temporales. Para lo que sirven realmente este tipo de investigaciones es para remarcar que existen otras amenazas además de los ataques tradicionales y que, tanto usuarios como fabricantes deben actuar para evitar ver comprometida su información confidencial.