O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Phishing por "instalar como aplicativo": quando um site finge ser software

Phishing por "instalar como aplicativo": quando um site finge ser software

Navegadores baseados em Chromium permitem que um usuário transforme quase qualquer página web em algo que parece um aplicativo nativo: sua própria janela, seu próprio ícone no Dock, nenhum elemento visível de navegador. Esse recurso é pensado para sites legítimos que você usa com frequência. O pesquisador de segurança mr.d0x documentou, em 11 de junho de 2024, como o mesmo mecanismo pode ser transformado em um kit de phishing: instalar uma página como aplicativo, e depois desenhar uma janela de navegador falsa, barra de endereço e tudo, dentro do próprio HTML do aplicativo.

Como a ilusão de aplicativo instalado é construída

Na técnica documentada, uma vítima é levada a uma página que a convida a instalá-la como aplicativo, com o próprio aviso de instalação mostrando um nome falsificado como "Microsoft Login." Uma vez instalado, o aplicativo abre em sua própria janela sem elementos de navegador. Como não existe uma barra de endereço real para falsificar, a página desenha a sua própria com CSS: uma falsificação convincente, posicionada exatamente onde a barra de endereço de um navegador estaria, mostrando qualquer URL que o atacante queira exibir. Para alguém treinado a "verificar a barra de endereço," o aplicativo parece passar nesse teste, porque o que essa pessoa está olhando não é, de forma alguma, a barra de endereço do navegador.

O que de fato torna isso convincente

  • Instala-se como um software normal: um ícone no Dock ou na pasta Aplicativos, sua própria janela, às vezes notificações push, nada disso exigindo sair do próprio fluxo de instalação do navegador.
  • O nome e o ícone do aviso de instalação são o que quer que o manifesto do atacante declare que sejam. Nada na etapa de instalação verifica se o nome corresponde ao site.
  • Uma vez rodando, os elementos falsos de navegador persistem por toda a sessão: sem abas de navegador, sem barra de favoritos, sem ícones de extensão para quebrar a ilusão.

Auditando o que está realmente instalado, pelo terminal

No macOS, o Chrome e navegadores baseados em Chromium instalam esses "aplicativos" como bundles de aplicativo comuns, e cada um registra a URL real de onde foi instalado dentro do seu próprio Info.plist, seja qual for o nome exibido no Finder. Confirmamos isso contra um aplicativo real, atualmente instalado neste Mac (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 fato que uma barra de endereço falsa não consegue alterar: ele é definido uma única vez, no momento da instalação, a partir do próprio manifesto da página, e é o que o aplicativo de fato abre toda vez que é iniciado. Um aplicativo chamado "Login do Banco" cujo CrAppModeShortcutURL aponta para outro lugar que não o domínio real do seu banco se entregou.

  1. Liste todo aplicativo web instalado: ls ~/Applications/*.localized/*/, uma vez para cada navegador baseado em Chromium que você usa (Chrome Apps.localized, Brave Browser Apps.localized, Edge Apps.localized, e similares).
  2. Para qualquer coisa da qual você não se lembre claramente de ter instalado, ou que lide com login, verifique sua URL real: plutil -p "<path>/Contents/Info.plist" | grep -i CrAppMode.
  3. Fique atento à origem verdadeira que o Chromium mostra brevemente quando o aplicativo abre, e leia isso, em vez da própria interface desenhada pelo aplicativo.

Por que isso é um problema de rede, não apenas de interface

Seja qual for a aparência da janela, uma página que coleta credenciais ainda precisa enviar o que coletou para algum lugar, pela rede, a partir de um processo rodando no seu Mac. Um firewall que só pergunta "o binário deste aplicativo está assinado e é confiável" não ajuda aqui: uma PWA instalada roda dentro do próprio executável assinado e confiável do navegador. O que pode ajudar é observar a própria conexão: qual processo está fazendo-a, e para onde ela de fato vai, independentemente do que a janela na tela alega ser.

Onde FireAI e HisnLabs entram nessa história

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: um firewall com IA que roda direto no seu Mac. Ele mostra, em linguagem simples, cada conexão que seus aplicativos fazem e deixa você decidir o que sai do seu Mac — a IA roda localmente, então seu tráfego nunca é enviado para nós nem para ninguém. A equipe de pesquisa em segurança da HisnLabs é quem mantém essas decisões confiáveis: cataloga quais domínios são telemetria comum e quais são um serviço de verdade, rastreia o país e a rede por trás de uma conexão e treina o modelo local (o recurso Autopilot) com padrões reais de tráfego, sem que nada disso saia do seu Mac.

Você pode ler as decisões técnicas por trás dele, ou testar o FireAI por 17 dias, em FireAI, da HisnLabs.

Fontes