
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.
Instalar • Documentación • Comandos • PolÃticas • Discord
[!NOTE] Esta rama es vet v2, en alfa. vet v1 está en
mainy sigue siendo la última versión publicada. Las notas de la versión v2.0.0 mapean 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 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 commit SHA fijado.
- Manipulación de lockfiles y versiones recientes. Entradas de un registro no confiable, y versiones dentro de la ventana de enfriamiento.
- PolÃticas como código. Las reglas en CEL deciden cuándo falla un escaneo. Puedes probar una regla en 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 CycloneDX xBOM y CBOM.
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
Instalar
| 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 tiene 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 en 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Ãticas
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ébala en el último escaneo, sin un nuevo escaneo. Luego aplÃcala 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 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 una pull
request que agrega un paquete, un flujo de trabajo o un hallazgo, y falla la verificación ante un ataque.
vet ci initla agrega 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 los paquetes y flujos de trabajo que un cambio agrega. - xBOM y CBOM. Un inventario CycloneDX 1.7 de las bibliotecas de IA y la criptografÃa que tu código usa. Consulta inventory.md.
- Agentes de IA. vet encuentra Claude Code y otros agentes, y luego escribe JSON y nunca solicita entrada.
- AuditorÃa de endpoint.
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.