Una reciente campaña maliciosa ha sido detectada dentro del ecosistema de NPM, donde tres paquetes fraudulentos simulan ser bibliotecas relacionadas con la API de bots de Telegram para Node.js. Estos módulos, que aún permanecen disponibles para su descarga, contienen código que permite la instalación de claves SSH en sistemas Linux, abriendo la puerta a accesos remotos no autorizados.
Módulos comprometidos y suplantación de identidad
Los paquetes fueron diseñados para imitar a una biblioteca legítima y ampliamente utilizada, lo que les permitió pasar inadvertidos en el repositorio público. A pesar de tener un número de descargas relativamente bajo, su presencia representa una amenaza considerable, ya que una sola instalación en un entorno sensible puede comprometer completamente el sistema.
- node-telegram-utils (132 descargas)
- node-telegram-bots-api (82 descargas)
- node-telegram-util (73 descargas)
Estas bibliotecas replican descripciones legítimas y emplean una técnica conocida como starjacking, la cual consiste en vincularse con el repositorio GitHub original del paquete legítimo. Este método busca generar una falsa percepción de confianza, elevando artificialmente la reputación del paquete malicioso ante los ojos de los desarrolladores.
Técnicas de persistencia y recolección de información
Al ser instalados, los paquetes ejecutan scripts diseñados exclusivamente para sistemas Linux. Estos scripts agregan claves SSH al archivo ~/.ssh/authorized_keys, lo que garantiza acceso persistente al servidor, incluso si la biblioteca es posteriormente eliminada del entorno. Además, se recopila información sensible como el nombre de usuario del sistema y la dirección IP externa, la cual es enviada a servidores remotos que actúan como centros de control.
Los atacantes también monitorean si el sistema ha sido infectado, utilizando dominios externos que sirven como indicadores de compromiso. Este comportamiento subraya una estrategia deliberada orientada al control remoto y a la exfiltración de datos sin el conocimiento del usuario.
Recomendaciones
- Verifica siempre la fuente de los paquetes antes de instalarlos: Asegúrate de que provengan de desarrolladores conocidos y que estén vinculados correctamente a sus repositorios oficiales.
- Revisa el código y las dependencias: Especialmente en paquetes nuevos o poco conocidos, analiza los scripts de instalación y el comportamiento en tiempo de ejecución.
- Limita los permisos del entorno de desarrollo: Evita ejecutar npm con privilegios elevados y restringe el acceso a archivos sensibles como .ssh/authorized_keys.
- Monitorea actividad sospechosa: Implementa herramientas que detecten conexiones remotas no autorizadas, inserciones de claves SSH y llamadas a dominios externos.
- Actualiza tu inventario de paquetes: Realiza auditorías periódicas para identificar bibliotecas potencialmente peligrosas o descontinuadas.
- Elimina correctamente paquetes maliciosos: Asegúrate de revocar manualmente las claves SSH y limpiar cualquier rastro persistente que puedan haber dejado tras su eliminación.