El problema masivo de paquetes spam en npm
- El equipo de investigación de Phylum descubrió un fuerte aumento de paquetes spam relacionados con el protocolo Tea en npm
- El protocolo Tea es un sistema que recompensa con criptomonedas las contribuciones al código abierto, lo que incentiva a los desarrolladores a exagerar sus aportes
- Se estima que alrededor del 25% de los paquetes publicados en npm durante el segundo trimestre de 2024 eran paquetes spam relacionados con el protocolo Tea
Resumen breve
- El protocolo Tea usa un algoritmo que incentiva a los desarrolladores a exagerar sus contribuciones
- npm está sufriendo una contaminación grave por estos paquetes spam
- Las características de los paquetes spam incluyen nombres de paquete generados aleatoriamente, listas de dependencias sospechosas y el archivo
tea.yaml
Una nueva perspectiva
- Desde inicios de 2024, la cantidad de paquetes publicados en npm se disparó
- El 8 de abril de 2024 se publicaron más de 48,000 paquetes en un solo día
- Se estima que entre el 21.25% y el 25.5% de los paquetes npm publicados durante Q2 eran spam
- Si se limita el análisis a paquetes nuevos, la proporción de spam aumenta de 68.66% a 74.67%
¿Hay una amenaza?
- Hasta ahora no hay evidencia de que estos paquetes spam incluyan ataques maliciosos
- Sin embargo, este spam contamina el ecosistema de código abierto y puede distorsionar los datos de entrenamiento de modelos de IA
- Además, crea un entorno donde los paquetes realmente maliciosos pueden ocultarse
Pensar desde la perspectiva del adversario
- Tomando como ejemplo el paquete
sournoise, el sitio web de npm muestra que este paquete depende de axios, pero en realidad depende de paquetes spam
- Esto es un efecto secundario de la forma en que npm procesa las dependencias y las muestra a los usuarios
- Debido a las dependencias transitivas, pueden incluirse paquetes que el desarrollador no quería o no esperaba
Conclusión
- La contaminación del ecosistema de software de código abierto es un problema para todos
- El proyecto del protocolo Tea está tomando medidas para resolver este problema
- npm también está eliminando algunos paquetes spam, pero no logra seguir el ritmo de nuevas publicaciones
- Este problema no se limita a npm; también se encontraron paquetes spam similares en Rubygems
- Phylum está investigando activamente esta área y buscará nuevas formas de detectar este spam a medida que estos actores adapten sus tácticas
Resumen de GN⁺
- El sistema de recompensas del protocolo Tea incentiva a los desarrolladores a exagerar sus contribuciones
- La intención del proyecto para la sostenibilidad del código abierto quizá era buena, pero parece que pasó por alto sus efectos secundarios y casos de abuso. Hace falta un diseño cuidadoso y monitoreo continuo del sistema de medición de contribuciones y de recompensas
- Esta avalancha masiva de paquetes spam puede ir más allá del problema de seguridad de paquetes individuales y amenazar la confiabilidad y la salud de todo el ecosistema de código abierto. Para una solución de fondo, parece necesario un enfoque y colaboración a nivel de ecosistema
- Es especialmente preocupante que puedan surgir problemas de sesgo si esto se usa como datos de entrenamiento para modelos de IA. Urge establecer lineamientos para el control y la validación de la calidad de los datos
- La posibilidad de instalar paquetes inesperados a través de dependencias transitivas es suficiente para alertar a los desarrolladores. Esto sugiere que, además de herramientas automatizadas de gestión de dependencias, la atención y revisión del desarrollador siguen siendo importantes al elegir paquetes
- A largo plazo, parece necesario explorar alternativas más transparentes y verificables, como registros de paquetes o sistemas de reputación basados en blockchain
1 comentarios
Opinión de Hacker News
La forma en que npm maneja las dependencias de paquetes es el problema
package.jsonsolo tiene la clave, se considera una dependencia sin importar el paquete realEs necesario eliminar todos los paquetes que usan
tea.yamlLas cuentas de spam deben bloquearse y eliminarse de forma permanente
Es posible que los modelos de IA se distorsionen por culpa de los paquetes spam
El modelo de incentivos del protocolo Tea es el problema
Resumen:
package.jsonEl objetivo del protocolo Tea es fortalecer la economía del software de código abierto
Hay casos de proyectos populares copiados y publicados en npm con nombres aleatorios en latín
Hubo un proyecto similar a Tea
Los administradores de paquetes tienen un sistema de calificaciones