Skip to main content
Blog
Blog

O ataque event-stream ao Copay ilustra os riscos de dependências

O ecossistema JavaScript sofreu um grande impacto com um ataque sofisticado ao Copay, um popular provedor de carteira de criptomoedas, em novembro de 2018. Conhecido como o ataque event-stream, esse incidente evidenciou as vulnerabilidades críticas associadas à dependência de pacotes de terceiros no desenvolvimento de software. O Copay é atualmente conhecido como Bitpay Wallet. Entendendo o ataque O event-stream, um pacote npm bastante popular, era amplamente utilizado por inúmeros projetos para gerenciar fluxos de dados de forma eficiente

Jul 29, 2024 6 min read
O ataque event-stream ao Copay — como uma única dependência npm foi sequestrada

O ecossistema JavaScript sofreu um grande impacto com um ataque sofisticado ao Copay, um popular provedor de carteira de criptomoedas, em novembro de 2018. Conhecido como o ataque event-stream, esse incidente evidenciou as vulnerabilidades críticas associadas à dependência de pacotes de terceiros no desenvolvimento de software.

O Copay é atualmente conhecido como Bitpay Wallet.

Entendendo o ataque

O event-stream, um pacote npm bastante popular, era amplamente utilizado por inúmeros projetos para gerenciar fluxos de dados de forma eficiente em aplicações Node.js. Sua funcionalidade era fundamental para desenvolvedores que lidavam com fluxos de dados complexos em aplicações em tempo real.

Neste artigo, cobrimos os vetores de ataque ocultos mais comuns e os ataques à cadeia de suprimentos com mais detalhes.

Inicialmente mantido por um desenvolvedor dedicado e de confiança, o módulo havia se tornado um componente essencial em muitos projetos de software devido à sua confiabilidade e desempenho.

Porém, como acontece com frequência na comunidade open-source, o mantenedor original do event-stream não conseguia mais dedicar tempo para gerenciar o projeto. No final de 2018, a responsabilidade pelo event-stream foi transferida para um novo mantenedor voluntário. Essa transição, embora comum em ecossistemas open-source, não passou pelas verificações de segurança rigorosas que seriam necessárias. O novo mantenedor, aparentemente um colaborador bem-intencionado, revelou-se posteriormente ter motivações maliciosas.

Logo após assumir o projeto, essa pessoa lançou várias atualizações para o event-stream. Embutida nessas atualizações havia uma nova dependência chamada flatmap-stream. Esse pacote foi criado especificamente para fazer parte da atualização do event-stream. Sem que os usuários soubessem, o flatmap-stream continha código malicioso ofuscado — uma técnica usada para ocultar sua verdadeira funcionalidade e evitar a detecção por ferramentas de segurança e revisões de código.

Saiba que o cside desofusca o código para que você tenha uma visão completa e detalhada do que está sendo carregado. Em seguida, analisamos o código completo antes que ele seja renderizado pelo navegador do seu usuário. Isso provavelmente teria detectado esse incidente.

O código malicioso dentro do flatmap-stream foi projetado para ser ativado somente quando determinadas condições fossem atendidas, especificamente no ambiente do Copay, uma aplicação de carteira de criptomoedas desenvolvida em JavaScript. Essa especificidade demonstra o caráter direcionado do ataque; os invasores tinham um conhecimento claro da arquitetura interna e das dependências do Copay.

O payload foi programado para detectar se o ambiente apresentava características do setup de desenvolvimento do Copay. Uma vez confirmado, ele executava rotinas que buscavam e extraíam chaves privadas e detalhes de carteiras de contas com quantias significativas de Bitcoin e Bitcoin Cash. Essas informações eram então transmitidas para um servidor remoto controlado pelos atacantes.

Consequências do ataque

O incidente com o event-stream é um exemplo clássico de ataque à cadeia de suprimentos do lado do cliente, em que o comprometimento de um único componente pode afetar milhares de projetos downstream.

A inserção e ativação furtiva do código malicioso fez com que ele permanecesse sem ser detectado por várias semanas. Outra característica comum dos ataques à cadeia de suprimentos.

Durante esse período, qualquer atualização da aplicação Copay incluía inadvertidamente o módulo comprometido, colocando em risco todas as instalações ativas e novas da carteira. Os usuários não tinham nenhuma consciência de que suas carteiras Copay recém-instaladas ou atualizadas estavam comprometidas.

Esse ataque não apenas resultou em perdas financeiras para esses usuários, como também causou um golpe severo na confiança depositada nos módulos open-source e no ecossistema npm como um todo.

O incidente destacou várias lições críticas:

  1. Confiança e Verificação: A necessidade de avaliar as credenciais e a confiabilidade das pessoas que recebem controle sobre projetos open-source amplamente utilizados.
  2. Visibilidade e Monitoramento: A importância de ter visibilidade sobre o comportamento de dependências de terceiros, especialmente aquelas capazes de comprometer a integridade de softwares críticos. Tudo isso o cside cobre.
  3. Resposta Rápida: A necessidade de mecanismos de resposta rápida quando uma vulnerabilidade é descoberta, para evitar danos generalizados.

Ações imediatas e resposta da comunidade

Assim que a injeção maliciosa foi descoberta, a equipe do npm agiu rapidamente para remover a versão comprometida do event-stream do registro, impedindo uma propagação ainda maior. Essa versão também foi depreciada para garantir que os desenvolvedores estivessem cientes do risco de segurança e fossem desencorajados de utilizá-la em novos projetos.

O incidente com o event-stream deixou implicações duradouras para o ecossistema npm, reforçando a importância da segurança no desenvolvimento de software e os riscos inerentes às cadeias de dependências, especialmente em projetos open-source. Ele gerou uma maior conscientização e uma abordagem mais cautelosa em relação à integração de pacotes de terceiros, contribuindo, em última análise, para um ambiente de software open-source mais seguro.

Leia aqui por que o risco da cadeia de suprimentos não termina no npm.

Previna um ataque semelhante com o cside

O incidente com o event-stream é um lembrete das vulnerabilidades inerentes às dependências de software. Essas vulnerabilidades expõem as empresas a riscos graves, incluindo roubo de dados e perdas financeiras. No cside, monitoramos, protegemos e até otimizamos seus scripts de terceiros. Oferecemos:

  • Monitoramento Avançado: Nossos sistemas de monitoramento acompanham todos os scripts e dependências de terceiros integrados aos seus projetos. Identificamos e alertamos você sobre qualquer atividade incomum ou modificação em tempo real, prevenindo possíveis brechas antes que ocorram.
  • Aprimoramentos de Segurança Automatizados: Automatizamos o processo de proteção da sua cadeia de suprimentos de software pelo lado dos ativos de terceiros. Antes que o script seja entregue a um usuário no seu site, verificamos o código completo em busca de qualquer conteúdo malicioso em nosso proxy. Se encontrarmos algo, ele não chegará ao navegador do usuário.
  • Otimizado para Velocidade: Nosso proxy faz o oposto de adicionar latência. Na maioria dos casos, conseguimos acelerar esses scripts para reduzir os tempos de carregamento.
  • Defesa Proativa: Nossa abordagem proativa vai além do monitoramento simples. Analisamos tendências e padrões nas ameaças globais de cibersegurança para aprimorar continuamente nossos mecanismos de defesa. Essa visão antecipada nos permite prever e mitigar potenciais novos vetores de ataque.
  • Facilidade de Integração: Integrar o cside aos seus sistemas existentes é incrivelmente simples. Basta adicionar nosso script como o primeiro a carregar e todos os demais estarão cobertos.

Comece a usar o cside gratuitamente.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

Monitore e Proteja Seus Scripts de Terceiros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Comece grátis, ou experimente o Business com um teste de 14 dias.

Interface do painel cside mostrando monitoramento de scripts e análises de segurança
Related Articles
Agende uma demonstração