
Exploit de denegación de servicio para Microsoft HoloLens Device Portal mediante solicitudes repetidas de emparejamiento de API, causando sobrecarga de CPU e inoperancia del sistema.
Tânia Silva, António Pinto, Pedro Pinto y Sara Paiva
Un ataque de denegación de servicio (DoS) tiene como objetivo sobrecargar un sistema objetivo hasta que gradualmente deja de poder responder a todas las peticiones que se le envían. De este modo, un usuario legítimo pierde el acceso a un servicio, lo que, dependiendo del dominio de aplicación, puede ser crucial para su proceso. Para abordar este problema, analizamos las gafas HoloLens, que ofrecen una experiencia de realidad mixta (MR). Las HoloLens 1 y 2 proporcionan un marco para gestionar y manipular de forma remota el contenido y las funcionalidades de las HoloLens. La herramienta se denomina ”Device Portal”, como se muestra en la Figura 1.1, y permite al usuario gestionar aplicaciones, documentos y contenido multimedia almacenados en el dispositivo montado en la cabeza. Esta herramienta también permite la visualización en tiempo real de las actividades del usuario en el dispositivo y la grabación inmediata o captura de pantalla. Además, esta herramienta permite supervisar los componentes del sistema, así como gestionar los procesos que se están ejecutando en ese momento en el sistema.
Figura 1.1: HoloLens Device Portal
En la Figura 1.2 se representa la arquitectura del ataque realizado. Para llevar a cabo el ataque, el atacante debe estar conectado a la misma red que el objetivo. Esta conexión permite al atacante usar un escáner de seguridad para analizar toda la red con la intención de identificar los dispositivos disponibles en ella.
Cualquier dispositivo conectado a la red puede acceder al ”Device Portal” simplemente introduciendo la IP correspondiente de la HoloLens en un navegador. Con la información recopilada por el escáner, el atacante puede identificar la IP y utilizarla para intentar acceder al servicio de gestión remota. Al analizar el tráfico de red cuando se realiza una acción en el ”Device Portal”, el atacante obtiene acceso a las peticiones realizadas a la API del dispositivo. Con esta información, puede desarrollar un script para ejecutar estas peticiones a la API consecutivamente. Al recibir todas estas peticiones, la CPU se sobrecarga y, en consecuencia, el sistema deja de responder a los comandos de los usuarios legítimos, bloqueando el uso de la HoloLens. Incluso si el usuario decide reiniciar las gafas, el ataque continúa mientras la IP permanezca sin cambios o el atacante decida detenerlo.
Figura 1.2: Arquitectura del ataque DoS a HoloLens
Los requisitos necesarios para la correcta reproducción de este ataque son:
No es necesario tener un sistema operativo específico para ejecutar el ataque. El script utilizado para el DoS debe adaptarse según los requisitos de la herramienta elegida para ejecutar el script.
El atacante inicia el ataque seleccionando una herramienta de escaneo de red para identificar la IP actual de las gafas conectadas a la red. Para acceder a la página principal del ”Device Portal”, solo es necesario introducir la IP de las gafas en el navegador. En esta página, se le pedirán las credenciales de inicio de sesión. Sin embargo, una vez que se alcanzan 3 intentos incorrectos, el usuario es redirigido a la página donde se puede solicitar un nuevo emparejamiento con las gafas y, posteriormente, crear un nuevo usuario. Al inspeccionar los elementos de esta página web, es posible analizar las peticiones de red realizadas a la API de HoloLens. Estas peticiones contienen información sobre el cuerpo y las cabeceras de la petición, que puede replicarse fácilmente en otra herramienta, como se presenta en la Figura 1.3. La capacidad de enviar estas peticiones fue el vector de ataque identificado.
Figura 1.3: Petición a la API de HoloLens
Cada vez que se realiza una nueva petición de emparejamiento, los procesos de la HoloLens se pausan y se superpone un PIN a la vista del usuario, que debe introducirse en la página web para continuar con el emparejamiento del dispositivo, como se representa en la Figura 1.4. La HoloLens solo reanuda su funcionamiento normal cuando este PIN desaparece. Para hacer que desaparezca, el usuario puede completar el proceso de emparejamiento en la página web o abrir un menú de Configuración desde el que puede volver a la vista típica de la HoloLens.
Figura 1.4: PIN de emparejamiento de HoloLens
Para probar este problema, se desarrolló un script que realiza repetidamente peticiones de emparejamiento a la API, ignorando cualquier posible error que pueda ocurrir hasta que el atacante detenga manualmente el proceso (ver Figura 1.5 y Apéndice A). Este script se desarrolló para Windows PowerShell, ya que es posible programar el script para que se ejecute cada vez que el equipo se encienda. De esta manera, el atacante puede instalar el script en las máquinas objetivo, que normalmente están conectadas a la misma red que la HoloLens. El ataque se ejecuta en segundo plano sin que los usuarios lo noten, dejando el equipo inutilizable. PowerShell proporciona el comando ”New-ScheduledTask”, que permite crear un desencadenante para ejecutar el script malicioso cada vez que el equipo se enciende.
Figura 1.5: Script de PowerShell
Cada vez que se realiza una petición de emparejamiento, el PIN de emparejamiento se superpone a la vista del usuario. Como resultado de las pruebas realizadas con el script anterior, se observó que el envío continuo de peticiones hace que la HoloLens superponga constantemente nuevos PIN a la vista del usuario, impidiéndole realizar cualquier otra tarea. El usuario tiene la opción de abrir un menú sobre este PIN; sin embargo, como las gafas reciben constantemente nuevas peticiones, el usuario no tiene tiempo de realizar ninguna operación en este menú. Con el tiempo, las gafas empiezan a fallar y la HoloLens tiene dificultades para entender los gestos o comandos hablados por el usuario. De este modo, el usuario ya no puede utilizar el dispositivo hasta que se detenga el ataque.
El ataque se probó en diferentes escenarios y demostró ser efectivo en su totalidad. Cuando el usuario intenta reiniciar la HoloLens, como era de esperar, la API deja de responder. Sin embargo, como se define en el script, los errores devueltos por el servidor deben ignorarse, lo que le permite seguir ejecutándose en segundo plano. Una vez que se detecta que la HoloLens ha restablecido la conexión con la red, el ataque persiste, impidiendo al usuario realizar cualquier otra tarea. La prueba también se realizó cuando un dispositivo de confianza ya estaba emparejado con las gafas. El resultado fue el mismo: es posible llevar a cabo el ataque siempre que la IP del emisor sea diferente de la ya emparejada.
Durante las pruebas realizadas, se observó que las gafas experimentaron sobrecalentamiento debido a la sobrecarga de la CPU. En la Figura 1.6 se muestra el procesamiento de la CPU y la memoria de las gafas durante el ataque. Como se puede observar en ciertos momentos, la CPU alcanza niveles muy altos, lo que provoca el sobrecalentamiento del equipo y retrasa su respuesta a otros servicios.
Figura 1.6: Procesamiento de CPU y memoria
En esencia, este ataque DoS consiste en sobrecargar la API de HoloLens con peticiones de emparejamiento. De esta manera, se superponen constantemente nuevos PIN a la vista del usuario en cuestión de segundos. Este comportamiento impide que el usuario legítimo realice cualquier otra tarea en la HoloLens hasta que se detenga el ataque. Los métodos de mitigación adecuados para este tipo de ataque serían a nivel de API, aplicando una restricción a las peticiones de emparejamiento realizadas desde una IP específica. Sin embargo, si el atacante pretende suplantar la IP en sus peticiones, esta metodología podría superarse fácilmente. Por lo tanto, se propone restringir también el número total de peticiones realizadas en un corto período de tiempo.