Las empresas de seguridad Aikido, SafeDep, Socket y StepSecurity informan de que unos atacantes publicaron en npm y PyPI versiones envenenadas de paquetes de MemTensor que instalan sckit, un ladrón de credenciales de desarrollador escrito en Go, según informó The Hacker News el 23 de septiembre. El ladrón funciona en Windows, Linux y macOS.
Contexto
Los registros de paquetes permiten a los desarrolladores instalar código de otras personas con un solo comando, y una instalación puede ejecutar código en el propio ordenador del desarrollador. Por eso, los atacantes que obtienen el token de publicación de un mantenedor pueden llegar a todos los equipos que instalan su versión [1].
Lo que describe el informe
Los paquetes afectados son @memtensor/memos-cloud-openclaw-plugin en npm, versiones 0.1.21, 0.1.23 y 0.1.25, y MemoryOS en PyPI, versión 2.0.34. La información indica que los atacantes obtuvieron los tokens de publicación comprometiendo los flujos de publicación de GitHub Actions de MemTensor y subieron versiones maliciosas entre publicaciones limpias [1].
En el plugin de npm, la carga oculta se inicia cuando arranca la pasarela del agente o durante los eventos de recuperación de memoria. En el paquete de PyPI se inicia cuando se importa el módulo. Ambos ejecutan un programa en Go enlazado estáticamente que reúne tokens de API, claves SSH, archivos de configuración de la nube y variables de entorno vinculados a servicios como npm, PyPI, GitHub, GitLab, AWS y Vault, y los envía a un servidor externo. La información describe el implante como un gusano capaz de propagarse a través de repositorios de GitHub y registros de paquetes [1].
Las versiones maliciosas se han retirado. La información cita la 0.1.24 en npm y la 2.0.33 en PyPI como las últimas versiones limpias, y aconseja fijar la 0.1.20 en npm y la 2.0.33 en PyPI [1].
Implicaciones para los usuarios de Mac
Los desarrolladores que instalaron las versiones citadas en un Mac están expuestos al robo de cualquier secreto guardado en las ubicaciones mencionadas. Quienes no usan estos paquetes no se ven afectados según la información. Cualquiera que haya instalado una de las versiones citadas debe considerar expuestas las credenciales de ese equipo [1].
Recomendaciones
- Revise los archivos de bloqueo (lockfiles) y los paquetes instalados en busca de las versiones citadas y elimínelas.
- Renueve todas las credenciales a las que pudiera acceder el equipo: tokens de npm, PyPI y GitHub, claves SSH, claves de la nube y secretos en variables de entorno.
- Revoque los tokens además de cambiar las contraseñas, ya que la información aconseja renovar los secretos expuestos.
- Fije las dependencias en versiones limpias conocidas, como sugiere la información, y revise los permisos de los flujos de publicación de los paquetes que mantenga.
Relevancia para FireAI
FireAI no inspecciona paquetes ni elimina un implante. Los datos robados tienen que enviarse a un servidor, y un programa en Go nuevo sin regla provoca una solicitud de conexión en el modo Alerta, con el destino visible en el mapa mundial. Las reglas por app permiten limitar una herramienta de compilación o un intérprete a los servidores que necesita. Si una herramienta de compilación ya tiene una regla Permitir amplia, FireAI no preguntaría, por lo que esas reglas deben ser restrictivas.
Limitaciones
La información no indica cuántos equipos instalaron las versiones envenenadas, cuánto tiempo estuvo disponible cada una ni quién está detrás de la campaña. Su descripción del comportamiento de gusano procede del análisis de los investigadores.
Pruebe FireAI, de HisnLabs gratis durante 17 días.