O ataque MarioNET permite que hackers controlem seu navegador, mesmo depois que você sai da página de ataque

O surgimento das tecnologias da web abriu novas possibilidades na Internet. Os navegadores se tornaram mais poderosos à medida que novas APIs chegaram e o suporte para determinados recursos foi introduzido.

Um novo ataque, chamado MarioNET pelos pesquisadores que o descobriram, destaca que as APIs também podem ser abusadas se não houver salvaguardas adequadas (o que é o caso agora).

O ataque depende das APIs HTML5 existentes que todos os navegadores modernos suportam. Ele não requer a instalação de software ou interação do usuário e persiste mesmo depois que o usuário sai da página da Web em que o ataque se originou.

O invasor pode abusar dos recursos do computador para todos os tipos de atividades, incluindo ataques DDOS, operações de mineração de criptografia ou quebra de senha.

Atualização : Você encontra uma voz crítica que argumenta contra o cenário descrito no trabalho de pesquisa aqui. O principal ponto de crítica é que o método de ataque se baseia em um recurso chamado PeriodicSync e que não faz parte de nenhuma especificação neste momento. Fim

O MarioNET usa Service Workers, scripts que são executados separadamente das páginas visitadas e em segundo plano, no ataque. A idéia principal por trás dos Service Workers é mover certos cálculos para um thread separado, para que não bloqueie ou diminua a velocidade do aplicativo ou página da Web com a qual o usuário interage.

O ciclo de vida dos Trabalhadores em Serviço é completamente independente da página em que foram criados. Os trabalhadores de serviço não têm acesso ao DOM (Document Object Model) da página da web e às variáveis ​​e funções da página pai.

O uso de Service Workers isola o sistema do site de origem, fornece controle persistente ao invasor e dificulta a detecção do que está acontecendo.

Em particular, nosso sistema cumpre três objetivos importantes:

(i) isolamento do site visitado, permitindo controle refinado dos recursos utilizados; (ii) persistência, continuando sua operação ininterruptamente em segundo plano, mesmo após o fechamento da guia pai; e (iii) evasão, evitando a detecção por extensões do navegador que tentam monitorar a atividade da página da web ou a comunicação de saída.

O MarioNET registra um trabalhador de serviço quando um usuário visita uma página da Web que pode ter origem em ataques. As possibilidades de espalhar o ataque incluem a criação de sites maliciosos, sites de hackers ou o uso de anúncios.

Os navegadores fornecem pouca informação aos usuários sobre Service Workers; de fato, os navegadores não destacam a criação de novos profissionais de serviço nos sites para os usuários. Não há alerta, prompt e nem mesmo uma opção para exibir um prompt para solicitar permissão do usuário quando os trabalhadores do serviço são criados.

A única solicitação que revela a existência do trabalhador do serviço é a solicitação GET inicial no momento da primeira visita ao site do usuário, quando o trabalhador do serviço é registrado inicialmente. Embora durante essa solicitação GET, uma extensão de monitoramento possa observar o conteúdo do trabalhador do serviço, ele ainda não observará nenhum código suspeito - o código que executará as tarefas maliciosas é entregue ao servidor apenas após sua primeira comunicação com o marionetista, e esta comunicação está oculta das extensões do navegador

O que torna o MarioNET particularmente preocupante é que ele continua sendo executado em segundo plano depois que o usuário fecha o site em que o ataque se originou. O controle termina quando o navegador da web é fechado; os pesquisadores encontraram uma maneira de superar isso também, mas isso requer interação do usuário, pois usa a API Web Push para fazer isso.

Protecção

Os navegadores mais modernos incluem opções para exibir os Trabalhadores em Serviço existentes. Os usuários do Firefox podem carregar about: serviceworkers ou about: debugging # workers e os usuários do Chrome podem carregar chrome: // serviceworker-internals / para fazer isso.

Você pode cancelar o registro de qualquer Trabalhador de Serviço usando a funcionalidade fornecida nessas páginas. Os usuários do Firefox podem desativar os Service Workers ainda mais.

Observe que isso pode afetar a funcionalidade dos sites que a usam para fins legítimos. Você precisa definir a preferência dom.serviceWorkers.enabled como false em about: config.

Algumas extensões do navegador, por exemplo, Service Worker Detector para Chrome e Firefox, notificam os usuários quando uma página da web registra um Service Worker.

Agora você : Os desenvolvedores de navegadores devem implementar salvaguardas adicionais? (via ZDNet)