A carteira do desenvolvedor de blockchain foi esvaziada em "entrevista de emprego" usando o pacote npm
28 de Dezembro de 2023

Um desenvolvedor de blockchain relatou seu sofrimento durante as férias quando foi abordado no LinkedIn por um "recrutador" para um trabalho de desenvolvimento web.

O recrutador em questão pediu ao desenvolvedor para baixar pacotes npm de um repositório do GitHub, e horas depois o desenvolvedor descobriu que sua carteira MetaMask havia sido esvaziada.

Com base em Antalya, Murat Çeliktepe, um desenvolvedor de blockchain e web, compartilhou nesta semana como foi abordado por um "recrutador" no LinkedIn com uma postagem de trabalho no Upwork que parecia legítima.

Como parte da entrevista de emprego, o recrutador pediu a Çeliktepe para baixar e depurar o código em dois pacotes npm - "web3_nextjs" e "web3_nextjs_backend" hospedados em um repositório do GitHub.

No entanto, momentos depois, o desenvolvedor descobriu que sua carteira MetaMask havia sido esvaziada - com mais de $500 retirados de sua conta, com base nas informações vistas pelo BleepingComputer.

A postagem de trabalho no Upwork pede ao candidato para "corrigir bugs e responsividade no site" e promete pagar entre $15 e $20 por hora por uma tarefa que se espera que demore menos de um mês.

Çeliktepe, cuja foto de perfil no LinkedIn apresenta a tag "#OpenToWork", decidiu enfrentar o desafio e baixou os repositórios do GitHub compartilhados pelo recrutador, como parte da "entrevista técnica".

Não é incomum que entrevistas técnicas legítimas envolvam algum tipo de exercício para fazer em casa ou uma tarefa de prova de conceito (PoC) envolvendo a escrita ou depuração de código, o que torna a isca altamente convincente mesmo para pessoas tecnicamente experientes, como desenvolvedores.

Vale ressaltar que os aplicativos presentes nos ditos repositórios do GitHub são projetos npm válidos, dado o seu formato e o manifesto package.json incluído, mas estes não parecem ter sido publicados em npmjs.com, o maior registro de open-source de projetos JavaScript.

"Minha carteira MetaMask foi completamente esvaziada...

sob o pretexto do processo de entrevista e de designação de trabalho, toda a minha carteira foi completamente esvaziada de uma forma que eu ainda não entendo exatamente como", escreveu Çeliktepe em turco nas redes sociais.

"Compartilharei os códigos abaixo, ficaria muito feliz se alguém pudesse me ajudar a entender como".

Como por instruções de tarefa, o desenvolvedor clonou ambos os repositórios do GitHub e começou a depurar sua instância enquanto executava tanto as aplicações frontend quanto backend em sua máquina.

Após a tarefa, ele participou de uma sessão do Google Meet com o homem que o abordou no LinkedIn, e explicou a solução - e era isso, ou pelo menos o desenvolvedor achou.

Excepto que, algumas horas depois, o desenvolvedor notou que seu saldo de Ethereum havia sido esvaziado.

Entre as recentes transações compartilhadas pelo desenvolvedor e vistas pelo BleepingComputer, está uma saída de 0.225 ETH - aproximadamente US$538 enviados para outro endereço de criptografia na última semana.

Apesar de ter examinado o código presente em ambos os repositórios, o desenvolvedor ainda não tem certeza sobre os exatos mecanismos deste ataque que o levou a perder dinheiro e está procurando ajuda da comunidade para entender o mesmo.

Seu apelo foi rapidamente seguido por bots de criptografia e contas de golpistas aproveitadores, tentando-o a entrar em contato com suportes falsos do MetaMask.

Alguns membros da comunidade legitimamente preocupados deram um passo à frente para oferecer seus insights.

Um caçador de bugs baseado em Istambul teorizou que os projetos npm executados pelo desenvolvedor deram ao atacante a oportunidade de implantar um shell reverso, abrindo a porta 5000 em sua máquina que começou a "escutar" conexões.

O BleepingComputer confirmou a presença do código descrito dentro do aplicativo de backend "web3_nextjs_backend", mas não conseguimos confirmar independentemente se os atacantes acessaram a máquina do desenvolvedor por meio desse vetor de ataque.

Além disso, Çeliktepe diz que nunca manteve as "12 palavras" secretas ou o que é formalmente conhecido como a frase de recuperação secreta do MetaMask (SRP) em seu computador e, portanto, não entende como sua carteira MetaMask foi violada, mesmo que os atacantes tenham obtido acesso à sua máquina.

Os membros da comunidade propõem outras teorias, tais como, em vez da máquina do desenvolvedor ser infectada com malware, o projeto npm ilícito copiou suas senhas de um navegador web que tinha o preenchimento automático habilitado, ou que seu tráfego de rede foi interceptado pelo código que ele executou voluntariamente durante a "entrevista técnica".

Seja qual for o vetor de ataque, Çeliktepe não é o único que tem sido alvo dessa maneira, e isso pelo mesmo "recrutador".

Outro desenvolvedor de blockchain e pesquisador de segurança, Bartu Bozkurt, diz que também foi abordado para o "emprego" no LinkedIn, dias antes, e chama isso de "um tipo muito conhecido de ataque".

Ainda outro desenvolvedor, Mehmet Selim, também confirma ter sido contatado pelo recrutador do LinkedIn que procurou Çeliktepe.

Como tal, os desenvolvedores web e pesquisadores de segurança devem ficar de olho em ofertas de emprego falsas em plataformas de desenvolvimento de carreira, pois estas podem ser golpes.

E boa ideia completar todos os exercícios de entrevista de emprego - por mais benignos que pareçam - em uma máquina (virtual) que seja separada do seu dispositivo principal.

Publicidade

Curso gratuito de Python

O curso Python Básico da Solyd oferece uma rápida aproximação à linguagem Python com diversos projetos práticos. Indo do zero absoluto até a construção de suas primeiras ferramentas. Tenha também suporte e certificado gratuitos. Saiba mais...