Se descubren paquetes maliciosos que suplantan nombres en el índice de paquetes de Python
Hayley Denbraver
5 de diciembre de 2019
0 minutos de lecturaEsta semana se eliminaron dos paquetes maliciosos del índice de paquetes de Python (PyPI). Estos paquetes, jeIlyfish (una falta de ortografía del paquete jellyfish que solo se nota con ciertas fuentes) y python3-dateutil (que se hacía pasar por el popular paquete dateutil), aprovecharon una técnica llamada «typosquatting». El typosquatting ocurre cuando se publica un paquete malicioso con un nombre similar al de un paquete común, con el fin de lograr que los usuarios descarguen la versión maliciosa.
En esta publicación resumiremos lo que se sabe sobre los paquetes, detallaremos los aspectos positivos y negativos de la situación, y compartiremos lecciones relevantes relacionadas con este incidente. También puedes encontrar más información en nuestra base de datos de vulnerabilidades aquí y aquí.
Lo que se sabe
El exploit forma parte del paquete jeilyfish. El paquete python3-dateutil incluye la biblioteca jeilyfish como dependencia transitiva. Actualmente no se comprende por completo el exploit, pero parece robar claves SSH y GPG de las máquinas infectadas y enviarlas a un servidor remoto. Ambos paquetes se eliminaron de PyPI.
Malas noticias
La biblioteca
jeilyfishlleva casi un año en PyPI.Como no se comprende por completo la naturaleza del exploit, es difícil calcular el impacto en quienes lo descargaron.
Ambos paquetes maliciosos incluían todas las funciones de los paquetes que suplantaban, por lo que era fácil aceptarlos como auténticos.
El typosquatting ha sido un problema para muchos administradores de paquetes, no solo para PyPI, y es probable que siga siéndolo.
Buenas noticias
La cantidad de descargas de las bibliotecas es relativamente baja; quizá unos cientos de personas se hayan visto comprometidas.
El paquete
python3-dateutilllevaba solo un par de días en PyPI.Ambas bibliotecas maliciosas se eliminaron.
Es fácil revisar si tu proyecto presenta alguna de estas vulnerabilidades. Snyk es gratis y puede indicarte si tu proyecto está comprometido.
Lecciones para el futuro
Ten siempre cuidado al descargar paquetes, revisa bien la ortografía y nunca adivines el nombre de un paquete.
El typosquatting puede introducir paquetes maliciosos mediante dependencias indirectas, que pueden ser difíciles de detectar.
Vigila el árbol de dependencias. Es importante saber qué usas para poder detectar problemas cuando surjan.
Los paquetes maliciosos en repositorios populares de código abierto son cada vez más comunes. Si crees haber encontrado un posible paquete malicioso, puedes reportarlo a Snyk a través de nuestra política de divulgación de paquetes de código abierto.
¡Empieza a proteger tus paquetes de código abierto con Snyk!
Empieza con los desafíos de Capture the Flag
Aprende a resolver desafíos de captura la bandera con nuestro taller virtual introductorio a pedido.