O lado sombrio do WebAssembly

Carlos Ávila    13 octubre, 2020
O lado sombrio do WebAssembly

Hoje, as tecnologias de desenvolvimento de software para a web se multiplicam rapidamente, ao mesmo tempo que introduzem, em alguns casos, novas formas de ataque ou vantagens inesperadas para os invasores. Vamos ver o que é WebAssembly (WASM) e quais benefícios potenciais ele pode ter para os invasores.

Este padrão aberto relativamente novo (anunciado em 2015 mas começou a ser utilizado em 2017) permite-nos executar código binário, compilado com linguagens como C, C ++ ou Rust em navegadores modernos, com todas as novas funcionalidades e performance que pode acarretar.

Arquitetura geral do aplicativo WebAssembly
Arquitetura geral do aplicativo WebAssembly

O WASM não foi criado para substituir o JavaScript, mas para complementá-lo. Na verdade, é o mecanismo JavaScript responsável por sua execução. Este padrão possui múltiplos casos de uso, conforme indicado por seu site: desenvolvimento / execução de jogos, aplicativos CAD, plataformas de simulação, contratos inteligentes (blockchain), entre outros. Se você quiser dar uma olhada em como eles executam um binário de jogo no WASM, você pode ver este site que emula o famoso Gameboy ou como o AutoCAD começa a ser executado em qualquer navegador.

Assim como as novas tecnologias e linguagens de programação nos oferecem várias melhorias, é uma questão de tempo até que os invasores encontrem vetores de ataque para usá-los em seu próprio benefício , e os aplicativos WebAssembly não são exceção. Vamos ver, por meio do exemplo abaixo, como um código malicioso simples pode ser compilado para simular um ataque cibernético de engenharia social.

WASM (Fraude PoC) compila e executa exemplo
WASM (Fraude PoC) compila e executa exemplo
WASM (Fraude PoC) compila e executa exemplo

Esse tipo de ataque simulado é conhecido como «golpe de serviço de tecnologia», em que um golpista se faz passar por técnico de uma empresa de tecnologia usando táticas de intimidação e engenharia social para induzir as pessoas a pagar por serviços de suporte desnecessários. Quando a vítima liga para o número do suporte técnico, os golpistas pedem dinheiro para corrigir o problema ou solicitam acesso para instalar software malicioso (backdoor) no dispositivo da vítima. Este tópico do Twitter de Sergio de los Santos é um bom exemplo da sofisticação alcançada.

Caso de golpe de serviço técnico
Caso de golpe de serviço técnico

Nesses casos, o benefício para o invasor seria ofuscar o código no momento da análise, mais velocidade, etc. Na verdade, o código compilado do WASM já foi usado para campanhas de mineração de bitcoins, infectando navegadores por meio de código malicioso em sites comprometidos. Entre os casos mais conhecidos estão os de Coinhive e Cryptonight. Ambos os ataques (usando JavaScript gerado por WASM) aproveitaram o poder computacional para «minerar» criptomoedas por meio do navegador. Em geral, quando navegamos na Internet, podemos encontrar sites que foram comprometidos por golpistas, geralmente com código JavaScript ou WASM puro e, a partir daqui,Se nossos navegadores não tiverem controles adequados, o ataque pode ser concluído.

Se o WebAssembly estiver sendo usado para oferecer suporte a ataques de mineração de criptografia, os invasores podem continuar lucrando com outras frentes. Outras fórmulas de uso malicioso para WASM são:

  • Redirecionamento para URLs maliciosos: existem campanhas para infectar dispositivos por meio de redirecionamentos maliciosos (via código WebAssembly) de sites comprometidos com os mesmos golpes de suporte técnico, mineração de criptomoeda, etc.
  • Keyloggers registram o pressionamento de tecla para roubar senhas e quaisquer outras informações confidenciais de visitantes de sites comprometidos, aproveitando o fato de que o WebAssembly está gerando um código que evita as detecções típicas de controles externos ou navegadores.
  • Exploração do navegador: a exploração de vulnerabilidades no navegador quase sempre envolve JavaScript. Portanto, o WebAssembly pode desempenhar um papel importante na exploração do navegador, ofuscando o código de exploração.

As tecnologias oferecem muitas possibilidades, o WebAssembly não é exceção e pode ser um aliado ou um inimigo. É muito claro que tem muitas vantagens, mas pode fornecer novos caminhos para explorar as fraquezas em diferentes casos. Enquanto os desenvolvedores se esforçam para integrar recursos de segurança, nós, como usuários, devemos tomar nossos cuidados, mantendo nossos navegadores atualizados com plug-ins que bloqueiam a execução dinâmica de JavaScript, como o NoScript. De ElevenPaths, fornecemos ferramentas como AMSIext para evitar execuções indesejadas em navegadores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.