Bienvenido al blog de Undercode   Click to listen highlighted text! Bienvenido al blog de Undercode
Inicio Noticias Detectan paquetes maliciosos en npm y PyPI que roban credenciales

Detectan paquetes maliciosos en npm y PyPI que roban credenciales

por Dragora

La cadena de suministro de software vuelve a estar en el punto de mira de los ciberdelincuentes. Investigadores de seguridad han identificado una nueva campaña maliciosa en los repositorios Node Package Manager (npm) y Python Package Index (PyPI), donde al menos 17 paquetes falsos fueron publicados con el objetivo de hacerse pasar por kits de desarrollo de software (SDK) de las populares plataformas de pago Paysafe, Skrill y Neteller.

El propósito de estos paquetes no era ofrecer funcionalidades legítimas para integrar servicios de pago, sino robar credenciales, claves API, tokens de autenticación y otra información confidencial de los equipos donde eran instalados. La campaña demuestra una vez más cómo los atacantes están enfocando sus esfuerzos en comprometer a los desarrolladores de software, un objetivo estratégico dentro de los ataques contra la cadena de suministro (Software Supply Chain Attacks).

Según un informe publicado por la empresa especializada en seguridad de aplicaciones Socket, los paquetes maliciosos fueron diseñados para parecer completamente legítimos, exponiendo incluso las interfaces de programación (API) esperadas por los desarrolladores, mientras ejecutaban de forma silenciosa rutinas de exfiltración de datos hacia servidores controlados por los atacantes alojados en Amazon Web Services (AWS).

Los desarrolladores de plataformas de pago eran el principal objetivo

Las plataformas Paysafe, Skrill y Neteller son ampliamente utilizadas en el sector financiero y del comercio electrónico.

Paysafe proporciona soluciones de procesamiento de pagos utilizadas por:

  • Plataformas de comercio electrónico.
  • Marketplaces.
  • Empresas de viajes.
  • Plataformas de videojuegos.
  • Proveedores de Software como Servicio (SaaS).
  • Empresas del sector financiero.

Por su parte, Skrill y Neteller son conocidas carteras digitales empleadas para realizar pagos internacionales y transferencias de dinero, siendo especialmente populares en:

  • Casas de apuestas online.
  • Plataformas de trading Forex.
  • Exchanges de criptomonedas.
  • Servicios financieros digitales.

Los desarrolladores que integran estas soluciones suelen utilizar SDK oficiales para conectar sus aplicaciones con los servicios de pago, convirtiéndose en un objetivo altamente atractivo para los actores de amenazas.

Los 17 paquetes maliciosos detectados

Los investigadores identificaron un total de 17 paquetes falsos distribuidos entre npm y PyPI.

Paquetes publicados en npm

  • PaySafe-Checkout
  • Paysafe-Vault
  • Neteller
  • Skrill-payments
  • paysafe-JS
  • PaySafe-API
  • secure-node
  • Paysafe-Cards
  • PaySafe-Fraud
  • PaySafe-KYC
  • Skrill
  • Skrill-SDK
  • PaySafe-payments

Paquetes publicados en PyPI

  • paysafe-kyc
  • paysafe-payments
  • paysafe-sdk
  • paysafe-api

En el caso de npm, los atacantes publicaron cuatro versiones maliciosas comprendidas entre la 1.0.0 y la 1.0.3.

Los paquetes alojados en PyPI únicamente distribuyeron la versión 1.0.0.

Lógica de robo de datos en npm (izquierda) y en PyPI (derecha)Función de robo de datos en npm (izquierda) y en PyPI (derecha)
Fuente: Socket

Simulaban SDK completamente funcionales

Una de las características más sofisticadas de la campaña consiste en que los paquetes maliciosos imitaban fielmente el comportamiento esperado de un SDK legítimo.

Los desarrolladores que los instalaban encontraban las funciones habituales y podían invocar sus métodos sin observar errores inmediatos.

Sin embargo, en lugar de comunicarse con los servicios reales de Paysafe, los paquetes simplemente devolvían respuestas de éxito simuladas.

Este comportamiento tenía un doble objetivo:

  • Evitar levantar sospechas durante las pruebas iniciales.
  • Mantener activo el código malicioso encargado del robo de información.

Esta técnica incrementa considerablemente las probabilidades de que el paquete permanezca instalado durante más tiempo dentro de proyectos reales.

Robo masivo de credenciales y secretos

El verdadero propósito del malware era localizar información sensible almacenada en el entorno del desarrollador.

Entre los datos buscados destacan:

  • Claves API de Paysafe.
  • Credenciales de Amazon Web Services (AWS).
  • Tokens de GitHub.
  • Tokens de npm.
  • Variables de entorno.
  • Nombre del equipo.
  • Nombre del usuario.
  • Metadatos relacionados con el uso de la API.

Toda esta información era enviada automáticamente al servidor de mando y control controlado por los atacantes.

La obtención de estas credenciales permitiría posteriormente comprometer repositorios de código, servicios en la nube y sistemas de integración continua utilizados por organizaciones de todo el mundo.

Diferencias entre los paquetes npm y PyPI

Aunque ambos conjuntos de paquetes perseguían el mismo objetivo, Socket identificó diferencias importantes en su funcionamiento.

Paquetes npm

En los paquetes distribuidos mediante npm, la rutina de robo únicamente se activaba cuando:

  • El SDK falso era ejecutado.
  • Existía una clave API válida de Paysafe dentro del entorno.

Esta comprobación permitía reducir el ruido y centrar el robo únicamente en desarrolladores que realmente trabajaban con la plataforma.

Paquetes PyPI

Los paquetes distribuidos mediante PyPI eran considerablemente más agresivos.

La exfiltración comenzaba automáticamente durante la inicialización del paquete.

Además, no requerían la presencia de ninguna clave API de Paysafe para iniciar el robo de información.

Esto ampliaba significativamente el número potencial de víctimas.

El malware incorpora funciones antianálisis

Aunque no se trata de técnicas especialmente avanzadas, el malware también incluye mecanismos destinados a dificultar el análisis por parte de investigadores.

Entre las verificaciones realizadas destacan:

  • Comprobación del número de núcleos del procesador.
  • Detección de nombres de usuario asociados a máquinas virtuales.
  • Identificación de nombres de host utilizados habitualmente en laboratorios de análisis.

Si detectaba un entorno sospechoso o con menos de dos núcleos de CPU, el código malicioso interrumpía su ejecución.

Estas técnicas básicas permiten evitar parte de los análisis automáticos realizados por plataformas de sandbox.

Una campaña preparada por un actor técnicamente competente

Socket afirma que todavía no ha sido posible atribuir con certeza la campaña a un grupo específico.

No obstante, diversos indicadores apuntan a un atacante con conocimientos avanzados sobre el funcionamiento tanto de npm como de PyPI.

Uno de los aspectos que más preocupa a los investigadores es la capacidad demostrada para operar simultáneamente en múltiples ecosistemas de desarrollo.

Esta estrategia dificulta considerablemente la defensa, especialmente para organizaciones que supervisan únicamente uno de los repositorios utilizados por sus desarrolladores.

Además, la campaña demuestra un conocimiento profundo del funcionamiento de los SDK empresariales y de las credenciales que poseen mayor valor para futuros ataques.

Riesgos para la cadena de suministro del software

El caso vuelve a poner de manifiesto la creciente amenaza que representan los ataques contra la cadena de suministro del software.

En lugar de atacar directamente a las empresas, los ciberdelincuentes buscan comprometer herramientas utilizadas por miles de desarrolladores.

Cuando un paquete malicioso logra introducirse dentro de un proyecto empresarial puede facilitar:

  • Robo de secretos corporativos.
  • Compromiso de repositorios Git.
  • Acceso a plataformas cloud.
  • Manipulación de procesos CI/CD.
  • Distribución de software comprometido.
  • Escalada hacia ataques de mayor alcance.

Este tipo de campañas se ha convertido en una de las principales preocupaciones para equipos DevSecOps y responsables de seguridad del desarrollo.

Qué deben hacer los desarrolladores si instalaron alguno de estos paquetes

Socket recomienda actuar inmediatamente si cualquiera de los paquetes identificados fue instalado o ejecutado.

Las principales acciones recomendadas incluyen:

  • Rotar todas las credenciales presentes en el sistema afectado.
  • Cambiar claves API de Paysafe.
  • Regenerar credenciales AWS.
  • Revocar tokens de GitHub.
  • Invalidar tokens npm.
  • Revisar los árboles completos de dependencias.
  • Bloquear los nombres de los paquetes maliciosos mediante políticas internas o proxies corporativos.

Asimismo, resulta aconsejable revisar los registros de los sistemas de Integración Continua (CI) en busca del uso de la variable PAYSAFE_API_KEY junto con cualquiera de los nombres de paquetes involucrados en la campaña.

La seguridad del desarrollo requiere una vigilancia constante

La aparición de estos paquetes maliciosos en npm y PyPI confirma que los repositorios públicos continúan siendo uno de los principales objetivos de los atacantes que buscan comprometer la cadena de suministro del software. Al suplantar SDK de plataformas de pago ampliamente utilizadas como Paysafe, Skrill y Neteller, los ciberdelincuentes apuntan directamente a los desarrolladores y a las credenciales con mayor valor para futuras intrusiones.

Para reducir el riesgo, las organizaciones deben complementar las buenas prácticas de desarrollo con controles de seguridad específicos, como el análisis continuo de dependencias, la verificación de la autenticidad de los paquetes, la monitorización de secretos expuestos y la adopción de soluciones de Software Composition Analysis (SCA). En un entorno donde un único paquete comprometido puede afectar a miles de proyectos, reforzar la seguridad del ecosistema de desarrollo se ha convertido en una prioridad estratégica para cualquier empresa que utilice software de código abierto.

Fuente: Bleeping Computer

You may also like

Dejar Comentario

Click to listen highlighted text!