
pmg v0.26.0
PMG schützt Entwickler und KI-Agenten vor bösartigen Open-Source-Paketen mittels Proxy, Sandbox und dem Threat-Intelligence-Feed von SafeDep.
Package Manager Guard (PMG)
Schädliche npm- und pip-Pakete blockieren, bevor sie installiert werden.
Verteidigung in der Tiefe für die Paketmanager, die Sie bereits verwenden.
Warum PMG?
Entwickler und KI-Codierungsagenten installieren täglich Pakete. Jedes npm install oder pip install führt Tausende von Codezeilen aus, die niemand überprüft.
Aktuelle Kompromittierungen in beliebten Ökosystemen:
- Mini Shai-Hulud – 300+ beliebte Pakete kompromittiert
- litellm 1.82.8 – eine beliebte KI-Proxy-Bibliothek, die zur Exfiltration von Anmeldeinformationen kompromittiert wurde
- telnyx 4.87.2 – ein legitimes Telekom-SDK, das auf PyPI gekapert wurde
- pino-sdk-v2 – ein Typosquat-Paket, das als beliebter Pino-Logger getarnt ist
PMG ist kostenlos, Open Source (Apache 2.0) und erfordert kein Konto oder API-Schlüssel. Es unterbricht jede Paketinstallation und prüft sie gegen die kostenlose Community-API von SafeDep auf bekannte Schadsoftware, bevor Code ausgeführt wird. Einmal installiert, deckt es jedes anschließende npm install, pip install und poetry add ab.
Wie PMG funktioniert
PMG verfolgt einen Ansatz der Verteidigung in der Tiefe. Keine Konfiguration erforderlich, funktioniert mit Zsh, Bash und Fish, und jede Installation durchläuft die aktivierten Schutzschichten, bevor Code ausgeführt wird, plus einer Prüfspur danach.
Schichtdetails
- Transparente Abfangfunktion – PMG umschließt
npm,pipund andere Paketmanager. Entwickler und KI-Agenten verwenden dieselben Befehle. Keine Änderung der Arbeitsabläufe. - Schicht 1: Bedrohungsinformationen – PMG prüft jedes Paket vor der Installation gegen die Echtzeit-Bedrohungsinformationen von SafeDep. Bekannt schädliche Pakete werden blockiert. Kein Schlüssel, kein Login erforderlich.
- Schicht 2: Richtlinie (Abhängigkeits-Abkühlphase) – PMG blockiert Paketversionen, die innerhalb eines konfigurierbaren Abkühlfensters veröffentlicht wurden, sodass kürzlich kompromittierte Versionen während des Fensters übersprungen werden.
- Schicht 3: Opt-in-Sandbox – Wenn die Sandbox aktiviert und konfiguriert ist, führt PMG Installationen in betriebssystemeigenen Sandboxes aus (macOS Seatbelt, Linux Landlock standardmäßig oder Bubblewrap als Rückfall), sodass Installationsskripte selbst dann eingeschränkten Systemzugriff haben, wenn eine Bedrohung die ersten beiden Schichten umgeht.
- Prüfprotokollierung – PMG protokolliert jede Installation (Was, Wann, Von wo) für eine nachvollziehbare Prüfspur.
Wie PMG im Vergleich abschneidet
PMG ist die einzige kostenlose, quelloffene Installationszeit-Paketfirewall, die sowohl Entwickler als auch KI-Agenten abdeckt und standardmäßig mit Sandboxing und Abkühlphase ausgeliefert wird.
| Fähigkeit | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| Open Source / öffentlich entwickelt | ✓ | ✗ | ✓ | ✗ | ✗ |
| Kein Konto oder API-Schlüssel | ✓ | ✓ | ✓ | ✗ | ✗ |
| Blockieren schädlicher Pakete zur Installationszeit | ✓ | ✓ | ✓ | ✗ | ✗ |
| Richtlinie zur Abhängigkeits-Abkühlphase | ✓ | ✗ | ✓ | ✗ | ✗ |
| Laufzeit-Sandboxing | ✓ | ✗ | ✗ | ✗ | ✗ |
| Schützt KI-Codierungsagenten transparent | ✓ | ✗ | ✗ | ✗ | ✗ |
| Lokale Prüfprotokolle | ✓ | ✗ | ✗ | ✗ | ✗ |
| Bekannte CVE-Behebungs-PRs | ✗ | ✗ | ✗ | ✓ | ✓ |
Schnellstart
1. Installieren
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Siehe Installation für Homebrew, npm und andere Installationsmethoden.
2. Einrichtung
Binden Sie PMG in Ihre Shell ein, damit es Paketmanager abfängt.
pmg setup install
# Starten Sie Ihr Terminal neu, um die Änderungen zu übernehmen
Tipp: Führen Sie
pmg setup installnach einem Upgrade von PMG erneut aus, um neue Konfigurationsoptionen zu übernehmen.Linux für alle Benutzer / Golden Images:
sudo pmg setup install --system– siehe docs/system-install.md.
Überprüfen Sie Ihre Installation und stellen Sie sicher, dass der Schutz funktioniert:
pmg setup doctor
Optional: PMG inspiziert HTTPS-Datenverkehr mit einer fliegenden CA, die es pro Lauf in Paketmanager einfügt. Um eine einzelne CA über mehrere Läufe hinweg zu persistieren und in Ihrem Betriebssystem-Vertrauensspeicher zu verankern (erforderlich für Tools, die CA-Umgebungsvariablen ignorieren, wie Go unter macOS und Windows), installieren Sie sie einmal:
pmg setup cert install # Benutzerbereich, kein sudo pmg setup cert status # Vertrauensstatus und Ablauf prüfenSiehe Certificate Authority für Bereiche, Rotation und Entfernung.
3. Verwenden
Sehen Sie, wie PMG Bedrohungen blockiert.
npm install --no-cache --prefer-online [email protected]
Hinweis:
safedep-test-pkgist ein harmloses Testpaket, das in der Datenbank von SafeDep zu Test- und Verifizierungszwecken als schädlich markiert wurde.
Verwenden Sie Ihre Paketmanager wie gewohnt weiter oder lassen Sie Ihren KI-Codierungsagenten sie ausführen. PMG sitzt im Pfad und blockiert schädliche Pakete.
npm install express
# oder
pip install requests
Unterstützte Paketmanager
PMG unterstützt die Tools, die Sie bereits verwenden:
| Ökosystem | Tools | Befehlsbeispiel |
|---|---|---|
| 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> |
Installation
Installationsskript (macOS/Linux)
Lädt die neueste Version von GitHub herunter, überprüft die SHA-256-Prüfsumme und installiert sie in $HOME/.local/bin (falls im PATH) oder /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 (plattformübergreifend)
npm install -g @safedep/pmg
Hinweis: NPM-basierte Installationen können instabil sein, wenn Node.js von Versionsverwaltungstools wie
miseoderasdfverwaltet wird. Der globalenpm-Bin-Pfad ändert sich mit der aktiven Node-Version, sodass ein Versionswechsel dazu führen kann, dasspmgnicht imPATHverfügbar ist (oder auf eine alte Installation verweist). Für solche Einrichtungen sind das Installationsskript oder Homebrew zu bevorzugen.
Go (aus Quelle erstellen)
# Stellen Sie sicher, dass $(go env GOPATH)/bin in Ihrem $PATH ist
go install github.com/safedep/pmg@latest
Binärdatei herunterladen
Laden Sie die neueste Binärdatei für Ihre Plattform von der Releases-Seite herunter.
Container-Image (GHCR)
Vorgefertigte Multi-Arch-Images (linux/amd64, linux/arm64) werden bei jeder Veröffentlichung im GitHub Container Registry veröffentlicht. Der Einstiegspunkt des Images ist pmg.
# Pullen Sie das neueste Image (oder legen Sie eine Version fest, z. B. :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest
# Führen Sie einen beliebigen pmg-Befehl aus
docker run --rm ghcr.io/safedep/pmg:latest version
GitHub Actions
Schützen Sie CI-Workflows mit einem Schritt. PMG analysiert jedes npm install,
pip install usw. im Job.
- uses: safedep/pmg@v1
with:
server-mode: true
# automatisch über HTTP_PROXY abgefangen
- run: npm ci
- name: Enforce PMG policy
if: always()
run: pmg proxy stop --fail-on-violation # stoppt den Daemon, der Job schlägt bei einer Blockierung fehl
Standardmäßig erhalten Sie Malware-Blockierung und Abhängigkeits-Abkühlphase. Die Sandbox-Isolation ist opt-in über die Eingabe sandbox. Passen Sie das Verhalten über Eingaben (paranoid, sandbox, cooldown-days, ...) an oder verweisen Sie mit config-file auf ein YAML im Repository. Siehe docs/github-action.md für die vollständige Referenz.
Deinstallation
Shell-Integration entfernen:
pmg setup remove
Um auch die PMG-Konfigurationsdatei zu entfernen:
pmg setup remove --config-file
Dann deinstallieren Sie PMG selbst:
# Homebrew
brew uninstall safedep/tap/pmg
# NPM
npm uninstall -g @safedep/pmg
Vertrauen und Sicherheit
PMG-Builds sind reproduzierbar und signiert.
- Bescheinigungen: GitHub- und npm-Bescheinigungen garantieren die Integrität der Artefakte.
- Verifizierung: Sie können kryptografisch nachweisen, dass die Binärdatei mit dem Quellcode übereinstimmt.
- Siehe PMG vertrauen für Verifizierungsschritte.
Benutzerhandbuch
- Konfiguration
- Vertrauenswürdige Paketkonfiguration
- Abhängigkeits-Abkühlphase
- Zwischenspeicherung
- Proxy-Modus-Architektur
- Persistenter Proxyserver
- Zertifizierungsstelle
- Sandboxing
Unterstützung
Wenn PMG Sie vor einem schlechten Paket bewahrt hat, markieren Sie dieses Repository mit einem Stern. Es hilft anderen, es zu finden.
Sterneverlauf
Mitwirken
Beiträge sind willkommen. Siehe CONTRIBUTING.md für Build- und Testanweisungen.
Vielen Dank an alle Mitwirkenden ❤️
Telemetrie
PMG sammelt anonyme Nutzungsdaten. Um dies zu deaktivieren, entweder:
- Setzen Sie
disable_telemetry: truein Ihrer PMG-Konfigurationsdatei, oder - Exportieren Sie
PMG_DISABLE_TELEMETRY=true.