
pmg v0.26.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.
Guardia del Gestor de Paquetes (PMG)
Bloquea paquetes maliciosos de npm y pip antes de que se instalen.
Defensa en profundidad para los gestores de paquetes que ya usas.
¿Por qué PMG?
Los desarrolladores y agentes de codificación de IA instalan paquetes cada día. 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 biblioteca popular de proxy de IA comprometida para exfiltrar credenciales
- telnyx 4.87.2 - un SDK legítimo de telecomunicaciones secuestrado en PyPI
- pino-sdk-v2 - un paquete typosquat disfrazado del popular registrador pino
PMG es gratuito, de código abierto (Apache 2.0) y no requiere cuenta ni clave API. Intercepta cada instalación de paquete y la verifica contra la API comunitaria gratuita de SafeDep en busca de malware conocido antes de que se ejecute el código. Instálalo una vez y cubre cada npm install, pip install y poetry add a partir de entonces.
Cómo funciona PMG
PMG adopta un enfoque de defensa en profundidad. Sin configuración, funciona en Zsh, Bash y Fish, y cada instalación pasa por las capas de protección habilitadas antes de que se ejecute el código, más un registro de auditoría después.
Detalles de las capas
- Intercepción Transparente - PMG envuelve a
npm,pipy otros gestores de paquetes. Los desarrolladores y 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 maliciosos conocidos son bloqueados. Sin clave, sin inicio de sesión requerido.
- Capa 2: Política (Período de Enfriamiento de Dependencias) - PMG bloquea las versiones de paquetes publicadas dentro de una ventana de enfriamiento configurable, para que las versiones recién comprometidas se salten durante la ventana.
- Capa 3: Sandbox Optativo - Cuando el sandboxing está habilitado y configurado, PMG ejecuta las instalaciones dentro de sandboxes nativos del sistema operativo (macOS Seatbelt, Linux Landlock por defecto, o Bubblewrap como alternativa) para que los scripts de instalación tengan acceso restringido al sistema incluso si una amenaza evade 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 cortafuegos de paquetes gratuito, de código abierto y en tiempo de instalación que cubre tanto a desarrolladores como a agentes de IA y viene con sandboxing y enfriamiento integrados.
| Capacidad | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| Código abierto / construido en público | ✓ | ✗ | ✓ | ✗ | ✗ |
| Sin cuenta ni clave API | ✓ | ✓ | ✓ | ✗ | ✗ |
| Bloqueo de paquetes maliciosos en tiempo de instalación | ✓ | ✓ | ✓ | ✗ | ✗ |
| Política de enfriamiento de dependencias | ✓ | ✗ | ✓ | ✗ | ✗ |
| Sandboxing en tiempo de ejecución | ✓ | ✗ | ✗ | ✗ | ✗ |
| Protege de forma transparente a los agentes de codificación de IA | ✓ | ✗ | ✗ | ✗ | ✗ |
| 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
Ver 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 installdespués de actualizar PMG para recoger nuevas opciones de configuración.Linux todos los usuarios / imágenes golden:
sudo pmg setup install --system— ver 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 al vuelo que inyecta en los gestores de paquetes por ejecución. Para persistir una única CA entre ejecuciones y confiar en ella en el almacén de confianza del SO (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 # verificar estado de confianza y caducidadVer Autoridad de Certificación para ámbitos, rotación y eliminación.
3. Uso
Ve cómo PMG bloquea amenazas.
npm install --no-cache --prefer-online [email protected]
Nota:
safedep-test-pkges 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 de costumbre, o deja que tu agente de codificación de IA los ejecute. PMG se sitúa en el camino, bloqueando paquetes maliciosos.
npm install express
# or
pip install requests
Gestores de Paquetes Soportados
PMG soporta las herramientas que ya usas:
| Ecosistema | Herramientas | Ejemplo de Comando |
|---|---|---|
| Node.js | npm | npm install <pkg> |
pnpm | pnpm add <pkg> | |
yarn | yarn add <pkg> | |
bun | bun add <pkg> | |
npx | npx <pkg> | |
pnpx | pnpx <pkg> | |
| Python | pip | pip install <pkg> |
pipx | pipx run <pkg> | |
poetry | poetry add <pkg> | |
uv | uv add <pkg> | |
uvx | uvx <pkg> |
Instalación
Script de Instalación (MacOS/Linux)
Descarga la última versión de GitHub, verifica su suma de comprobación SHA-256 y la instala en $HOME/.local/bin (si está en PATH) o en /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 es gestionado por gestores de versiones como
miseoasdf. La ruta global del binario denpmcambia con la versión activa de Node, por lo que cambiar de versiones puede dejarpmgno disponible enPATH(o apuntando a una instalación antigua). Para estas configuraciones, prefiere el script de instalación o Homebrew.
Go (Compilar desde Código Fuente)
# Asegúrate de que $(go env GOPATH)/bin esté en tu $PATH
go install github.com/safedep/pmg@latest
Descarga Binaria
Descarga el binario más reciente para tu plataforma desde la Página de Lanzamientos.
Imagen de Contenedor (GHCR)
Imágenes multi-arquitectura precompiladas (linux/amd64, linux/arm64) se publican en GitHub Container Registry en cada lanzamiento. El punto de entrada de la imagen es pmg.
# Descarga la imagen más reciente (o fija una versión, por ejemplo :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest
# Ejecuta cualquier comando de pmg
docker run --rm ghcr.io/safedep/pmg:latest version
Acciones de GitHub
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: Enforce PMG policy
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 de sandbox es optativo mediante la entrada sandbox. Ajusta el comportamiento a través de 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 del shell:
pmg setup remove
Para eliminar también el archivo de configuración de PMG:
pmg setup remove --config-file
Luego desinstala PMG:
# 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
- Configuración
- Configuración de Paquetes Confiables
- Enfriamiento de Dependencias
- Caché
- Arquitectura del Modo Proxy
- Servidor Proxy Persistente
- Autoridad de Certificación
- Sandboxing
Soporte
Si PMG te salvó de un paquete malo, dale estrella a este repositorio. Ayuda a otros a encontrarlo.
Historial de Estrellas
Contribuciones
Se aceptan contribuciones. Consulta CONTRIBUTING.md para instrucciones de construcción y prueba.
Gracias a todos los contribuyentes ❤️
Telemetría
PMG recopila datos de uso anónimos. Para deshabilitar, ya sea:
- Establece
disable_telemetry: trueen tu archivo de configuración de PMG, o - Exporta
PMG_DISABLE_TELEMETRY=true.