Volver a actualizaciones
Nuevo releaseAug 30, 2026

pmg v0.27.0

PMG protege a desarrolladores y agentes de IA de paquetes de código abierto maliciosos utilizando proxy, sandbox y el feed de inteligencia de amenazas de SafeDep.

Compartir

Package Manager Guard (PMG)

Bloquea paquetes npm y pip maliciosos antes de que se instalen.
Defensa en profundidad para los gestores de paquetes que ya usas.

safedep%2Fpmg | Trendshift

pmg en acción

Docs Website Discord Featured in tl;dr sec

Go Report Card License Release OpenSSF Scorecard CodeQL

¿Por qué PMG?

Los desarrolladores y los agentes de codificación con IA instalan paquetes todos los días. Cada npm install o pip install ejecuta miles de líneas de código que nadie revisa.

Compromisos recientes en ecosistemas populares:

  • Mini Shai-Hulud - Más de 300 paquetes populares comprometidos
  • litellm 1.82.8 - Una popular librería proxy de IA comprometida para exfiltrar credenciales
  • telnyx 4.87.2 - Un SDK de telecomunicaciones legítimo secuestrado en PyPI
  • pino-sdk-v2 - Un paquete typosquat disfrazado como el popular logger pino

PMG es gratuito, de código abierto (Apache 2.0) y no requiere cuenta ni clave API. Intercepta cada instalación de paquetes y la verifica contra la API comunitaria gratuita de SafeDep para detectar malware conocido antes de que el código se ejecute. Instálalo una vez y cubrirá cada npm install, pip install y poetry add posterior.

Cómo Funciona PMG

PMG adopta un enfoque de defensa en profundidad. Configuración cero, funciona en Zsh, Bash y Fish, y cada instalación pasa por las capas de protección habilitadas antes de que el código se ejecute, más un registro de auditoría después.

Defensa en profundidad de PMG: comando de instalación interceptado por PMG, pasado por la Capa 1 de Inteligencia de Amenazas, Capa 2 de Enfriamiento, Capa 3 de Sandbox, luego ejecutado con una entrada de registro de auditoría
Detalles de las capas
  • Intercepción Transparente - PMG envuelve npm, pip y otros gestores de paquetes. Los desarrolladores y los agentes de IA usan los mismos comandos. Sin cambios en el flujo de trabajo.
  • Capa 1: Inteligencia de Amenazas - PMG verifica cada paquete contra la inteligencia de amenazas en tiempo real de SafeDep antes de la instalación. Los paquetes conocidos como maliciosos se bloquean. Sin clave, sin inicio de sesión requerido.
  • Capa 2: Política (Enfriamiento de Dependencias) - PMG bloquea versiones de paquetes publicadas dentro de una ventana de enfriamiento configurable, de modo que las versiones recientemente comprometidas se omiten durante la ventana.
  • Capa 3: Sandbox Opcional - Cuando el sandboxing está habilitado y configurado, PMG ejecuta las instalaciones dentro de sandboxes nativos del sistema operativo (Seatbelt en macOS, Landlock en Linux por defecto, o Bubblewrap como respaldo) para que los scripts de instalación tengan acceso restringido al sistema incluso si una amenaza pasa las dos primeras capas.
  • Registro de Auditoría - PMG registra cada instalación (qué, cuándo, desde dónde) para un rastro de auditoría verificable.

Cómo se Compara PMG

PMG es el único firewall de paquetes en tiempo de instalación gratuito y de código abierto que cubre tanto a desarrolladores como a agentes de IA y que incluye sandboxing y enfriamiento de serie.

CapacidadPMGSocketsafe-chainSnykDependabot
OSS / construido en público
Sin cuenta ni clave API
Bloqueo de paquetes maliciosos en instalación
Política de enfriamiento de dependencias
Sandboxing en tiempo de ejecución
Protege agentes de codificación con IA de forma transparente
Registros de auditoría locales
PRs de remediación de CVE conocidos

Inicio Rápido

1. Instalación

curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh

Consulta Instalación para Homebrew, npm y otros métodos de instalación.

2. Configuración

Conecta PMG a tu shell para que intercepte los gestores de paquetes.

pmg setup install
# Reinicia tu terminal para aplicar los cambios

Consejo: Vuelve a ejecutar pmg setup install después de actualizar PMG para recoger nuevas opciones de configuración.

Linux para todos los usuarios / imágenes doradas: sudo pmg setup install --system — consulta docs/system-install.md.

Valida tu instalación y verifica que la protección funciona:

pmg setup doctor

Opcional: PMG inspecciona el tráfico HTTPS con una CA generada al vuelo que inyecta en los gestores de paquetes en cada ejecución. Para persistir una única CA entre ejecuciones y confiarla en el almacén de confianza de tu sistema operativo (necesario para herramientas que ignoran las variables de entorno de CA, como Go en macOS y Windows), instálala una vez:

pmg setup cert install          # ámbito de usuario, sin sudo
pmg setup cert status           # comprueba el estado de confianza y la caducidad

Consulta Autoridad de Certificación para ámbitos, rotación y eliminación.

3. Uso

Observa a PMG bloqueando amenazas.

npm install --no-cache --prefer-online [email protected]

Nota: safedep-test-pkg es un paquete de prueba benigno marcado como malicioso en la base de datos de SafeDep con fines de prueba y verificación.

Continúa usando tus gestores de paquetes como siempre, o deja que tu agente de codificación con IA los ejecute. PMG se sitúa en la ruta, bloqueando paquetes maliciosos.

npm install express
# o
pip install requests

Gestores de Paquetes Soportados

PMG soporta las herramientas que ya usas:

EcosistemaHerramientasEjemplo de Comando
Node.jsnpmnpm install <pkg>
pnpmpnpm add <pkg>
yarnyarn add <pkg>
bunbun add <pkg>
npxnpx <pkg>
pnpxpnpx <pkg>
Pythonpippip install <pkg>
pipxpipx run <pkg>
poetrypoetry add <pkg>
uvuv add <pkg>
uvxuvx <pkg>

Instalación

Script de Instalación (MacOS/Linux)

Descarga la última versión desde GitHub, verifica su checksum SHA-256 e instala en $HOME/.local/bin (si está en PATH) o /usr/local/bin.

curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Homebrew (MacOS/Linux)
brew tap safedep/tap
brew install safedep/tap/pmg
NPM (Multiplataforma)
npm install -g @safedep/pmg

Nota: Las instalaciones basadas en NPM pueden ser frágiles cuando Node.js está gestionado por gestores de versiones como mise o asdf. La ruta global del binario npm cambia con la versión activa de Node, por lo que cambiar de versión puede dejar pmg no disponible en PATH (o apuntando a una instalación antigua). Para estas configuraciones, prefiere el script de instalación o Homebrew.

Go (Compilar desde el Código Fuente)
# Asegúrate de que $(go env GOPATH)/bin esté en tu $PATH
go install github.com/safedep/pmg@latest
Descarga de Binarios

Descarga el último binario para tu plataforma desde la Página de Versiones.

Imagen de Contenedor (GHCR)

Imágenes multi-arquitectura precompiladas (linux/amd64, linux/arm64) se publican en el Registro de Contenedores de GitHub en cada versión. El entrypoint de la imagen es pmg.

# Descarga la última imagen (o fija una etiqueta de versión, p. ej. :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest

# Ejecuta cualquier comando de pmg
docker run --rm ghcr.io/safedep/pmg:latest version

GitHub Actions

Protege los flujos de trabajo de CI con un solo paso. PMG analiza cada npm install, pip install, etc. en el trabajo.

- uses: safedep/pmg@v1
  with:
    server-mode: true

# interceptado vía HTTP_PROXY automáticamente
- run: npm ci

- name: Aplicar política de PMG
  if: always()
  run: pmg proxy stop --fail-on-violation   # detiene el daemon, falla el trabajo en un bloqueo

Por defecto obtienes bloqueo de malware y enfriamiento de dependencias. El aislamiento con sandbox es opcional mediante la entrada sandbox. Ajusta el comportamiento mediante entradas (paranoid, sandbox, cooldown-days, ...) o apunta config-file a un YAML en el repositorio. Consulta docs/github-action.md para la referencia completa.

Desinstalación

Elimina la integración con el shell:

pmg setup remove

Para eliminar también el archivo de configuración de PMG:

pmg setup remove --config-file

Luego desinstala PMG en sí:

# Homebrew
brew uninstall safedep/tap/pmg

# NPM
npm uninstall -g @safedep/pmg

Confianza y Seguridad

Las compilaciones de PMG son reproducibles y están firmadas.

  • Atestaciones: Las atestaciones de GitHub y npm garantizan la integridad de los artefactos.
  • Verificación: Puedes demostrar criptográficamente que el binario coincide con el código fuente.
  • Consulta Confiar en PMG para los pasos de verificación.

Guía de Usuario

Soporte

Si PMG te salvó de un paquete malo, dale una estrella a este repositorio. Ayuda a otros a encontrarlo.

Contribuciones

Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md para instrucciones de compilación y pruebas.

Gracias a todos los contribuyentes ❤️

Contribuyentes a PMG

Telemetría

PMG recopila datos de uso anónimos. Para deshabilitarlo, o bien:

  • Establece disable_telemetry: true en tu archivo de configuración de PMG, o
  • Exporta PMG_DISABLE_TELEMETRY=true.

Categorías