
pmg v0.26.0
O PMG protege desenvolvedores e agentes de IA contra pacotes de código aberto maliciosos usando proxy, sandbox e o feed de inteligência de ameaças da SafeDep.
Guardião do Gerenciador de Pacotes (PMG)
Bloqueie pacotes npm e pip maliciosos antes da instalação.
Defesa em profundidade para os gerenciadores de pacotes que você já usa.
Por que PMG?
Desenvolvedores e agentes de IA que codificam instalam pacotes todos os dias. Cada npm install ou pip install executa milhares de linhas de código que ninguém revisa.
Compromissos recentes em ecossistemas populares:
- Mini Shai-Hulud - mais de 300 pacotes populares comprometidos
- litellm 1.82.8 - uma biblioteca proxy de IA popular comprometida para exfiltrar credenciais
- telnyx 4.87.2 - um SDK legítimo de telecomunicações sequestrado no PyPI
- pino-sdk-v2 - um pacote typosquat disfarçado como o popular logger pino
O PMG é gratuito, open source (Apache 2.0) e não requer conta ou chave de API. Ele intercepta cada instalação de pacote e a verifica na API comunitária gratuita do SafeDep em busca de malware conhecido antes da execução do código. Instale uma vez e ele cobre todo npm install, pip install e poetry add a partir de então.
Como o PMG Funciona
O PMG adota uma abordagem de defesa em profundidade. Zero configuração, funciona em Zsh, Bash e Fish, e cada instalação passa pelas camadas de proteção habilitadas antes da execução do código, além de um rastro de auditoria após.
Detalhes das camadas
- Interceptação Transparente - O PMG envolve
npm,pipe outros gerenciadores de pacotes. Desenvolvedores e agentes de IA usam os mesmos comandos. Sem alterações no fluxo de trabalho. - Camada 1: Inteligência de Ameaças - O PMG verifica cada pacote na inteligência de ameaças em tempo real do SafeDep antes da instalação. Pacotes conhecidos como maliciosos são bloqueados. Sem chave, sem necessidade de login.
- Camada 2: Política (Cooldown de Dependência) - O PMG bloqueia versões de pacotes publicadas dentro de uma janela de cooldown configurável, para que versões recentemente comprometidas sejam ignoradas durante a janela.
- Camada 3: Sandbox Opt-in - Quando o sandbox está ativado e configurado, o PMG executa as instalações dentro de sandboxes nativos do SO (macOS Seatbelt, Linux Landlock por padrão, ou fallback Bubblewrap) para que os scripts de instalação tenham acesso restrito ao sistema, mesmo que uma ameaça passe pelas duas primeiras camadas.
- Registro de Auditoria - O PMG registra cada instalação (o quê, quando, de onde) para um rastro de auditoria verificável.
Como o PMG se Compara
O PMG é o único firewall de pacotes gratuito e open source no momento da instalação que cobre tanto desenvolvedores quanto agentes de IA e já vem com sandbox e cooldown prontos para uso.
| Capacidade | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| OSS / construído em público | ✓ | ✗ | ✓ | ✗ | ✗ |
| Sem conta ou chave de API | ✓ | ✓ | ✓ | ✗ | ✗ |
| Bloqueio de pacotes maliciosos na instalação | ✓ | ✓ | ✓ | ✗ | ✗ |
| Política de cooldown de dependência | ✓ | ✗ | ✓ | ✗ | ✗ |
| Sandbox em tempo de execução | ✓ | ✗ | ✗ | ✗ | ✗ |
| Protege agentes de IA de forma transparente | ✓ | ✗ | ✗ | ✗ | ✗ |
| Logs de auditoria locais | ✓ | ✗ | ✗ | ✗ | ✗ |
| PRs de correção de CVE conhecidas | ✗ | ✗ | ✗ | ✓ | ✓ |
Início Rápido
1. Instalar
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Veja Instalação para Homebrew, npm e outros métodos de instalação.
2. Configurar
Conecte o PMG ao seu shell para que ele intercepte os gerenciadores de pacotes.
pmg setup install
# Reinicie seu terminal para aplicar as alterações
Dica: Execute
pmg setup installnovamente após atualizar o PMG para obter novas opções de configuração.Linux para todos os usuários / imagens golden:
sudo pmg setup install --system— veja docs/system-install.md.
Valide sua instalação e verifique se a proteção está funcionando:
pmg setup doctor
Opcional: O PMG inspeciona o tráfego HTTPS com uma CA dinâmica que ele injeta nos gerenciadores de pacotes por execução. Para persistir uma única CA entre execuções e confiar nela no repositório de confiança do seu SO (necessário para ferramentas que ignoram variáveis de ambiente de CA, como Go no macOS e Windows), instale-a uma vez:
pmg setup cert install # escopo do usuário, sem sudo pmg setup cert status # verificar estado de confiança e validadeVeja Autoridade Certificadora para escopos, rotação e remoção.
3. Usar
Veja o PMG bloqueando ameaças.
npm install --no-cache --prefer-online [email protected]
Nota:
safedep-test-pkgé um pacote de teste benigno sinalizado como malicioso no banco de dados do SafeDep para fins de teste e verificação.
Continue usando seus gerenciadores de pacotes normalmente, ou deixe seu agente de IA executá-los. O PMG fica no caminho, bloqueando pacotes maliciosos.
npm install express
# ou
pip install requests
Gerenciadores de Pacotes Suportados
O PMG suporta as ferramentas que você já usa:
| Ecossistema | Ferramentas | Exemplo de 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> |
Instalação
Script de Instalação (MacOS/Linux)
Baixa a última versão do GitHub, verifica seu checksum SHA-256 e instala em $HOME/.local/bin (se estiver no PATH) ou /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 (Multiplataforma)
npm install -g @safedep/pmg
Nota: Instalações baseadas em NPM podem ser frágeis quando o Node.js é gerenciado por gerenciadores de versão como
miseouasdf. O caminho global do binárionpmmuda com a versão ativa do Node, então alternar versões pode deixar opmgindisponível noPATH(ou apontar para uma instalação antiga). Para essas configurações, prefira o script de instalação ou Homebrew.
Go (Compilar a partir do Código Fonte)
# Certifique-se de que $(go env GOPATH)/bin está no seu $PATH
go install github.com/safedep/pmg@latest
Download Binário
Baixe o binário mais recente para sua plataforma na Página de Releases.
Imagem de Contêiner (GHCR)
Imagens pré-construídas multi-arquitetura (linux/amd64, linux/arm64) são publicadas no Registro de Contêineres do GitHub em cada release. O entrypoint da imagem é pmg.
# Baixe a imagem mais recente (ou fixe uma tag de versão, ex.: :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest
# Execute qualquer comando pmg
docker run --rm ghcr.io/safedep/pmg:latest version
GitHub Actions
Proteja fluxos de trabalho de CI com uma etapa. O PMG analisa cada npm install,
pip install, etc. no job.
- uses: safedep/pmg@v1
with:
server-mode: true
# interceptado via HTTP_PROXY automaticamente
- run: npm ci
- name: Aplicar política do PMG
if: always()
run: pmg proxy stop --fail-on-violation # para o daemon, falha o job em caso de bloqueio
Por padrão você obtém bloqueio de malware e cooldown de dependência. Isolamento
com sandbox é opt-in via entrada sandbox. Ajuste o comportamento via entradas (paranoid,
sandbox, cooldown-days, ...) ou aponte
config-file para um YAML no repositório. Veja
docs/github-action.md para a referência completa.
Desinstalação
Remova a integração com o shell:
pmg setup remove
Para também remover o arquivo de configuração do PMG:
pmg setup remove --config-file
Em seguida, desinstale o próprio PMG:
# Homebrew
brew uninstall safedep/tap/pmg
# NPM
npm uninstall -g @safedep/pmg
Confiança e Segurança
As builds do PMG são reproduzíveis e assinadas.
- Atestações: Atestações do GitHub e npm garantem a integridade do artefato.
- Verificação: Você pode provar criptograficamente que o binário corresponde ao código fonte.
- Veja Confiança no PMG para etapas de verificação.
Guia do Usuário
- Configuração
- Configuração de Pacotes Confiáveis
- Cooldown de Dependência
- Cache
- Arquitetura do Modo Proxy
- Servidor Proxy Persistente
- Autoridade Certificadora
- Sandbox
Suporte
Se o PMG te salvou de um pacote ruim, dê uma estrela neste repositório. Isso ajuda outras pessoas a encontrá-lo.
Histórico de Estrelas
Contribuindo
Contribuições são bem-vindas. Veja CONTRIBUTING.md para instruções de build e teste.
Obrigado a todos os contribuidores ❤️
Telemetria
O PMG coleta dados de uso anônimos. Para desativar, ou:
- Defina
disable_telemetry: trueno seu arquivo de configuração do PMG, ou - Exporte
PMG_DISABLE_TELEMETRY=true.