
25 fev Pacote falso do Stripe rouba credenciais de desenvolvedores via NuGet
Pesquisadores de segurança da ReversingLabs identificaram um pacote malicioso no repositório NuGet. Ele se passa pela biblioteca oficial do Stripe, plataforma de pagamentos usada por milhões de empresas ao redor do mundo.
O pacote falso, chamado StripeApi.Net, foi projetado para roubar tokens de API de desenvolvedores que o instalassem por engano, entregando aos criminosos acesso direto às contas Stripe das vítimas.
A descoberta é mais uma da mesma equipe: em dezembro de 2025, a ReversingLabs já havia investigado uma campanha maliciosa no NuGet que mirava desenvolvedores ligados a plataformas de criptomoedas como Coinbase, Binance, Solana e Nethereum.
Agora, os criminosos parecem ter mudado de alvo, saindo do universo cripto e ampliando o foco para o setor financeiro tradicional.
O que é o NuGet e por que ele é alvo de ataques?
Para entender o ataque, é preciso primeiro entender o ambiente em que ele acontece. Desenvolvedores usam pacotes e bibliotecas de código prontas, criadas por outras pessoas ou empresas, que resolvem problemas comuns como processar pagamentos, conectar bancos de dados ou integrar serviços externos.
O NuGet é o gerenciador de pacotes oficial da plataforma .NET, da Microsoft. Funciona como uma grande loja centralizada onde o desenvolvedor busca o pacote que precisa, instala com um comando, e o código já está disponível no projeto.
O repositório público fica em ‘nuget.org’, onde qualquer pessoa pode publicar pacotes. É exatamente essa abertura que os criminosos exploram, já que não existe verificação rigorosa do que é publicado lá.
O Stripe.net é um dos pacotes mais populares do repositório, com mais de 74 milhões de downloads. Ele serve para que desenvolvedores integrem o Stripe, uma plataforma responsável por processar cartões de crédito, gerenciar assinaturas e movimentar dinheiro online, em aplicações construídas com .NET.
Se esse pacote fosse comprometido, qualquer aplicação que dependesse dele poderia ter dados de pagamento, chaves de API e informações de clientes expostos.
A estratégia de typosquatting
Comprometer o pacote oficial do Stripe diretamente seria extremamente difícil. Então os criminosos optaram por uma alternativa mais simples, o typosquatting.
A técnica consiste em publicar um pacote com um nome quase idêntico ao original, apostando que o desenvolvedor cometa um pequeno deslize na hora de buscar ou simplesmente não note a diferença entre “Stripe.net” e “StripeApi.Net”.
A página do pacote falso no NuGet foi construída para enganar à primeira vista: mesmo ícone do original, texto de documentação praticamente idêntico, links apontando para os repositórios e sites oficiais do Stripe. Além disso, o nome do publicador é registrado como “StripePayments”, mais um detalhe para transmitir legitimidade.
O único sinal de alerta é que o perfil do publicador usava a foto padrão do NuGet, enquanto o perfil oficial do Stripe exibe o logotipo da empresa.
Para reforçar ainda mais a credibilidade, os criminosos inflaram artificialmente o contador de downloads. O pacote exibia mais de 180.000 downloads, distribuídos em 506 versões, com cerca de 300 downloads por versão.
A estratégia foi deliberada e, em vez de acumular um número suspeito de uma vez, a contagem foi diluída para parecer uma adoção gradual e orgânica ao longo do tempo.
O veneno escondido no código
A parte mais perigosa do ataque é também a mais silenciosa. Os criminosos não criaram um pacote que simplesmente não funciona, isso seria detectado imediatamente. Em vez disso, copiaram integralmente o código legítimo do Stripe.net e modificaram um único ponto estratégico: o método de inicialização da classe StripeClient.
Um método de inicialização (também chamado de construtor) é um bloco de código executado automaticamente toda vez que a vítima começa a usar a biblioteca. É uma etapa inevitável: qualquer desenvolvedor que integre o pacote precisará passar por ela.
Os criminosos escolheram exatamente esse ponto para inserir o código malicioso, garantindo que ele seria sempre executado.
O que o código faz é capturar o token de API da vítima. Um token de API funciona como uma senha especial que autoriza o sistema do desenvolvedor a se comunicar com a conta Stripe dele.
Quem tiver esse token pode operar a conta como se fosse o próprio dono, incluindo acessar dados de clientes, consultar transações e potencialmente manipular pagamentos.
Exfiltração via Supabase
Após capturar o token, o código malicioso o envia para os criminosos. Esse processo é chamado de exfiltração, o envio de dados roubados para fora do ambiente da vítima. Para isso, os atacantes usaram o Supabase, uma plataforma legítima de desenvolvimento que oferece banco de dados gratuito gerenciado.
Ao usar um serviço reconhecido, os criminosos dificultam a detecção: o tráfego de rede da máquina da vítima parece uma comunicação normal com uma plataforma confiável. Junto com o token, o código também envia um identificador da máquina, derivado do nome do computador, permitindo rastrear de onde cada credencial foi roubada.
Do ponto de vista do desenvolvedor que instalou o pacote falso, absolutamente nada pareceria de errado. O sistema compilaria normalmente, os pagamentos seriam processados corretamente, nenhuma mensagem de erro apareceria. Enquanto isso, as credenciais estariam sendo copiadas silenciosamente em segundo plano.
Nenhuma vítima real, mas o alerta permanece
O pacote foi publicado por volta de 16 de fevereiro. A ReversingLabs o identificou pouco depois e notificou a equipe de administração do NuGet, que o removeu rapidamente.
Ao acessar o banco de dados Supabase dos criminosos usando a própria chave de API encontrada no código malicioso, os pesquisadores confirmaram que o banco estava vazio, apenas uma entrada de teste. Os 180 mil downloads iniciais eram todos artificiais, e nenhum desenvolvedor real teve credenciais comprometidas neste episódio.
O ataque faz parte de uma categoria chamada supply chain attack (ataque à cadeia de suprimentos de software), em vez de atacar o sistema final diretamente, os criminosos envenenaram um dos ingredientes usados para construí-lo, uma biblioteca de terceiros.
E o problema não se limita ao NuGet. O surto recente de malware Shai-hulud no npm, repositório equivalente para desenvolvedores JavaScript, mostrou que pacotes legítimos também podem ser comprometidos, carregando código malicioso para dentro de pipelines de desenvolvimento sem que ninguém perceba.
O número alto de downloads, portanto, não é garantia alguma de que um pacote é seguro ou legítimo.
Como se proteger
É possível tomar algumas medidas de precaução para não cair nesse tipo de golpe. Entre as práticas recomendadas pela ReversingLabs incluem:
Verificar o nome exato do pacote antes de instalar, conferindo autor e página oficial;Checar o perfil do publicador: pacotes legítimos de grandes empresas costumam ter perfis verificados, com logotipos — e não a foto padrão do repositório;Usar ferramentas de análise como o Spectra Assure Community, que permitem escanear pacotes em busca de malware antes da instalação;Manter um inventário das dependências do projeto e revisar regularmente;Desconfiar de pacotes novos com contagens de download muito altas mas histórico de publicação recente.
Para ficar por dentro de notícias de cibersegurança e aprender a se proteger de golpes, acompanhe o TecMundo nas redes sociais e YouTube, e se inscreva em nossa newsletter.