
pmg v0.27.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.
Package Manager Guard (PMG)
Bloqueie pacotes npm e pip maliciosos antes que sejam instalados.
Defesa em profundidade para os gerenciadores de pacotes que você já usa.
Por que PMG?
Desenvolvedores e agentes de codificação de IA instalam pacotes todos os dias. Cada npm install ou pip install executa milhares de linhas de código que ninguém revisa.
Comprometimentos recentes em ecossistemas populares:
- Mini Shai-Hulud - mais de 300 pacotes populares comprometidos
- litellm 1.82.8 - uma biblioteca popular de proxy de IA 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
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 contra a API comunitária gratuita do SafeDep em busca de malware conhecido antes da execução do código. Instale uma vez, e ele cobre todos os npm install, pip install e poetry add posteriores.
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 trilha de auditoria posterior.
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 mudanças no fluxo de trabalho. - Camada 1: Inteligência de Ameaças - O PMG verifica cada pacote contra a inteligência de ameaças em tempo real do SafeDep antes da instalação. Pacotes conhecidos como maliciosos são bloqueados. Sem chave, sem login necessário.
- Camada 2: Política (Cooldown de Dependências) - 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 Opcional - Quando o sandboxing está habilitado e configurado, o PMG executa instalações dentro de sandboxes nativos do sistema operacional (macOS Seatbelt, Linux Landlock por padrão, ou fallback Bubblewrap) para que scripts de instalação tenham acesso restrito ao sistema, mesmo que uma ameaça passe pelas duas primeiras camadas.
- Log de Auditoria - O PMG registra cada instalação (o quê, quando, de onde) para uma trilha de auditoria verificável.
Como o PMG se Compara
O PMG é o único firewall de pacotes em tempo de instalação gratuito e open source que cobre desenvolvedores e agentes de IA igualmente e vem com sandboxing 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 em tempo de instalação | ✓ | ✓ | ✓ | ✗ | ✗ |
| Política de cooldown de dependências | ✓ | ✗ | ✓ | ✗ | ✗ |
| Sandboxing em tempo de execução | ✓ | ✗ | ✗ | ✗ | ✗ |
| Protege agentes de codificação de IA de forma transparente | ✓ | ✗ | ✗ | ✗ | ✗ |
| Logs de auditoria locais | ✓ | ✗ | ✗ | ✗ | ✗ |
| PRs de remediação de CVEs conhecidas | ✗ | ✗ | ✗ | ✓ | ✓ |
Início Rápido
1. Instalação
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Consulte Instalação para Homebrew, npm e outros métodos de instalação.
2. Configuração
Conecte o PMG ao seu shell para que ele intercepte os gerenciadores de pacotes.
pmg setup install
# Reinicie seu terminal para aplicar as mudanças
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 douradas:
sudo pmg setup install --system— consulte 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 a cada execução. Para persistir uma única CA entre execuções e confiá-la no armazenamento 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 # verifica estado de confiança e expiraçãoConsulte Autoridade Certificadora para escopos, rotação e remoção.
3. Uso
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 codificação 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 versão mais recente do GitHub, verifica sua soma de verificação 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 deixarpmgindisponível noPATH(ou apontando para uma instalação antiga). Para esses cenários, prefira o script de instalação ou o 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 do 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 GitHub Container Registry a 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 um único passo. 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ências. O isolamento por sandbox
é opcional via input sandbox. Ajuste o comportamento via inputs (paranoid,
sandbox, cooldown-days, ...) ou aponte
config-file para um YAML no repositório. Consulte
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.
- Atestados: Atestados do GitHub e npm garantem a integridade dos artefatos.
- Verificação: Você pode provar criptograficamente que o binário corresponde ao código-fonte.
- Consulte Confiando no PMG para etapas de verificação.
Guia do Usuário
- Configuração
- Configuração de Pacotes Confiáveis
- Cooldown de Dependências
- Cache
- Arquitetura do Modo Proxy
- Servidor Proxy Persistente
- Autoridade Certificadora
- Sandboxing
Suporte
Se o PMG salvou você de um pacote ruim, dê uma estrela neste repositório. Isso ajuda outras pessoas a encontrá-lo.
Contribuindo
Contribuições são bem-vindas. Consulte CONTRIBUTING.md para instruções de build e teste.
Agradecemos a todos os contribuidores ❤️
Telemetria
O PMG coleta dados de uso anônimos. Para desativar, faça uma das seguintes opções:
- Defina
disable_telemetry: trueno seu arquivo de configuração do PMG, ou - Exporte
PMG_DISABLE_TELEMETRY=true.