
vet v1.19.0
Schutz vor bösartigen Open-Source-Paketen 🤖
Finden Sie bösartige Pakete, Schwachstellen und riskante CI-Workflows, bevor sie die Produktion erreichen.
Installation • Dokumentation • Befehle • Richtlinien • Discord
[!NOTE] Dieser Branch ist vet v2, in der Alpha-Phase. vet v1 befindet sich auf
mainund bleibt die neueste Version. Die v2.0.0-Versionshinweise ordnen jeden v1-Befehl und jedes Flag der v2 zu.
Warum vet
Ihre Abhängigkeiten, Ihre GitHub Actions-Workflows und Ihre KI-Agent-Konfigurationen führen Code aus, den Sie nicht geschrieben haben. vet findet die Risiken darin.
- Bösartige Pakete. vet prüft jedes Paket gegen SafeDep Threat Intel. Threat Intel analysiert neue Paketversionen, sobald die Registries sie veröffentlichen.
- Bekannte Schwachstellen, mit der festen Version, auf die aktualisiert werden sollte.
- Riskante Workflows. Gefährliche Trigger, Template-Injection, offengelegte Secrets und Actions ohne angehefteten Commit-SHA.
- Manipulierte Lockfiles und frische Versionen. Einträge aus einer nicht vertrauenswürdigen Registry und Versionen innerhalb des Cooldown-Fensters.
- Policy as Code. Regeln in CEL entscheiden, wann ein Scan fehlschlägt. Sie können eine Regel an einem gespeicherten Scan testen.
- KI- und Krypto-Inventar. vet listet die KI-Bibliotheken und die Krypto-Algorithmen auf, die Ihr Code aufruft, und schreibt ein CycloneDX xBOM und CBOM.
vet benötigt kein Konto und sendet keinen Quellcode.
Schnellstart
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
Installation
| Kanal | Befehl |
|---|---|
| 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 |
mise installiert ein Release einen Tag nach dessen Veröffentlichung. install.md enthält den Befehl für den neuesten Build, die Release-Binaries und die Build-Attestierungen.
Was vet scannt
| Ziel | Beispiel |
|---|---|
| Ein Verzeichnis (der Standard) | vet scan, vet scan ./service |
| Ein Git-Repository | vet scan https://github.com/safedep/vet |
| Ein Container-Image | vet scan oci://alpine:3.20, vet scan image.tar |
| Eine SBOM (CycloneDX oder SPDX) | vet scan sbom.cdx.json |
| Ein Paket | vet scan pkg:npm/[email protected] |
| Die Tools auf dieser Maschine | vet endpoint audit |
vet liest die Lockfiles und Manifeste von npm, PyPI, Go, Maven, Gradle, Cargo, RubyGems, NuGet, Packagist, Pub und weiteren. Es liest auĂźerdem die GitHub Actions Workflows und die AI-Agent-Konfigurationen des Ziels. Es installiert oder fĂĽhrt keines davon aus. Controls verwandeln diese Daten in Findings. Siehe controls.md.
Policy
Eine Policy entscheidet, wann ein Scan fehlschlägt. Speichern Sie diese Datei als 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
Testen Sie es mit dem letzten Scan, ohne einen neuen Scan. Wenden Sie es dann auf einen Pull Request an:
vet report show last --policy vet-policy.yml
vet scan --base-ref origin/main --policy vet-policy.yml
Nach Ablauf des GĂĽltigkeitsdatums verbirgt die UnterdrĂĽckung den Fund nicht mehr. Lies policy.md fĂĽr die Regelfelder, weitere Regeln und den Agent Skill, der eine Policy fĂĽr dich schreibt.
Anwendungsfälle
- Pull-Request-PrĂĽfung. Die vet GitHub Action kommentiert einen Pull
Request, der ein Paket, einen Workflow oder einen Fund hinzufügt, und lässt die Prüfung bei einem Angriff fehlschlagen.
vet ci initfĂĽgt sie einem Repository hinzu. - CI-Gate. Exit-Codes, SARIF fĂĽr GitHub Code Scanning, GitLab- und Bitbucket-Berichte. Siehe ci.md.
- Pull-Request-Review.
--base-refmeldet nur die Pakete und Workflows, die eine Änderung hinzufügt. - xBOM und CBOM. Ein CycloneDX-1.7-Inventar der KI-Bibliotheken und der Kryptografie, die dein Code verwendet. Siehe inventory.md.
- KI-Agenten. vet findet Claude Code und andere Agenten und schreibt dann JSON und fragt nie nach.
- Endpoint-Audit.
vet endpoint auditlistet die KI-Tools, MCP-Server, Editor-Erweiterungen und globalen npm-Pakete auf einem Entwicklerrechner auf und prĂĽft sie auf Malware.