
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.
Bloquez les paquets npm et pip malveillants avant leur installation.
Défense en profondeur pour les gestionnaires de paquets que vous utilisez déjà.
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 :
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.
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.
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.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.
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Voir Installation pour Homebrew, npm et autres méthodes d'installation.
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 installaprè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'expirationVoir Autorité de certification pour les scopes, la rotation et la suppression.
Voyez PMG bloquer les menaces.
npm install --no-cache --prefer-online [email protected]
Remarque :
safedep-test-pkgest 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
PMG prend en charge les outils que vous utilisez déjà :
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
brew tap safedep/tap
brew install safedep/tap/pmg
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
miseouasdf. Le chemin global du binairenpmchange avec la version active de Node, donc changer de version peut rendrepmgindisponible surPATH(ou pointer vers une ancienne installation). Pour ces configurations, préférez le script d'installation ou Homebrew.
# Assurez-vous que $(go env GOPATH)/bin est dans votre $PATH
go install github.com/safedep/pmg@latest
Téléchargez le dernier binaire pour votre plateforme depuis la page des versions.
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
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.
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
Les builds PMG sont reproductibles et signés.
Si PMG vous a sauvé d'un mauvais paquet, mettez une étoile à ce dépôt. Cela aide les autres à le trouver.
Les contributions sont les bienvenues. Voir CONTRIBUTING.md pour les instructions de construction et de test.
Merci à tous les contributeurs ❤️
PMG collecte des données d'utilisation anonymes. Pour désactiver, soit :
disable_telemetry: true dans votre fichier de configuration PMG, ouPMG_DISABLE_TELEMETRY=true.| Capacité | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|
| 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 | ✗ | ✗ | ✗ | ✓ | ✓ |
| Écosystème | Outils | Exemple de commande |
|---|
| 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> |