
vet v1.19.0
Protégete contra paquetes de código abierto maliciosos 🤖
Encuentra paquetes maliciosos, vulnerabilidades y flujos de trabajo de CI riesgosos antes de que lleguen a producción.
Instalación • Documentación • Comandos • PolÃticas • Discord
[!NOTE] Esta rama es vet v2, en fase alpha. vet v1 está en
mainy sigue siendo la última versión publicada. Las notas de la versión v2.0.0 asignan cada comando y flag de v1 a v2.
Por qué vet
Tus dependencias, tus flujos de trabajo de GitHub Actions y tus configuraciones de agentes de IA ejecutan código que tú no escribiste. vet encuentra el riesgo en ellos.
- Paquetes maliciosos. vet verifica cada paquete contra SafeDep Threat Intel. Threat Intel analiza las nuevas versiones de paquetes cuando los registros las publican.
- Vulnerabilidades conocidas, con la versión corregida a la que actualizar.
- Flujos de trabajo riesgosos. Disparadores peligrosos, inyección de plantillas, secretos expuestos y acciones sin un commit SHA fijado.
- Manipulación de lockfiles y versiones recientes. Entradas de un registro no confiable y versiones dentro de la ventana de cooldown.
- PolÃticas como código. Las reglas en CEL deciden cuándo falla un escaneo. Puedes probar una regla sobre un escaneo guardado.
- Inventario de IA y criptografÃa. vet lista las bibliotecas de IA y los algoritmos criptográficos que tu código invoca, y escribe un xBOM y CBOM de CycloneDX.
vet no necesita cuenta y no envÃa código fuente.
Inicio 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
Instalación
| 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 |
| Contenedor | docker run --rm -v "$PWD:/src" -w /src ghcr.io/safedep/vet:v2-latest scan |
mise instala una versión un dÃa después de su publicación. install.md contiene el comando para la compilación más reciente, los binarios de la versión y las atestaciones de compilación.
Qué escanea vet
| Objetivo | Ejemplo |
|---|---|
| Un directorio (el predeterminado) | vet scan, vet scan ./service |
| Un repositorio git | vet scan https://github.com/safedep/vet |
| Una imagen de contenedor | vet scan oci://alpine:3.20, vet scan image.tar |
| Un SBOM (CycloneDX o SPDX) | vet scan sbom.cdx.json |
| Un paquete | vet scan pkg:npm/[email protected] |
| Las herramientas de esta máquina | vet endpoint audit |
vet lee los lockfiles y manifiestos de npm, PyPI, Go, Maven, Gradle, Cargo, RubyGems, NuGet, Packagist, Pub y más. También lee los flujos de trabajo de GitHub Actions y las configuraciones de agentes de IA del objetivo. No instala ni ejecuta ninguno de ellos. Los controles convierten estos datos en hallazgos. Consulta controls.md.
PolÃtica
Una polÃtica decide cuándo falla un escaneo. Guarda este archivo 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
Pruébalo en el último escaneo, sin un nuevo escaneo. Luego aplÃcalo a una pull request:
vet report show last --policy vet-policy.yml
vet scan --base-ref origin/main --policy vet-policy.yml
Después de su fecha de expiración, la supresión ya no oculta el hallazgo. Lee policy.md para conocer los campos de las reglas, más reglas y la Agent Skill que escribe una polÃtica por ti.
Casos de uso
- Verificación de pull request. La vet GitHub Action comenta en un pull
request que añade un paquete, un workflow o un hallazgo, y hace fallar la verificación ante un ataque.
vet ci initla añade a un repositorio. - Puerta de CI. Códigos de salida, SARIF para el escaneo de código de GitHub, informes de GitLab y Bitbucket. Consulta ci.md.
- Revisión de pull request.
--base-refinforma solo de los paquetes y workflows que añade un cambio. - xBOM y CBOM. Un inventario CycloneDX 1.7 de las bibliotecas de IA y la criptografÃa que usa tu código. Consulta inventory.md.
- Agentes de IA. vet detecta Claude Code y otros agentes, y luego escribe JSON y nunca solicita entrada.
- AuditorÃa de endpoints.
vet endpoint auditlista las herramientas de IA, servidores MCP, extensiones de editor y paquetes npm globales en una máquina de desarrollador, y los verifica en busca de malware.