Voltar para todas as publicações
Publicado em · por Renaud Deraison

O malware estava hospedado em chatgpt.com, e era esse o ponto

Uma nova campanha aluga a confiança de um domínio em que você já acredita. Um anúncio do Google envia você a um link de compartilhamento real do chatgpt.com, o link de compartilhamento mostra um aviso falso de indisponibilidade, e o aviso entrega malware. Eis como a confiança é tomada emprestada — e por que o empréstimo deixa de importar quando tudo acontece dentro de uma VM que você descarta.

A barra de endereço dizia chatgpt.com. O ícone de cadeado estava verde. A página era servida pela OpenAI. Todo sinal que uma pessoa cuidadosa é ensinada a verificar voltava limpo — e a página ainda assim tentava instalar malware no computador. O domínio confiável não foi um deslize. Era o plano.

Você está buscando o ChatGPT. Você o digita no Google, do jeito que algumas centenas de milhões de pessoas fazem todos os dias. O primeiro resultado é um anúncio. O anúncio diz ChatGPT, leva ao ChatGPT, e deposita você em uma página cujo endereço genuinamente começa com chatgpt.com. Até aqui nada está errado. Nada parece errado porque nada visivelmente está errado: você está no domínio real da OpenAI.

Então a página lhe diz que o site está fora do ar. "Estamos com tráfego intenso neste momento," ela diz. "Nosso site está temporariamente indisponível devido a um grande número de usuários." Ela sugere que você baixe o app desktop no lugar. Há um botão. Você está no chatgpt.com, o serviço claramente está passando por um momento, e um app desktop é uma coisa razoável de se querer. Você clica.

É esse o truque inteiro, e pesquisadores de segurança da Push Security o documentaram no fim de maio, em uma campanha que chamam de LLMShare. Vale entendê-lo em detalhe, porque é um exemplo limpo de um padrão de ataque que vai continuar aparecendo: não invadir um serviço confiável, mas alugar sua reputação.

A página realmente estava no chatgpt.com.

O ChatGPT, como a maioria dos grandes produtos de IA, permite que você compartilhe uma conversa. Você clica em compartilhar, recebe um link sob chatgpt.com/s/, e qualquer pessoa com o link vê uma cópia renderizada da troca. Útil, comum, em toda parte.

A pegadinha está no que "renderizada" significa. Essas páginas compartilhadas podem incluir a saída do modelo, e essa saída pode conter HTML e CSS — os mesmos ingredientes de que qualquer página web é feita. Então, em vez de compartilhar uma conversa, o atacante compartilha uma "conversa" cujo conteúdo é uma falsificação feita à mão: um aviso de indisponibilidade da OpenAI fiel ao pixel, completo com as fontes certas, o azul certo, o tom certo. Segundo a pesquisa, o que entrega o jogo é sutil — a visualização compartilhada ainda carrega os próprios controles "Show code" e "Remix" do ChatGPT, o indício de que a "página de indisponibilidade" é apenas marcação personalizada que alguém escreveu.

O objetivo de fazê-lo dessa forma é a URL. A isca de malware não vive em chatgpt-downloads-official.biz. Ela vive em chatgpt.com, um domínio com reputação imaculada, um certificado válido, e um lugar na memória muscular de todos que já usaram o produto. Toda defesa que funciona perguntando "este é um domínio em que confiamos?" responde sim, porque a resposta honesta é sim.

1 · O ANÚNCIOAnúncio do Googlebusca "ChatGPT"2 · DOMÍNIO REALchatgpt.com/s/um "chat" compartilhado3 · FALHA FALSA"Estamos fora do ar"HTML/CSS personalizado4 · REDIRECIONAMENTOopenew[.]appcamufla scanners5 · DOWNLOADmacOS + Wininstalador de malwareQuando um scanner visita…ele vê um inofensivo sitede empresa de AR/VR.Cada salto é mais confiável do que o próximo é perigoso
A cadeia toma confiança emprestada a cada salto. Um anúncio pago do Google empresta legitimidade ao clique; o link de compartilhamento do chatgpt.com empresta legitimidade à página; e um redirecionamento de camuflagem empresta um atestado de saúde limpo aos scanners automatizados. Só o binário final é abertamente malicioso — e a essa altura o usuário já foi conduzido por todos os pontos de verificação.

O servidor de download mente para o scanner.

Clique no botão de download na página falsa de indisponibilidade e você é enviado para fora do chatgpt.com, para openew[.]app, um site disfarçado de portal oficial de download da OpenAI. É aqui que vive a segunda peça de camuflagem.

Camuflagem significa mostrar conteúdo diferente a visitantes diferentes. O servidor do atacante observa quem está perguntando. Se a requisição cheira a um scanner de segurança automatizado — e boa parte da segurança da internet depende de serviços como o URLScan rastreando URLs e renderizando-as em um sandbox — o servidor entrega algo inocente. Neste caso, segundo a pesquisa, scanners que visitavam a URL viam um inofensivo site de empresa de realidade aumentada / realidade virtual. Limpo. Nada a sinalizar. Se, em vez disso, a requisição cheira a um humano real que seguiu a isca, o servidor entrega o malware.

Então o veredito automatizado sobre openew[.]app é "benigno," e o veredito humano — o que importa — nunca recebe uma segunda opinião. O download é oferecido tanto para macOS quanto para Windows, porque o atacante não sabe nem se importa em qual você está; ele quer os dois públicos. (A amostra para Windows ainda verifica se está rodando dentro de uma máquina virtual antes de prosseguir, uma jogada comum para escapar de sandboxes de análise — guarde esse pensamento.)

Nada disso é exótico. É a mesma família de técnicas que as cadeias de malvertising e envenenamento de SEO sobre as quais já escrevemos. O que torna o LLMShare digno de um post é a qualidade da confiança que ele toma emprestada. Os mesmos pesquisadores dizem que o padrão não é exclusivo do ChatGPT: eles viram os recursos de compartilhamento/ renderização de outros produtos de IA — os Artifacts do Claude, conversas compartilhadas do Grok — colocados a serviço do mesmo fim. Qualquer produto que permita a um estranho publicar HTML renderizado sob o domínio da sua marca tornou-se, sem querer, um provedor de hospedagem para quem quer que queira abusar dessa marca.

Por que todo ponto de verificação o deixa passar.

Percorra a cadeia de volta e note que cada instinto defensivo que um usuário cuidadoso tem é satisfeito por design:

Este é o site real?

Sim. A barra de endereço diz chatgpt.com, o certificado é válido, a página é servida pela OpenAI. "Verifique a URL" — o conselho que todos damos — retorna uma resposta limpa, porque a URL está limpa.

Um scanner sinalizou o host de download?

Não. O domínio de redirecionamento camufla: ele mostra a rastreadores de segurança um inofensivo site de AR/VR e guarda o malware para vítimas humanas. Feeds de reputação e selos de "este link foi verificado" não relatam nada de errado.

A página parece de phishing?

Não. Ela foi escrita como HTML/CSS fiel para imitar um aviso de indisponibilidade da OpenAI. Não há erro de digitação grosseiro, nem logotipo fora da marca, nem o indício de tradução tosca. Ela se parece exatamente com o que finge ser.

Baixar um app desktop é incomum?

Não. Muitos serviços reais incentivam você a instalar um app nativo, e um site lutando sob carga é um motivo familiar e plausível para oferecer um. A história fecha.

Esta é a parte desconfortável. O conselho padrão — inspecione a URL, confie em links escaneados, fique atento a phishing desleixado, desconfie de domínios estranhos — é um bom conselho, e esta campanha navega direto por tudo isso. Quando o sinal de domínio confiável é o ataque, o sinal para de ajudar. Você não pode dizer a uma pessoa cuidadosa para ser mais cuidadosa com uma página que passa em todos os testes que ela conhece.

Então a pergunta interessante não é "como o usuário poderia tê-lo notado." Para a maioria dos usuários, na maioria dos dias, eles não poderiam. A pergunta interessante é: o que acontece no momento em que o binário de fato é executado?

Tudo acontece em uma única aba.

Olhe a cadeia de novo e note onde ela vive. O anúncio abre no navegador. A página do chatgpt.com renderiza no navegador. O aviso falso de indisponibilidade é uma página web no navegador. O redirecionamento acontece no navegador. O download é iniciado pelo navegador. A única etapa que sai do navegador é a última — quando o instalador baixado é executado e começa a fazer o que quer que tenha sido feito para fazer, no computador, com os arquivos e permissões do usuário.

Esse último salto é o jogo inteiro. Tudo antes dele é preparação. O atacante gastou esforço real no orçamento do anúncio, na página convincente, na infraestrutura de camuflagem — tudo a serviço de fazer um binário executar em uma máquina. Se o binário executar em algum lugar que não contém nada seu, o atacante gastou tudo isso para comprometer um quarto vazio.

Esta é a geometria que a Bromure muda. Na Bromure, o navegador não roda no seu computador no sentido comum. Cada aba roda dentro de uma máquina virtual Linux descartável — um convidado selado com seu próprio sistema de arquivos, iniciado a partir de uma imagem limpa, que não tem visão dos seus arquivos, da sua keychain, das suas outras abas, ou da sua rede local. A página web, o renderizador, o JavaScript, o download, e a primeira execução do programa baixado acontecem todos dentro desse convidado. Quando você fecha a janela, o convidado e tudo dentro dele é destruído.

Navegador tradicionalSEU COMPUTADORpágina de compartilhamento do chatgpt.com"baixe o app desktop"INSTALADORroda como vocêArquivosLEGÍVEISKeychainALCANÇÁVELNavegadorCOOKIESPersistênciaITEM DE LOGINRedeALCANÇÁVELUm binário, alcance total.BromureSEU COMPUTADORVM DESCARTÁVELpágina de compartilhamento do chatgpt.com"baixe o app desktop"INSTALADORroda no convidadovê apenas o convidado vazioCONTIDOSeus arquivos + keychainintocadosFechar janelaVM apagada
Mesma campanha, mesma página convincente, mesmo instalador baixado. À esquerda, um navegador tradicional: executar o instalador significa executá-lo na sua máquina, contra os seus arquivos. À direita, a Bromure: o instalador roda dentro de uma VM descartável que não contém nada seu, e a VM — instalador incluído — é apagada quando você fecha a janela.

Note o que o sinal de domínio confiável compra para o atacante aqui: nada. A campanha inteira é projetada para derrotar a pergunta "eu confio nesta página." A Bromure não faz essa pergunta. Ela não precisa saber se chatgpt.com é confiável, porque ela não deixa o conteúdo de nenhuma página — confiável ou não — passar para além da VM convidada em primeiro lugar. A página poderia ser a página mais legítima da internet e a contenção seria idêntica. Confiança simplesmente não é a carga que a arquitetura suporta.

O mesmo vale para o truque de camuflagem de scanner. O atacante trabalhou duro para fazer openew[.]app parecer benigno à análise automatizada. A Bromure não depende de essa análise estar certa. Mesmo que o host de download seja pontuado como perfeitamente limpo e o arquivo seja deixado passar, o arquivo chega em um convidado descartável. E lembre-se da amostra para Windows que verifica se está rodando em uma máquina virtual antes de se desempacotar: esse reflexo antianálise agora trabalha contra o atacante, não a favor dele — o malware que se recusa a rodar em uma VM se recusa a rodar no único lugar onde conseguiu aterrissar.

O que isto não resolve.

O isolamento contém a execução. Ele não edita a realidade. Duas lacunas honestas merecem ser nomeadas.

Primeiro, a Bromure não impede você de ser convencido. Se a página convencê-lo a digitar sua senha real da OpenAI em um formulário de login real, ou a carregar um arquivo para fora do convidado, para o seu Mac, e executá-lo lá você mesmo, o isolamento foi contornado pelas suas próprias mãos. A proteção é que a preparação e a primeira execução do malware são contidas — não que a engenharia social se torne impossível. Uma página que é tão boa em personificação ainda é uma página da qual vale a pena desconfiar; a arquitetura diminui o que está em jogo ao ser enganado, ela não aumenta suas chances de identificar o enganador.

Segundo, isto é fundamentalmente um ataque entregue pelo navegador, e é exatamente por isso que a contenção é decisiva. A cadeia inteira — anúncio, página, redirecionamento, download, primeira execução — vive na aba. Não há um app nativo separado a comprometer, nem cliente de e-mail, nem um segundo programa em que o usuário confia. Decapite a cadeia no ponto em que o binário roda e não sobra nada à jusante. Quando o ataque começa e termina no navegador, um navegador que absorve o golpe é o lugar certo para se postar.

O próximo estará em um domínio em que você também confia.

O LLMShare não é realmente uma história sobre o ChatGPT. É uma história sobre uma técnica: pegue um serviço em que as pessoas confiam, encontre o canto dele que permite a um estranho publicar HTML renderizado sob seu nome, e use esse canto para hospedar a isca. ChatGPT hoje; os pesquisadores já veem o Claude e o Grok usados da mesma forma; amanhã será qualquer produto que seja ao mesmo tempo popular e generoso com o que renderiza em seu nome.

Você não pode vencer isto ficando melhor em identificar domínios ruins, porque a jogada inteira é usar os bons. Você vence tornando a barra de endereço irrelevante para a sua segurança — arranjando as coisas de modo que o pior que uma página pode fazer, não importa de quem seja o logotipo nela, é encher um quarto descartável que você esvazia ao fechar uma janela.

É para isso que a Bromure serve. Instale-a, torne-a seu navegador padrão, e deixe a confiança tomada emprestada não comprar nada ao atacante.