
vet v1.19.0
Proteja-se contra pacotes de código aberto maliciosos 🤖
Encontre pacotes maliciosos, vulnerabilidades e fluxos de trabalho de CI de risco antes que cheguem à produção.
Instalação • Documentação • Comandos • PolÃtica • Discord
[!NOTE] Este branch é o vet v2, em alpha. O vet v1 está em
maine continua sendo a versão mais recente. As notas de versão do v2.0.0 mapeiam cada comando e flag do v1 para o v2.
Por que usar o vet
Suas dependências, seus fluxos de trabalho do GitHub Actions e suas configurações de agentes de IA executam código que você não escreveu. O vet encontra o risco neles.
- Pacotes maliciosos. O vet verifica cada pacote com o SafeDep Threat Intel. O Threat Intel analisa novas versões de pacotes quando os registries as publicam.
- Vulnerabilidades conhecidas, com a versão corrigida para a qual atualizar.
- Fluxos de trabalho de risco. Gatilhos perigosos, injeção de template, segredos expostos e actions sem commit SHA fixado.
- Adulteração de lockfile e versões recentes. Entradas de um registry não confiável e versões dentro da janela de cooldown.
- PolÃtica como código. Regras em CEL decidem quando uma varredura falha. Você pode testar uma regra em uma varredura salva.
- Inventário de IA e criptografia. O vet lista as bibliotecas de IA e os algoritmos criptográficos que seu código chama, e gera um CycloneDX xBOM e CBOM.
O vet não precisa de conta e não envia código-fonte.
InÃcio rápido
brew install --cask safedep/tap/vet@edge
vet scan
vet scan --fail-on high # exit 1 on a high or critical finding
vet scan --base-ref origin/main --fail-on high # report only what a pull request changes
vet report show --report sarif=vet.sarif # write SARIF from the saved scan, with no new scan
Instalação
| Canal | Comando |
|---|---|
| Homebrew | brew install --cask safedep/tap/vet@edge |
| mise | mise use -g 'github:safedep/vet[prerelease=true]@2' |
| Go | go install github.com/safedep/vet/v2/cmd/vet@latest |
| Container | docker run --rm -v "$PWD:/src" -w /src ghcr.io/safedep/vet:v2-latest scan |
O mise instala uma versão um dia após a sua publicação. O install.md contém o comando para a compilação mais recente, os binários de versão e as atestações de compilação.
O que o vet analisa
| Alvo | Exemplo |
|---|---|
| Um diretório (o padrão) | vet scan, vet scan ./service |
| Um repositório git | vet scan https://github.com/safedep/vet |
| Uma imagem de container | vet scan oci://alpine:3.20, vet scan image.tar |
| Um SBOM (CycloneDX ou SPDX) | vet scan sbom.cdx.json |
| Um pacote | vet scan pkg:npm/[email protected] |
| As ferramentas nesta máquina | vet endpoint audit |
O vet lê os lockfiles e manifests de npm, PyPI, Go, Maven, Gradle, Cargo, RubyGems, NuGet, Packagist, Pub e outros. Também lê os workflows do GitHub Actions e as configurações de agentes de IA do alvo. Não instala nem executa nenhum deles. Os controles transformam esses dados em descobertas. Consulte controls.md.
PolÃtica
Uma polÃtica decide quando uma análise falha. Salve este arquivo como vet-policy.yml:
version: 2
rules:
- id: no-malware
description: A malicious or suspicious package fails the build.
when: finding.family == "malware"
action: fail
- id: no-workflow-injection
when: finding.control_id in ["dangerous-trigger", "template-injection"]
action: fail
- id: no-critical-vulnerability
when: finding.control_id == "vulnerability" && finding.severity == "critical"
action: fail
- id: new-dependency-age
description: A pull request cannot add a version that is less than 14 days old.
when: package.change == "ADDED" && has(package.days_since_publish) && package.days_since_publish < 14
action: fail
suppressions:
- purl: pkg:npm/[email protected]
reason: The upgrade to 4.18.1 is in pull request 42.
expires: 2026-12-31
Teste-o na última varredura, sem uma nova varredura. Em seguida, aplique-o a um pull request:
vet report show last --policy vet-policy.yml
vet scan --base-ref origin/main --policy vet-policy.yml
Após a data de expiração, a supressão deixa de ocultar o achado. Leia policy.md para os campos de regra, mais regras e a Agent Skill que escreve uma polÃtica para você.
Casos de uso
- Verificação de pull request. A vet GitHub Action comenta em um pull
request que adiciona um pacote, um workflow ou um achado, e falha a verificação em caso de ataque.
vet ci initadiciona-a a um repositório. - Gate de CI. Códigos de saÃda, SARIF para o GitHub code scanning, relatórios do GitLab e do Bitbucket. Veja ci.md.
- Revisão de pull request.
--base-refrelata apenas os pacotes e workflows que uma alteração adiciona. - xBOM e CBOM. Um inventário CycloneDX 1.7 das bibliotecas de IA e da criptografia que seu código utiliza. Veja inventory.md.
- Agentes de IA. vet encontra o Claude Code e outros agentes, e então escreve JSON e nunca solicita entrada.
- Auditoria de endpoint.
vet endpoint auditlista as ferramentas de IA, servidores MCP, extensões de editor e pacotes npm globais em uma máquina de desenvolvedor, e os verifica em busca de malware.