
Exploração de Negação de Serviço para o Portal de Dispositivos Microsoft HoloLens via solicitações repetidas de pareamento de API, causando sobrecarga de CPU e falta de resposta do sistema.
Tânia Silva, António Pinto, Pedro Pinto e Sara Paiva
Um ataque de Negação de Serviço (DoS) visa sobrecarregar o sistema alvo de tal forma que este gradualmente fica incapaz de responder a todos os pedidos que lhe são enviados. Desta forma, um utilizador legítimo perde o acesso a um serviço, o que, dependendo do domínio de aplicação, pode ser crucial para o seu processo. Para esta questão, analisámos os headsets HoloLens que proporcionam uma experiência de Realidade Mista (MR). O HoloLens 1 e 2 disponibilizam uma estrutura para gerir e manipular remotamente o conteúdo e as funcionalidades do HoloLens. A ferramenta é denominada ”Device Portal,” como apresentado na Figura 1.1, e permite ao utilizador gerir aplicações, documentos e conteúdo multimédia armazenados no dispositivo montado na cabeça. Esta ferramenta também possibilita a visualização em tempo real das atividades do utilizador no dispositivo, bem como a gravação ou captura de ecrã imediata. Adicionalmente, esta ferramenta permite monitorizar os componentes do sistema, assim como gerir os processos que estão a correr no momento no sistema.
Figura 1.1: Device Portal do HoloLens
Na Figura 1.2, está representada a arquitetura do ataque realizado. Para levar a cabo o ataque, o indivíduo malicioso precisa de estar ligado à mesma rede que o alvo. Esta ligação permite ao hacker utilizar um scanner de segurança para analisar toda a rede com a intenção de identificar os dispositivos disponíveis na rede.
Qualquer dispositivo ligado à rede pode aceder ao ”Device Portal” simplesmente introduzindo o IP correspondente do HoloLens num browser. A partir das informações recolhidas pelo scanner, o atacante consegue identificar o IP e utilizá-lo para tentar aceder ao serviço de gestão remota. Ao analisar o tráfego de rede quando uma ação é executada no ”Device Portal”, o hacker obtém acesso aos pedidos feitos à API do dispositivo. Com estas informações, pode desenvolver um script para executar consecutivamente esses pedidos à API. Ao receber todos estes pedidos, o CPU fica sobrecarregado e, consequentemente, o sistema fica sem resposta aos comandos dos utilizadores legítimos, bloqueando a utilização do HoloLens. Mesmo que o utilizador decida reiniciar os headsets, o ataque continua enquanto o IP permanecer inalterado ou até o atacante decidir pará-lo.
Figura 1.2: Arquitetura do ataque de DoS ao HoloLens
Os requisitos necessários para a correta reprodução deste ataque são:
Não é necessário ter um sistema operativo específico para executar o ataque. O script utilizado para o DoS deve ser adaptado de acordo com os requisitos da ferramenta escolhida para executar o script.
O indivíduo malicioso inicia o ataque ao selecionar uma ferramenta de scan à rede para identificar o IP atual dos headsets ligados à rede. Para aceder à página inicial do ”Device Portal”, basta introduzir o IP dos headsets no browser. Nesta página, será solicitado que introduza as credenciais de início de sessão. No entanto, após 3 tentativas incorretas, o utilizador é redirecionado para a página onde pode ser solicitado um novo emparelhamento com os headsets e, subsequentemente, pode ser criado um novo utilizador. Ao inspecionar os elementos desta página web, é possível analisar os pedidos de rede feitos à API do HoloLens. Esses pedidos contêm informações sobre o corpo e os cabeçalhos do pedido, que podem ser facilmente replicados noutra ferramenta, como apresentado na Figura 1.3. A capacidade de enviar esses pedidos foi o vetor de ataque identificado.
Figura 1.3: Pedido à API do HoloLens
Sempre que é feito um novo pedido de emparelhamento, os processos do HoloLens são colocados em pausa e um PIN é sobreposto à vista do utilizador, que deve ser introduzido na página web para prosseguir com o emparelhamento do dispositivo, como representado na Figura 1.4. O HoloLens só retoma o funcionamento normal quando este PIN desaparece. Para o fazer desaparecer, o utilizador pode concluir o processo de emparelhamento na página web ou abrir um Menu de Definições onde pode voltar à vista típica do HoloLens.
Figura 1.4: PIN de emparelhamento do HoloLens
Para testar este problema, foi desenvolvido um script para fazer pedidos de emparelhamento repetidamente à API, ignorando quaisquer erros que possam ocorrer até o processo ser interrompido manualmente pelo atacante (ver Figura 1.5 e Apêndice A). Este script foi desenvolvido para o Windows PowerShell, pois é possível agendar o script para ser executado sempre que o computador é ligado. Desta forma, o atacante pode instalar o script nas máquinas alvo, que normalmente estão ligadas à mesma rede que o HoloLens. O ataque é executado em segundo plano sem que os utilizadores se apercebam, tornando o equipamento inutilizável. O PowerShell fornece o comando ”New-ScheduledTask”, que permite criar um acionador para executar o script malicioso sempre que o computador é ligado.
Figura 1.5: Script PowerShell
Sempre que é feito um pedido de emparelhamento, o PIN de emparelhamento é sobreposto à vista do utilizador. Como resultado dos testes realizados com o script anterior, observou-se que o envio contínuo de pedidos faz com que o HoloLens sobreponha constantemente novos PINs à vista do utilizador, impedindo-o de realizar qualquer outra tarefa. O utilizador tem a opção de abrir um menu sobre este PIN, no entanto, como os headsets estão constantemente a receber novos pedidos, o utilizador não tem tempo para executar qualquer operação neste menu. Com o tempo, os óculos começam a falhar e o HoloLens tem dificuldade em compreender os gestos ou comandos falados pelo utilizador. Desta forma, o utilizador deixa de conseguir utilizar o dispositivo até o ataque ser interrompido.
O ataque foi testado em diferentes cenários e provou ser eficaz na sua totalidade. Quando o utilizador tenta reiniciar o HoloLens, como esperado, a API deixa de responder. No entanto, como definido no script, os erros devolvidos pelo servidor devem ser ignorados, permitindo que este continue a ser executado em segundo plano. Assim que é detetado que o HoloLens restabeleceu a ligação à rede, o ataque persiste, impedindo o utilizador de realizar qualquer outra tarefa. O teste também foi realizado quando um dispositivo de confiança já estava emparelhado com os headsets. O resultado foi o mesmo: é possível realizar o ataque desde que o IP do remetente seja diferente do que já está emparelhado.
Durante os testes realizados, observou-se que os headsets sofreram sobreaquecimento devido à sobrecarga do CPU. Na Figura 1.6, é demonstrado o processamento do CPU e da memória dos headsets durante o ataque. Como pode ser visto em certos momentos, o CPU está elevado a níveis muito altos, causando sobreaquecimento do equipamento e atrasando a sua resposta a outros serviços.
Figura 1.6: Processamento de CPU e memória
Em suma, este ataque de DoS consiste em sobrecarregar a API do HoloLens com pedidos de emparelhamento. Desta forma, novos PINs são constantemente sobrepostos à vista do utilizador em questão de segundos. Este comportamento impede o utilizador legítimo de realizar qualquer outra tarefa no HoloLens até que o ataque seja interrompido. Os métodos de mitigação adequados para este tipo de ataque seriam ao nível da API, aplicando uma restrição aos pedidos de emparelhamento feitos a partir de um IP específico. No entanto, se o atacante pretender falsificar o IP nos seus pedidos, esta metodologia poderia ser facilmente ultrapassada. Portanto, propõe-se também restringir o número total de pedidos feitos num curto período de tempo.