
pmg v0.27.0
PMG protegge sviluppatori e agenti AI da pacchetti open source dannosi utilizzando proxy, sandbox e il feed di intelligence sulle minacce di SafeDep.
Package Manager Guard (PMG)
Blocca i pacchetti npm e pip dannosi prima che vengano installati.
Difesa in profondità per i gestori di pacchetti che già utilizzi.
Perché PMG?
Gli sviluppatori e gli agenti di codifica AI installano pacchetti ogni giorno. Ogni npm install o pip install esegue migliaia di righe di codice che nessuno revisiona.
Compromissioni recenti negli ecosistemi più diffusi:
- Mini Shai-Hulud - oltre 300 pacchetti popolari compromessi
- litellm 1.82.8 - una popolare libreria proxy AI compromessa per esfiltrare credenziali
- telnyx 4.87.2 - un SDK di telecomunicazioni legittimo dirottato su PyPI
- pino-sdk-v2 - un pacchetto typosquat camuffato da popolare logger pino
PMG è gratuito, open source (Apache 2.0) e non richiede account o chiave API. Intercetta ogni installazione di pacchetti e la verifica tramite l'API community gratuita di SafeDep per individuare malware noti prima che il codice venga eseguito. Installalo una volta e coprirà ogni npm install, pip install e poetry add successivo.
Come funziona PMG
PMG adotta un approccio di difesa in profondità. Zero configurazione, funziona con Zsh, Bash e Fish, e ogni installazione passa attraverso i livelli di protezione abilitati prima che il codice venga eseguito, più una traccia di audit dopo.
Dettagli dei livelli
- Intercettazione trasparente - PMG avvolge
npm,pipe altri gestori di pacchetti. Sviluppatori e agenti AI usano gli stessi comandi. Nessuna modifica al flusso di lavoro. - Livello 1: Threat Intelligence - PMG verifica ogni pacchetto tramite la threat intelligence in tempo reale di SafeDep prima dell'installazione. I pacchetti noti come dannosi vengono bloccati. Nessuna chiave, nessun login richiesto.
- Livello 2: Policy (Dependency Cooldown) - PMG blocca le versioni dei pacchetti pubblicate all'interno di una finestra di cooldown configurabile, così le versioni recentemente compromesse vengono saltate durante la finestra.
- Livello 3: Sandbox opzionale - Quando la sandboxing è abilitata e configurata, PMG esegue le installazioni all'interno di sandbox native del sistema operativo (macOS Seatbelt, Linux Landlock di default, o fallback Bubblewrap) così gli script di installazione hanno accesso di sistema limitato anche se una minaccia supera i primi due livelli.
- Audit Logging - PMG registra ogni installazione (cosa, quando, da dove) per una traccia di audit verificabile.
Come si confronta PMG
PMG è l'unico firewall per pacchetti a tempo di installazione gratuito e open source che copre sia sviluppatori che agenti AI e include sandboxing e cooldown di serie.
| Capacità | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| OSS / costruito in pubblico | ✓ | ✗ | ✓ | ✗ | ✗ |
| Nessun account o chiave API | ✓ | ✓ | ✓ | ✗ | ✗ |
| Blocco pacchetti dannosi a tempo di installazione | ✓ | ✓ | ✓ | ✗ | ✗ |
| Policy di cooldown delle dipendenze | ✓ | ✗ | ✓ | ✗ | ✗ |
| Sandboxing a runtime | ✓ | ✗ | ✗ | ✗ | ✗ |
| Protegge gli agenti di codifica AI in modo trasparente | ✓ | ✗ | ✗ | ✗ | ✗ |
| Log di audit locali | ✓ | ✗ | ✗ | ✗ | ✗ |
| PR di remediation per CVE noti | ✗ | ✗ | ✗ | ✓ | ✓ |
Avvio rapido
1. Installazione
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Vedi Installazione per Homebrew, npm e altri metodi di installazione.
2. Configurazione
Collega PMG alla tua shell così intercetta i gestori di pacchetti.
pmg setup install
# Riavvia il terminale per applicare le modifiche
Suggerimento: Esegui di nuovo
pmg setup installdopo aver aggiornato PMG per acquisire le nuove opzioni di configurazione.Linux per tutti gli utenti / golden images:
sudo pmg setup install --system— vedi docs/system-install.md.
Valida la tua installazione e verifica che la protezione funzioni:
pmg setup doctor
Opzionale: PMG ispeziona il traffico HTTPS con una CA creata al volo che inietta nei gestori di pacchetti a ogni esecuzione. Per rendere persistente una singola CA tra le esecuzioni e fidarti di essa nel trust store del tuo sistema operativo (necessario per strumenti che ignorano le variabili d'ambiente CA, come Go su macOS e Windows), installala una volta:
pmg setup cert install # ambito utente, senza sudo pmg setup cert status # verifica stato di fiducia e scadenzaVedi Certificate Authority per ambiti, rotazione e rimozione.
3. Utilizzo
Guarda PMG bloccare le minacce.
npm install --no-cache --prefer-online [email protected]
Nota:
safedep-test-pkgè un pacchetto di test benigno segnalato come dannoso nel database di SafeDep a scopo di test e verifica.
Continua a usare i tuoi gestori di pacchetti come al solito, oppure lascia che il tuo agente di codifica AI li esegua. PMG si trova nel percorso, bloccando i pacchetti dannosi.
npm install express
# oppure
pip install requests
Gestori di pacchetti supportati
PMG supporta gli strumenti che già utilizzi:
| Ecosistema | Strumenti | Esempio di 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> |
Installazione
Script di installazione (MacOS/Linux)
Scarica l'ultima release da GitHub, verifica il checksum SHA-256 e installa in $HOME/.local/bin (se presente nel PATH) o /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 (Cross-Platform)
npm install -g @safedep/pmg
Nota: Le installazioni basate su NPM possono essere fragili quando Node.js è gestito da version manager come
miseoasdf. Il percorso del bin globale dinpmcambia con la versione attiva di Node, quindi cambiare versione può lasciarepmgnon disponibile nelPATH(o puntare a una vecchia installazione). Per queste configurazioni, preferisci lo script di installazione o Homebrew.
Go (Build da sorgente)
# Assicurati che $(go env GOPATH)/bin sia nel tuo $PATH
go install github.com/safedep/pmg@latest
Download binario
Scarica l'ultimo binario per la tua piattaforma dalla Pagina delle Release.
Immagine container (GHCR)
Immagini multi-arch precompilate (linux/amd64, linux/arm64) vengono pubblicate sul GitHub Container Registry a ogni release. L'entrypoint dell'immagine è pmg.
# Scarica l'ultima immagine (o fissa un tag di versione, es. :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest
# Esegui qualsiasi comando pmg
docker run --rm ghcr.io/safedep/pmg:latest version
GitHub Actions
Proteggi i flussi di lavoro CI con un solo passaggio. PMG analizza ogni npm install,
pip install, ecc. nel job.
- uses: safedep/pmg@v1
with:
server-mode: true
# intercettato automaticamente tramite HTTP_PROXY
- run: npm ci
- name: Applica la policy PMG
if: always()
run: pmg proxy stop --fail-on-violation # ferma il daemon, fa fallire il job su un blocco
Di default ottieni il blocco dei malware e il cooldown delle dipendenze. L'isolamento sandbox
è opzionale tramite l'input sandbox. Regola il comportamento tramite gli input (paranoid,
sandbox, cooldown-days, ...) o punta
config-file a un YAML nel repository. Vedi
docs/github-action.md per il riferimento completo.
Disinstallazione
Rimuovi l'integrazione con la shell:
pmg setup remove
Per rimuovere anche il file di configurazione di PMG:
pmg setup remove --config-file
Poi disinstalla PMG stesso:
# Homebrew
brew uninstall safedep/tap/pmg
# NPM
npm uninstall -g @safedep/pmg
Fiducia e sicurezza
Le build di PMG sono riproducibili e firmate.
- Attestazioni: Le attestazioni GitHub e npm garantiscono l'integrità degli artefatti.
- Verifica: Puoi dimostrare crittograficamente che il binario corrisponde al codice sorgente.
- Vedi Fidarsi di PMG per i passaggi di verifica.
Guida utente
- Configurazione
- Configurazione dei pacchetti fidati
- Dependency Cooldown
- Caching
- Architettura della modalità proxy
- Server proxy persistente
- Certificate Authority
- Sandboxing
Supporto
Se PMG ti ha salvato da un pacchetto dannoso, metti una stella a questo repository. Aiuta gli altri a trovarlo.
Contributi
I contributi sono benvenuti. Vedi CONTRIBUTING.md per le istruzioni di build e test.
Grazie a tutti i contributori ❤️
Telemetria
PMG raccoglie dati di utilizzo anonimi. Per disabilitarla, puoi:
- Impostare
disable_telemetry: truenel tuo file di configurazione PMG, oppure - Esportare
PMG_DISABLE_TELEMETRY=true.