Volver a actualizaciones
Nuevo releaseSep 1, 2026

vet v1.19.0

Protégete contra paquetes de código abierto maliciosos 🤖

Compartir

SafeDep vet

Encuentra paquetes maliciosos, vulnerabilidades y flujos de trabajo de CI riesgosos antes de que lleguen a producción.

Release Build OpenSSF Scorecard License Discord

Instalar • Documentación • Comandos • Políticas • Discord

[!NOTE] Esta rama es vet v2, en alfa. vet v1 está en main y 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 finds a malicious package, vulnerabilities and workflow injection

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

CanalComando
Homebrewbrew install --cask safedep/tap/vet@edge
misemise use -g 'github:safedep/vet[prerelease=true]@2'
Gogo install github.com/safedep/vet/v2/cmd/vet@latest
Contenedordocker 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

ObjetivoEjemplo
Un directorio (el predeterminado)vet scan, vet scan ./service
Un repositorio gitvet scan https://github.com/safedep/vet
Una imagen de contenedorvet scan oci://alpine:3.20, vet scan image.tar
Un SBOM (CycloneDX o SPDX)vet scan sbom.cdx.json
Un paquetevet scan pkg:npm/[email protected]
Las herramientas en esta máquinavet 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 init la 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-ref informa 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 audit lista 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.

Documentación

Categorías