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
Opinião do Hacker News
A forma como o npm lida com dependências de pacotes é o problema
package.json, isso é considerado uma dependência independentemente do pacote realÉ necessário remover todos os pacotes que usam
tea.yamlContas de spam devem ser bloqueadas permanentemente e removidas
Há possibilidade de modelos de IA serem distorcidos por causa de pacotes de spam
O modelo de incentivos do protocolo Tea é o problema
Resumo:
package.jsonO objetivo do protocolo Tea é fortalecer a economia de software open source
Há casos de copiar projetos populares e publicá-los no npm com nomes aleatórios em latim
Já houve um projeto semelhante ao Tea
Gerenciadores de pacotes têm um sistema de avaliação