Torna agli aggiornamenti
New releaseAug 30, 2026

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.

Condividi

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.

safedep%2Fpmg | Trendshift

pmg in azione

Docs Website Discord Featured in tl;dr sec

Go Report Card License Release OpenSSF Scorecard CodeQL

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.

Difesa in profondità di PMG: comando di installazione intercettato da PMG, passato attraverso Livello 1 Threat Intel, Livello 2 Cooldown, Livello 3 Sandbox, poi eseguito con una voce di audit log
Dettagli dei livelli
  • Intercettazione trasparente - PMG avvolge npm, pip e 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àPMGSocketsafe-chainSnykDependabot
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 install dopo 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 scadenza

Vedi 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:

EcosistemaStrumentiEsempio di comando
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>

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 mise o asdf. Il percorso del bin globale di npm cambia con la versione attiva di Node, quindi cambiare versione può lasciare pmg non disponibile nel PATH (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

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 ❤️

Contributori a PMG

Telemetria

PMG raccoglie dati di utilizzo anonimi. Per disabilitarla, puoi:

  • Impostare disable_telemetry: true nel tuo file di configurazione PMG, oppure
  • Esportare PMG_DISABLE_TELEMETRY=true.

Categorie