Instalar paquetes se ha convertido en una ruleta rusa — basta una sola dependencia para enterrar tu proyecto para siempre.

Instalar paquetes se ha convertido en una ruleta rusa — basta una sola dependencia para enterrar tu proyecto para siempre.

Cuatro paquetes con troyanos eludieron los controles y infectaron cientos de proyectos en cuestión de días.

image

Los expertos de Zscaler ThreatLabz descubrieron dos paquetes maliciosos en el repositorio PyPI que, al instalarse e importarse, despliegan en secreto el troyano de Python SilentSync —una amenaza capaz de tomar el control de los entornos de trabajo de los desarrolladores y robar datos confidenciales.

Ambos paquetes empleaban suplantación por errores tipográficos (typosquatting) — la copia intencional de nombres de bibliotecas populares con pequeñas diferencias para engañar a los desarrolladores e introducir el troyano en sus sistemas. SilentSync está diseñado para el robo de datos y el control remoto del dispositivo; puede ejecutar comandos desde un servidor de mando y control (C2), cargar y descargar archivos, capturar pantallas y extraer el contenido de navegadores. Aunque inicialmente el troyano se orienta a Windows, incluye módulos que permiten la persistencia en sistemas basados en Linux y macOS.

La actividad maliciosa se inicia al importar la biblioteca. En el caso del paquete sisaws, el troyano se hace pasar por un envoltorio para la API argentina SISA, incluyendo los módulos puco y renaper, presuntamente destinados a trabajar con identificadores personales. En realidad, al activarse la función oculta gen_token del script de evasión se ejecuta un comando curl que descarga desde Pastebin el script helper.py. Este script inicia SilentSync y lo configura para el inicio automático mediante una clave en el registro de Windows.

Una técnica similar se usa en la biblioteca secmeasure, supuestamente destinada a limpiar cadenas. Bajo las funciones sanitize_input, strip_whitespace y otras se oculta el mismo mecanismo malicioso. Algunas de estas funciones provocan errores al invocarse, con el fin de confundir en una verificación superficial.

SilentSync se comunica con un servidor de comando mediante HTTP en el puerto 5000, descifrando su dirección a partir de una cadena codificada en Base64. Envía periódicamente señales de disponibilidad, solicita instrucciones, sube archivos robados y transmite los resultados de sus operaciones. Entre las órdenes compatibles están la ejecución de comandos en la línea de comandos, la transferencia de directorios en formato comprimido, la captura de pantallas y la recopilación de datos de los navegadores Chrome, Brave, Edge y Firefox: desde logins y contraseñas hasta el historial y los datos de autocompletar. Al concluir su actividad, el troyano borra sus rastros para evitar la detección.

Desde la aparición de los paquetes maliciosos el 3 y el 4 de agosto se observaron cuatro lanzamientos distintos, lo que indica una rápida evolución de la herramienta. Esta dinámica aumenta el riesgo de infección al instalar bibliotecas externas y subraya la necesidad de realizar comprobaciones estrictas antes de integrar dependencias de terceros. Como medidas preventivas se recomienda verificar sumas de comprobación, filtrar por reputación y realizar pruebas en entornos aislados.

El caso de SilentSync es otro recordatorio de la vulnerabilidad del ecosistema del software libre y del peligro de introducir componentes maliciosos a través de las plataformas populares de distribución de código.

¿Tu Wi-Fi doméstico es una fortaleza o una casa de cartón?

Descubre cómo construir una muralla impenetrable