6 pontos por GN⁺ 2024-08-09 | 1 comentários | Compartilhar no WhatsApp

O grande problema dos pacotes de spam no npm

  • A equipe de pesquisa da Phylum descobriu um aumento repentino de pacotes de spam no npm relacionados ao protocolo Tea
  • O protocolo Tea é um sistema que recompensa contribuições para open source com criptomoeda, incentivando desenvolvedores a inflarem suas contribuições
  • No 2º trimestre de 2024, estima-se que cerca de 25% dos pacotes publicados no npm eram pacotes de spam relacionados ao protocolo Tea

Resumo rápido

  • O protocolo Tea usa um algoritmo que incentiva desenvolvedores a exagerarem suas contribuições
  • O npm está sofrendo uma contaminação grave por causa desses pacotes de spam
  • As características dos pacotes de spam incluem nomes de pacote gerados aleatoriamente, listas suspeitas de dependências e o arquivo tea.yaml

Uma nova perspectiva

  • Desde o início de 2024, o número de pacotes publicados no npm disparou
  • Em 8 de abril de 2024, mais de 48.000 pacotes foram publicados em um único dia
  • Durante o Q2, estima-se que entre 21,25% e 25,5% dos pacotes npm publicados eram spam
  • Ao restringir a análise a pacotes novos, a proporção de spam sobe para entre 68,66% e 74,67%

Existe ameaça?

  • Até o momento, não há evidências de que esses pacotes de spam incluam ataques maliciosos
  • No entanto, esse spam contamina o ecossistema open source e pode distorcer os dados de treinamento de modelos de IA
  • Além disso, cria um ambiente no qual pacotes realmente maliciosos podem se esconder

Pensando do ponto de vista do adversário

  • Usando o pacote sournoise como exemplo, o site do npm mostra que esse pacote depende de axios, mas na prática ele depende de pacotes de spam
  • Isso é um efeito colateral da forma como o npm processa dependências e as exibe aos usuários
  • Por causa de dependências transitivas, pacotes que o desenvolvedor não queria ou não esperava podem acabar sendo incluídos

Conclusão

  • A contaminação do ecossistema de software open source é um problema para todos
  • O projeto do protocolo Tea está tomando medidas para resolver esse problema
  • O npm também está removendo alguns pacotes de spam, mas não consegue acompanhar o ritmo de novas publicações
  • Esse problema não se limita ao npm; pacotes de spam semelhantes também foram encontrados no Rubygems
  • A Phylum está pesquisando ativamente essa área e buscará novas formas de detectar esse spam à medida que esses agentes adaptarem suas táticas

Resumo do GN⁺

  • O sistema de recompensas do protocolo Tea incentiva desenvolvedores a inflarem suas contribuições
  • A intenção do projeto voltado à sustentabilidade do open source pode ter sido boa, mas parece ter ignorado efeitos colaterais e casos de abuso decorrentes disso. Um desenho cuidadoso das formas de medir contribuição e do sistema de recompensas, além de monitoramento contínuo, parece necessário
  • Essa inundação em larga escala de pacotes de spam pode ameaçar não apenas a segurança de pacotes individuais, mas também a confiabilidade e a saúde de todo o ecossistema open source. Para uma solução fundamental, parece ser necessária uma abordagem e colaboração em nível de ecossistema
  • O fato de isso poder causar problemas de viés caso seja usado como dado de treinamento para modelos de IA é especialmente preocupante. A criação urgente de diretrizes para controle e validação da qualidade dos dados parece necessária
  • A possibilidade de instalação inesperada de pacotes por meio de dependências transitivas é suficiente para servir de alerta aos desenvolvedores. Isso sugere que, junto com a necessidade de ferramentas automatizadas de gerenciamento de dependências, a atenção e a revisão por parte do desenvolvedor continuam sendo importantes na escolha de pacotes
  • Em uma perspectiva de longo prazo, parece valer a pena buscar alternativas mais transparentes e verificáveis, como registries de pacotes ou sistemas de reputação baseados em blockchain

1 comentários

 
GN⁺ 2024-08-09
Opinião do Hacker News
  • A forma como o npm lida com dependências de pacotes é o problema

    • Se houver apenas a chave no package.json, isso é considerado uma dependência independentemente do pacote real
    • Isso torna o ecossistema de dependências mais vulnerável
  • É necessário remover todos os pacotes que usam tea.yaml

    • O protocolo Tea está induzindo comportamentos maliciosos
    • Está prejudicando o sistema
  • Contas de spam devem ser bloqueadas permanentemente e removidas

    • Por exemplo, há uma conta com 1.781 pacotes sem sentido
    • O processo de denúncia é complexo e trabalhoso
  • Há possibilidade de modelos de IA serem distorcidos por causa de pacotes de spam

    • Aplica-se o princípio de "garbage in, garbage out"
  • O modelo de incentivos do protocolo Tea é o problema

    • Ele induz desenvolvedores a publicar spam no npm
    • Prejudica o ecossistema
  • Resumo:

    • Um plano de financiamento para desenvolvimento de OSS baseado em criptomoeda está incentivando spam
    • É fácil enganar sobre dependências por meio do package.json
  • O objetivo do protocolo Tea é fortalecer a economia de software open source

    • Porém, o modelo de incentivos está mal concebido e induz spam
    • Aplicam-se o "efeito cobra" e a "lei de Goodhart"
  • Há casos de copiar projetos populares e publicá-los no npm com nomes aleatórios em latim

    • Centenas de denúncias de spam foram enviadas
  • Já houve um projeto semelhante ao Tea

    • Recebia-se uma pequena quantia de bitcoin todo mês até o projeto fracassar e os recursos se esgotarem
  • Gerenciadores de pacotes têm um sistema de avaliação

    • É improvável que pacotes de spam afetem a IA
    • Empresas confiáveis não usam pacotes de spam