Skip to content
Post

Duas vagas falsas no Upwork, um Mac infectado: meus encontros com o Contagious Interview da Coreia do Norte

Um projeto de teste com um pacote npm envenenado e um app de reunião falso instalado com curl | bash. O que aconteceu nas duas vezes, como usei o Claude Code para achar o malware e a ferramenta que criei depois.

Publicado em
Leitura
4 min
Idiomas
EN中PT
Tags
  • security
  • upwork
  • malware
  • macos
  • contagious-interview
Neste post
  1. A primeira vez: junho de 2026
  2. A segunda vez: outubro de 2026
  3. Olhando para trás
  4. O Claude Code como meu investigador forense
  5. O que eu perdi
  6. Por isso criei uma ferramenta: o Tsuba

Resumindo: o Contagious Interview é um ataque de recrutamento falso feito por hackers norte-coreanos. Eles se passam por clientes ou recrutadores em plataformas como Upwork e LinkedIn e, no fim, fazem você mesmo rodar um "projeto de teste" ou instalar um "app de reunião". Uma regra basta para reconhecer: se um processo seletivo pede para você rodar código desconhecido no seu computador, pare. Se já rodou, desconecte da internet, procure processos e pastas desconhecidos, troque as senhas e encerre a sessão em todos os dispositivos nos sites que importam.

A primeira vez: junho de 2026

Um cliente que se dizia ucraniano me procurou no Upwork. Ele tinha um projeto e queria minha ajuda, e me mandou um projeto de teste em Node.js chamado "Online_Store".

O código malicioso estava escondido em uma das dependências do npm. Já não lembro exatamente qual pacote era; acho que era algo ligado ao Tailwind. Assim que rodei o projeto, ele criou em silêncio uma pasta ~/.node_modules no meu computador, com axios e socket.io-client dentro, prontos para mandar meus dados para fora.

Quando percebi, ele já estava rodando em segundo plano havia dias. Só descobri por sorte: um colega meu no Reino Unido passou exatamente pela mesma coisa, e quando ele me contou, me dei conta de que eu provavelmente também tinha sido atingido.

A segunda vez: outubro de 2026

Desta vez, a pessoa dizia ser lituana, de uma empresa de investimentos chamada Veyron Capital (veyron[.]capital), que tinha publicado várias vagas de Web3 no Upwork.

Primeiro ele me mandou mensagem e depois marcou uma videochamada pelo Upwork. Ficou com a câmera desligada e falou comigo em chinês o tempo todo. Depois pediu para eu adicioná-lo no Telegram e me colocou em um grupo, onde me pediram para fazer uma demo de Web3 e apresentar para a equipe em uma reunião.

Na hora da apresentação, disseram que um colega estava viajando e não podia usar a ferramenta de sempre, então precisávamos trocar para um app de reuniões chamado "Zeff" (zeff[.]app). Outra pessoa do grupo me "ajudou" a instalar e deu duas opções: rodar um comando curl | bash no terminal ou baixar um DMG.

Não instalei. Depois de ter caído uma vez, assim que vi "rode este comando desconhecido no terminal para a gente fazer uma reunião", percebi que era o mesmo golpe.

Olhando para trás

As duas vezes foram ataques "Contagious Interview" da Coreia do Norte: recrutamento falso e entrevistas falsas. Eles ganham sua confiança com o que parece uma vaga comum e depois fazem você rodar o código deles com as próprias mãos.

Os dois ataques seguiram o mesmo roteiro: contato, confiança, o pedido, o golpe. Na segunda vez, parei no golpe.
Os dois ataques seguiram o mesmo roteiro: contato, confiança, o pedido, o golpe. Na segunda vez, parei no golpe.

O que mais me incomodou foi que nem o XProtect, que já vem no macOS, nem os antivírus tradicionais deram um pio, nas duas vezes.

O Claude Code como meu investigador forense

Depois da primeira infecção, quem realmente achou o problema foi o Claude Code. Usei o Fable 5 (Max), dei as permissões necessárias e pedi para ele vasculhar o disco inteiro e os processos em segundo plano, como um investigador. Ele logo descobriu que o malware ainda estava rodando e depois me guiou, passo a passo, para limpar tudo.

O que eu perdi

Por sorte, nada. O que esse tipo de malware mais quer são carteiras de criptomoedas, e eu não tenho nenhuma naquele computador. As contas que importam para mim têm verificação em duas etapas ativada, então mesmo com as minhas senhas ninguém conseguiria entrar.

Mas fica um alerta: esse malware costuma roubar também as sessões de login (cookies) salvas no navegador. Com elas, o atacante pode pular a verificação em duas etapas e entrar direto nas suas contas. Então, se você for atingido, troque as senhas e também encerre a sessão em todos os dispositivos conectados nos sites que importam.

Por isso criei uma ferramenta: o Tsuba

Depois desses dois episódios, ficou claro onde estava a brecha. Esses ataques vêm com uma embalagem nova a cada vez e usam as ferramentas mais comuns que existem, como node, curl e bash, então o antivírus tradicional não tem motivo para desconfiar.

Por isso criei um pequeno app de barra de menus para macOS chamado Tsuba (鍔, a guarda da mão de uma espada japonesa). A ideia é simples: antes de um código desconhecido rodar pela primeira vez, ele dá uma olhada por você. Ele descobre o que o código vai fazer, de onde veio e se parece com um ataque conhecido, e então decide se libera, avisa ou bloqueia.

Antes de um código desconhecido rodar, ele passa pelas quatro verificações do Tsuba, que decidem se libera, avisa ou bloqueia.
Antes de um código desconhecido rodar, ele passa pelas quatro verificações do Tsuba, que decidem se libera, avisa ou bloqueia.

Veja como ele se aplica aos meus dois casos:

  • Um projeto de entrevista falso, como o primeiro: antes de você rodar npm install ou npm start, ele verifica se as dependências estão em listas públicas de pacotes maliciosos e procura no código do projeto por código escondido, endereços remotos fixos ou trechos que leem carteiras e cofres de senhas. Se ainda estiver em dúvida, você pode rodar o projeto em uma sandbox e ver o que ele faz de verdade.
  • Um app de reunião falso, como o segundo: quando aparece um curl | bash, ele baixa o script remoto sem executar e verifica o que ele faria. DMGs baixados também têm assinatura, notarização e origem verificadas.

O Tsuba é gratuito e o código-fonte está no GitHub. O download para Macs com Apple silicon e Intel, e tudo mais sobre ele, está na página do Tsuba. Se você pega trabalhos no Upwork ou em plataformas parecidas, ou costuma rodar código que outras pessoas mandam, vale a pena experimentar.

Acompanhe

Compartilho projetos, experimentos e aprendizados pelo caminho.

Vídeos novos no YouTube, notas curtas no X. Cada post aqui leva aos dois.

YouTube