Las firmas de seguridad Aikido, SafeDep, Socket y StepSecurity reportan que unos atacantes publicaron versiones envenenadas de paquetes de MemTensor en npm y PyPI que instalan sckit, un ladrón de credenciales de desarrolladores escrito en Go, 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 ajeno con un solo comando, y una instalación puede ejecutar código en la computadora del propio desarrollador. Por eso, los atacantes que obtienen el token de publicación de un mantenedor pueden llegar a cada equipo que instale su versión [1].
Lo que describe el reporte
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. El reporte dice que los atacantes obtuvieron los tokens de publicación al comprometer los pipelines 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 activa cuando arranca el gateway del agente o durante eventos de recuperación de memoria. En el paquete de PyPI se activa al importar 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 ligadas a servicios como npm, PyPI, GitHub, GitLab, AWS y Vault, y los envía a un servidor externo. El reporte describe el implante como un gusano capaz de propagarse a través de repositorios de GitHub y registros de paquetes [1].
Las versiones maliciosas ya se retiraron. El reporte señala 0.1.24 en npm y 2.0.33 en PyPI como las publicaciones limpias más recientes, y aconseja fijar 0.1.20 en npm y 2.0.33 en PyPI [1].
Implicaciones para usuarios de Mac
Los desarrolladores que instalaron las versiones mencionadas en una Mac están expuestos al robo de cualquier secreto guardado en las ubicaciones descritas. Según el reporte, quienes no usan estos paquetes no están afectados. Quien haya instalado una de las versiones mencionadas debe dar por expuestas las credenciales de ese equipo [1].
Recomendaciones
- Revisa los lockfiles y los paquetes instalados en busca de las versiones mencionadas y elimínalas.
- Rota todas las credenciales a las que podía llegar el equipo: tokens de npm, PyPI y GitHub, claves SSH, claves de la nube y secretos en variables de entorno.
- Revoca los tokens además de cambiar las contraseñas, ya que el reporte aconseja rotar los secretos expuestos.
- Fija las dependencias en versiones que se sabe que están limpias, como sugiere el reporte, y revisa los permisos de los pipelines de publicación de los paquetes que mantienes.
Relevancia para FireAI
FireAI no inspecciona paquetes ni elimina un implante. Los datos robados tienen que enviarse a un servidor, y un programa nuevo en Go sin regla provoca un aviso 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 hosts que necesita. Si una herramienta de compilación ya tiene una regla Permitir amplia, FireAI no preguntaría, así que esas reglas deben ser acotadas.
Limitaciones
El reporte no dice cuántos equipos instalaron las versiones envenenadas, cuánto tiempo estuvo publicada cada una ni quién está detrás de la campaña. Su descripción del comportamiento de gusano proviene del análisis de los investigadores.
Prueba FireAI, de HisnLabs gratis durante 17 días.