Retour aux mises à jour
New releaseAug 20, 2026

pmg v0.26.0

PMG protège les développeurs et les agents IA des paquets open source malveillants en utilisant un proxy, un bac à sable et le flux de renseignements sur les menaces de SafeDep.

Partager

Package Manager Guard (PMG)

Bloquez les paquets npm et pip malveillants avant leur installation.
Défense en profondeur pour les gestionnaires de paquets que vous utilisez déjà.

safedep%2Fpmg | Trendshift

pmg en action

Docs Website Discord Featured in tl;dr sec

Go Report Card License Release OpenSSF Scorecard CodeQL

Pourquoi PMG ?

Les développeurs et les agents de codage IA installent des paquets chaque jour. Chaque npm install ou pip install exécute des milliers de lignes de code que personne ne vérifie.

Compromissions récentes dans des écosystèmes populaires :

  • Mini Shai-Hulud - 300+ paquets populaires compromis
  • litellm 1.82.8 - une bibliothèque proxy IA populaire compromise pour exfiltrer des identifiants
  • telnyx 4.87.2 - un SDK télécom légitime détourné sur PyPI
  • pino-sdk-v2 - un paquet typosquat déguisé en logger pino populaire

PMG est gratuit, open source (Apache 2.0) et ne nécessite ni compte ni clé API. Il intercepte chaque installation de paquet et la vérifie via l'API communautaire gratuite de SafeDep pour détecter les logiciels malveillants connus avant l'exécution du code. Installez-le une fois, et il couvre chaque npm install, pip install et poetry add par la suite.

Comment fonctionne PMG

PMG adopte une approche de défense en profondeur. Zéro configuration, fonctionne avec Zsh, Bash et Fish, et chaque installation passe par les couches de protection activées avant l'exécution du code, plus une piste d'audit après.

Défense en profondeur PMG : commande d'installation interceptée par PMG, passée par Couche 1 Renseignement sur les menaces, Couche 2 Période de refroidissement, Couche 3 Bac à sable, puis exécutée avec une entrée de journal d'audit
Détails des couches
  • Interception transparente - PMG encapsule npm, pip et d'autres gestionnaires de paquets. Les développeurs et les agents IA utilisent les mêmes commandes. Aucun changement de flux de travail.
  • Couche 1 : Renseignement sur les menaces - PMG vérifie chaque paquet auprès du renseignement en temps réel sur les menaces de SafeDep avant l'installation. Les paquets connus comme malveillants sont bloqués. Aucune clé, aucune connexion requise.
  • Couche 2 : Politique (Période de refroidissement des dépendances) - PMG bloque les versions de paquets publiées dans une fenêtre de refroidissement configurable, de sorte que les versions récemment compromises sont ignorées pendant cette fenêtre.
  • Couche 3 : Bac à sable optionnel - Lorsque le bac à sable est activé et configuré, PMG exécute les installations dans des bacs à sable natifs du système d'exploitation (macOS Seatbelt, Linux Landlock par défaut, ou fallback Bubblewrap) afin que les scripts d'installation aient un accès restreint au système même si une menace contourne les deux premières couches.
  • Journalisation d'audit - PMG enregistre chaque installation (quoi, quand, d'où) pour une piste d'audit vérifiable.

Comparaison de PMG

PMG est le seul pare-feu de paquets gratuit, open source, au moment de l'installation, qui couvre à la fois les développeurs et les agents IA et qui est livré avec le bac à sable et la période de refroidissement intégrés.

CapacitéPMGSocketsafe-chainSnykDependabot
OSS / construit en public
Aucun compte ni clé API
Blocage de paquets malveillants à l'installation
Politique de période de refroidissement des dépendances
Bac à sable à l'exécution
Protège les agents de codage IA de manière transparente
Journaux d'audit locaux
PR de correction de CVE connues

Démarrage rapide

1. Installation

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

Voir Installation pour Homebrew, npm et autres méthodes d'installation.

2. Configuration

Intégrez PMG dans votre shell pour qu'il intercepte les gestionnaires de paquets.

pmg setup install
# Redémarrez votre terminal pour appliquer les changements

Astuce : Réexécutez pmg setup install après avoir mis à jour PMG pour prendre en compte les nouvelles options de configuration.

Linux all-users / golden images : sudo pmg setup install --system — voir docs/system-install.md.

Validez votre installation et vérifiez que la protection fonctionne :

pmg setup doctor

Optionnel : PMG inspecte le trafic HTTPS avec une CA à la volée qu'il injecte dans les gestionnaires de paquets à chaque exécution. Pour rendre une CA persistante entre les exécutions et la faire confiance dans le magasin de certificats de votre OS (nécessaire pour les outils qui ignorent les variables d'environnement CA, comme Go sur macOS et Windows), installez-la une fois :

pmg setup cert install          # scope utilisateur, sans sudo
pmg setup cert status           # vérifier l'état de confiance et l'expiration

Voir Autorité de certification pour les scopes, la rotation et la suppression.

3. Utilisation

Voyez PMG bloquer les menaces.

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

Remarque : safedep-test-pkg est un paquet de test bénin signalé comme malveillant dans la base de données de SafeDep à des fins de test et de vérification.

Continuez à utiliser vos gestionnaires de paquets comme d'habitude, ou laissez votre agent de codage IA les exécuter. PMG se place sur le chemin, bloquant les paquets malveillants.

npm install express
# ou
pip install requests

Gestionnaires de paquets pris en charge

PMG prend en charge les outils que vous utilisez déjà :

ÉcosystèmeOutilsExemple de commande
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>

Installation

Script d'installation (MacOS/Linux)

Télécharge la dernière version depuis GitHub, vérifie sa somme de contrôle SHA-256 et l'installe dans $HOME/.local/bin (si sur PATH) ou /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 (Multi-plateforme)
npm install -g @safedep/pmg

Remarque : Les installations basées sur NPM peuvent être fragiles lorsque Node.js est géré par des gestionnaires de versions comme mise ou asdf. Le chemin global du binaire npm change avec la version active de Node, donc changer de version peut rendre pmg indisponible sur PATH (ou pointer vers une ancienne installation). Pour ces configurations, préférez le script d'installation ou Homebrew.

Go (Compilation à partir des sources)
# Assurez-vous que $(go env GOPATH)/bin est dans votre $PATH
go install github.com/safedep/pmg@latest
Téléchargement du binaire

Téléchargez le dernier binaire pour votre plateforme depuis la page des versions.

Image conteneur (GHCR)

Des images multi-arch préconstruites (linux/amd64, linux/arm64) sont publiées dans le GitHub Container Registry à chaque version. Le point d'entrée de l'image est pmg.

# Tirez la dernière image (ou épinglez un tag de version, par exemple :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest

# Exécutez n'importe quelle commande pmg
docker run --rm ghcr.io/safedep/pmg:latest version

GitHub Actions

Protégez les workflows CI en une seule étape. PMG analyse chaque npm install, pip install, etc. dans le job.

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

# intercepté via HTTP_PROXY automatiquement
- run: npm ci

- name: Enforce PMG policy
  if: always()
  run: pmg proxy stop --fail-on-violation   # arrête le démon, échoue le job sur un blocage

Par défaut, vous obtenez le blocage des logiciels malveillants et la période de refroidissement des dépendances. L'isolation du bac à sable est optionnelle via l'entrée sandbox. Ajustez le comportement via les entrées (paranoid, sandbox, cooldown-days, ...) ou pointez config-file vers un YAML dans le dépôt. Voir docs/github-action.md pour la référence complète.

Désinstallation

Supprimer l'intégration shell :

pmg setup remove

Pour supprimer également le fichier de configuration PMG :

pmg setup remove --config-file

Puis désinstallez PMG lui-même :

# Homebrew
brew uninstall safedep/tap/pmg

# NPM
npm uninstall -g @safedep/pmg

Confiance et sécurité

Les builds PMG sont reproductibles et signés.

  • Attestations : les attestations GitHub et npm garantissent l'intégrité des artefacts.
  • Vérification : Vous pouvez prouver cryptographiquement que le binaire correspond au code source.
  • Voir Faire confiance à PMG pour les étapes de vérification.

Guide de l'utilisateur

Support

Si PMG vous a sauvé d'un mauvais paquet, mettez une étoile à ce dépôt. Cela aide les autres à le trouver.

Star History

Star History Chart

Contribuer

Les contributions sont les bienvenues. Voir CONTRIBUTING.md pour les instructions de construction et de test.

Merci à tous les contributeurs ❤️

Contributeurs à PMG

Télémétrie

PMG collecte des données d'utilisation anonymes. Pour désactiver, soit :

  • Définissez disable_telemetry: true dans votre fichier de configuration PMG, ou
  • Exportez PMG_DISABLE_TELEMETRY=true.

Catégories