
pmg v0.27.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)
Blockieren Sie bösartige npm- und pip-Pakete, bevor sie installiert werden.
Defense in Depth für die Paketmanager, die Sie bereits verwenden.
Warum PMG?
Entwickler und KI-Coding-Agenten installieren täglich Pakete. Jede npm install- oder pip install-Ausführung 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 kompromittiert, um Anmeldeinformationen zu exfiltrieren
- telnyx 4.87.2 - ein legitimes Telekom-SDK auf PyPI gekapert
- 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 keinen API-Schlüssel. Es fängt jede Paketinstallation ab und prüft sie über SafeDeps kostenlose Community-API auf bekannte Malware, bevor Code ausgeführt wird. Installieren Sie es einmal, und es deckt jede nachfolgende npm install, pip install und poetry add ab.
So funktioniert PMG
PMG verfolgt einen Defense-in-Depth-Ansatz. Null Konfiguration, funktioniert mit Zsh, Bash und Fish, und jede Installation durchläuft die aktivierten Schutzschichten, bevor Code ausgeführt wird, plus eine Audit-Trail danach.
Schichtdetails
- Transparente Abfangung - PMG umschließt
npm,pipund andere Paketmanager. Entwickler und KI-Agenten verwenden dieselben Befehle. Keine Workflow-Änderungen. - Layer 1: Threat Intelligence - PMG prüft jedes Paket vor der Installation gegen SafeDeps Echtzeit-Threat-Intelligence. Bekannt bösartige Pakete werden blockiert. Kein Schlüssel, kein Login erforderlich.
- Layer 2: Richtlinie (Dependency Cooldown) - PMG blockiert Paketversionen, die innerhalb eines konfigurierbaren Cooldown-Fensters veröffentlicht wurden, sodass kürzlich kompromittierte Versionen während des Fensters übersprungen werden.
- Layer 3: Opt-in-Sandbox - Wenn Sandboxing aktiviert und konfiguriert ist, führt PMG Installationen in OS-nativen Sandboxes aus (macOS Seatbelt, Linux Landlock standardmäßig, oder Bubblewrap als Fallback), sodass Installationsskripte eingeschränkten Systemzugriff haben, selbst wenn eine Bedrohung die ersten beiden Schichten passiert.
- Audit-Logging - PMG protokolliert jede Installation (was, wann, von wo) für eine überprüfbare Audit-Trail.
Wie PMG im Vergleich abschneidet
PMG ist die einzige kostenlose, Open-Source-Installationszeit-Paketfirewall, die Entwickler und KI-Agenten gleichermaßen abdeckt und standardmäßig mit Sandboxing und Cooldown ausgeliefert wird.
| Fähigkeit | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| OSS / öffentlich gebaut | ✓ | ✗ | ✓ | ✗ | ✗ |
| Kein Konto oder API-Schlüssel | ✓ | ✓ | ✓ | ✗ | ✗ |
| Blockierung bösartiger Pakete zur Installationszeit | ✓ | ✓ | ✓ | ✗ | ✗ |
| Dependency-Cooldown-Richtlinie | ✓ | ✗ | ✓ | ✗ | ✗ |
| Laufzeit-Sandboxing | ✓ | ✗ | ✗ | ✗ | ✗ |
| Schützt KI-Coding-Agenten transparent | ✓ | ✗ | ✗ | ✗ | ✗ |
| Lokale Audit-Logs | ✓ | ✗ | ✗ | ✗ | ✗ |
| Bekannte-CVE-Behebungs-PRs | ✗ | ✗ | ✗ | ✓ | ✓ |
Schnellstart
1. Installation
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 Ä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.
Validieren Sie Ihre Installation und überprüfen Sie, ob der Schutz funktioniert:
pmg setup doctor
Optional: PMG prüft HTTPS-Datenverkehr mit einer On-the-fly-CA, die es pro Lauf in Paketmanager injiziert. Um eine einzelne CA über mehrere Läufe hinweg beizubehalten und sie im OS-Vertrauensspeicher zu verankern (erforderlich für Tools, die CA-Umgebungsvariablen ignorieren, wie Go auf 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. Verwendung
Sehen Sie, wie PMG Bedrohungen blockiert.
npm install --no-cache --prefer-online [email protected]
Hinweis:
safedep-test-pkgist ein harmloses Testpaket, das in SafeDeps Datenbank als bösartig markiert ist, zu Test- und Verifizierungszwecken.
Verwenden Sie Ihre Paketmanager wie gewohnt weiter, oder lassen Sie Ihren KI-Coding-Agenten sie ausführen. PMG sitzt im Pfad und blockiert bösartige 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, verifiziert ihre SHA-256-Prüfsumme und installiert sie nach $HOME/.local/bin (falls auf 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 fragil sein, wenn Node.js von Versionsmanagern wie
miseoderasdfverwaltet wird. Der globalenpm-Bin-Pfad ändert sich mit der aktiven Node-Version, sodass ein VersionswechselpmgaufPATHunverfügbar machen kann (oder auf eine alte Installation verweist). Für solche Setups bevorzugen Sie das Installationsskript oder Homebrew.
Go (Build aus dem Quellcode)
# Stellen Sie sicher, dass $(go env GOPATH)/bin in Ihrem $PATH ist
go install github.com/safedep/pmg@latest
Binär-Download
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 Image-Einstiegspunkt ist pmg.
# Neuestes Image ziehen (oder eine Version markieren, z. B. :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest
# Beliebigen pmg-Befehl ausführen
docker run --rm ghcr.io/safedep/pmg:latest version
GitHub Actions
Schützen Sie CI-Workflows mit einem Schritt. PMG analysiert jede npm install,
pip install usw. im Job.
- uses: safedep/pmg@v1
with:
server-mode: true
# automatisch über HTTP_PROXY abgefangen
- run: npm ci
- name: PMG-Richtlinie durchsetzen
if: always()
run: pmg proxy stop --fail-on-violation # stoppt den Daemon, schlägt den Job bei einem Block fehl
Standardmäßig erhalten Sie Malware-Blockierung und Dependency-Cooldown. Sandbox-Isolation
ist über den sandbox-Input opt-in. Passen Sie das Verhalten über Inputs an (paranoid,
sandbox, cooldown-days, ...) oder zeigen Sie mit
config-file auf eine YAML-Datei im Repo. Siehe
docs/github-action.md für die vollständige Referenz.
Deinstallation
Entfernen Sie die Shell-Integration:
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.
- Attestationen: GitHub- und npm-Attestationen garantieren die Integrität der Artefakte.
- Verifizierung: Sie können kryptografisch nachweisen, dass die Binärdatei dem Quellcode entspricht.
- Siehe PMG vertrauen für Verifizierungsschritte.
Benutzerhandbuch
- Konfiguration
- Konfiguration vertrauenswürdiger Pakete
- Dependency Cooldown
- Caching
- Proxy-Modus-Architektur
- Persistenter Proxy-Server
- Certificate Authority
- Sandboxing
Unterstützung
Wenn PMG Sie vor einem schlechten Paket bewahrt hat, markieren Sie dieses Repo mit einem Stern. Es hilft anderen, es zu finden.
Mitwirken
Beiträge sind willkommen. Siehe CONTRIBUTING.md für Build- und Testanweisungen.
Danke an alle Mitwirkenden ❤️
Telemetrie
PMG sammelt anonyme Nutzungsdaten. Zum Deaktivieren entweder:
- Setzen Sie
disable_telemetry: truein Ihrer PMG-Konfigurationsdatei, oder - Exportieren Sie
PMG_DISABLE_TELEMETRY=true.