6 puntos por GN⁺ 2024-08-09 | 1 comentarios | Compartir por WhatsApp

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

 
GN⁺ 2024-08-09
Opinión de Hacker News
  • La forma en que npm maneja las dependencias de paquetes es el problema

    • Si package.json solo tiene la clave, se considera una dependencia sin importar el paquete real
    • Esto vuelve más vulnerable al ecosistema de dependencias
  • Es necesario eliminar todos los paquetes que usan tea.yaml

    • El protocolo Tea está induciendo comportamientos maliciosos
    • Está dañando el sistema
  • Las cuentas de spam deben bloquearse y eliminarse de forma permanente

    • Por ejemplo, hay una cuenta con 1781 paquetes sin sentido
    • El proceso de reporte es complicado y engorroso
  • Es posible que los modelos de IA se distorsionen por culpa de los paquetes spam

    • Se aplica el principio de "garbage in, garbage out"
  • El modelo de incentivos del protocolo Tea es el problema

    • Incentiva a los desarrolladores a subir spam a npm
    • Daña el ecosistema
  • Resumen:

    • Un plan de financiamiento para desarrollo OSS basado en criptomonedas está incentivando el spam
    • Es fácil engañar sobre dependencias mediante package.json
  • El objetivo del protocolo Tea es fortalecer la economía del software de código abierto

    • Sin embargo, su modelo de incentivos está mal diseñado y fomenta el spam
    • Se aplican el "efecto cobra" y la "ley de Goodhart"
  • Hay casos de proyectos populares copiados y publicados en npm con nombres aleatorios en latín

    • Se han enviado cientos de reportes de spam
  • Hubo un proyecto similar a Tea

    • Se recibía una pequeña cantidad de bitcoin cada mes hasta que el proyecto fracasó y se quedó sin fondos
  • Los administradores de paquetes tienen un sistema de calificaciones

    • Es poco probable que los paquetes spam afecten a la IA
    • Las empresas confiables no usan paquetes spam