O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Phishing por "Instalar como Aplicação": Quando um Sítio Web Finge Ser Software

Phishing por "Instalar como Aplicação": Quando um Sítio Web Finge Ser Software

Os navegadores baseados em Chromium deixam um utilizador transformar quase qualquer página web naquilo que parece uma aplicação nativa: a sua própria janela, o seu próprio ícone no Dock, sem elementos visíveis do navegador. Essa funcionalidade destina-se a sítios legítimos que usa com frequência. O investigador de segurança mr.d0x documentou, a 11 de junho de 2024, como o mesmo mecanismo pode ser transformado num kit de phishing: instalar uma página como aplicação, e depois desenhar uma janela de navegador falsa, barra de endereço incluída, dentro do próprio HTML da aplicação.

Como se constrói a ilusão de aplicação instalada

Na técnica documentada, uma vítima é levada a uma página que a convida a instalá-la como aplicação, com o próprio pedido de instalação a mostrar um nome falsificado como "Microsoft Login." Uma vez instalada, a aplicação abre na sua própria janela, sem elementos de navegador. Como não há nenhuma barra de endereço real para falsificar, a página desenha a sua própria com CSS: uma imitação convincente, posicionada exatamente onde estaria a barra de endereço de um navegador, a mostrar o URL que o atacante quiser exibir. Para alguém treinado a "verificar a barra de endereço," a aplicação parece passar nessa verificação, porque aquilo que está a ver não é de todo a barra de endereço do navegador.

O que realmente torna isto convincente

  • Instala-se como software normal: um ícone no Dock ou na pasta Aplicações, a sua própria janela, por vezes notificações push, nada disto exigindo sair do próprio fluxo de instalação do navegador.
  • O nome e o ícone do pedido de instalação são o que o manifesto do atacante declarar que são. Nada no passo de instalação verifica se o nome corresponde ao sítio.
  • Uma vez a correr, a interface falsa persiste durante toda a vida da sessão: sem separadores de navegador, sem barra de marcadores nem ícones de extensões para quebrar a ilusão.

Auditar o que está de facto instalado, a partir do terminal

No macOS, o Chrome e os navegadores baseados em Chromium instalam estas "aplicações" como pacotes de aplicação normais, e cada uma regista o URL real a partir do qual foi instalada dentro do seu próprio Info.plist, seja qual for o nome mostrado no Finder. Confirmámos isto contra uma aplicação real, atualmente instalada, nesta máquina (um atalho instalado pelo navegador para um painel da Cloudflare):

Terminal
ls ~/Applications/*.localized/
Cloudflare.app

plutil -p ~/Applications/"Brave Browser Apps.localized"/Cloudflare.app/Contents/Info.plist | grep -i CrAppMode
  "CrAppModeShortcutName" => "Cloudflare"
  "CrAppModeShortcutURL" => "https://dash.cloudflare.com/"

Esse campo CrAppModeShortcutURL é o facto que uma barra de endereço falsa não consegue alterar: é definido uma vez, no momento da instalação, a partir do próprio manifesto da página, e é o que a aplicação de facto abre sempre que arranca. Uma aplicação chamada "Início de Sessão do Banco" cujo CrAppModeShortcutURL aponta para outro sítio que não o domínio real do seu banco denunciou-se a si própria.

  1. Liste todas as aplicações web instaladas: ls ~/Applications/*.localized/*/, uma vez por cada navegador baseado em Chromium que usa (Chrome Apps.localized, Brave Browser Apps.localized, Edge Apps.localized, e semelhantes).
  2. Para tudo o que não se lembre claramente de ter instalado, ou que trate de um início de sessão, verifique o seu URL real: plutil -p "<caminho>/Contents/Info.plist" | grep -i CrAppMode.
  3. Fique atento à origem verdadeira que o Chromium mostra brevemente quando a aplicação abre, e leia-a, em vez de ler a interface desenhada pela própria aplicação.

Por que isto é um problema de rede, e não só de interface

Seja qual for o aspeto da janela, uma página de recolha de credenciais continua a ter de enviar o que recolheu para algum lado, através da rede, a partir de um processo a correr no seu Mac. Uma firewall que só pergunta "o binário desta aplicação está assinado e é de confiança" não pode ajudar aqui: uma PWA instalada corre dentro do próprio executável assinado e de confiança do navegador. O que pode ajudar é vigiar a própria ligação: qual o processo que a está a fazer, e para onde está de facto a ir, independentemente do que a janela no ecrã alega ser.

O papel do FireAI e da HisnLabs

Whatever a fake login screen looks like, it still has to send the password it captured somewhere; FireAI shows you exactly which process is trying to phone home and to what destination, installed web app or not, and lets you say no before anything leaves your Mac.

O FireAI é o produto da HisnLabs: uma firewall com IA que corre diretamente no seu Mac. Mostra, em linguagem clara, cada ligação que as suas aplicações fazem e deixa-o decidir o que sai do seu Mac — a IA funciona localmente, pelo que o seu tráfego nunca é enviado para nós nem para mais ninguém. A equipa de investigação em segurança da HisnLabs é quem mantém essas decisões fiáveis: cataloga que domínios são simples telemetria e quais são um serviço real, acompanha o país e a rede por detrás de uma ligação e treina o modelo local (a funcionalidade Autopilot) com padrões de tráfego reais, sem que nada disso saia do seu Mac.

Pode ler as decisões técnicas por detrás dele, ou experimentar o FireAI durante 17 dias, em FireAI, da HisnLabs.

Fontes