
vet v1.19.0
Schutz vor bösartigen Open-Source-Paketen 🤖
Finde bösartige Pakete, Schwachstellen und riskante CI-Workflows, bevor sie die Produktion erreichen.
Installation • Dokumentation • Befehle • Policy • 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 v2 zu.
Warum vet
Deine Abhängigkeiten, deine GitHub-Actions-Workflows und deine KI-Agent-Konfigurationen führen Code aus, den du nicht geschrieben hast. vet findet das Risiko 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 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. Du kannst eine Regel an einem gespeicherten Scan testen.
- KI- und Krypto-Inventar. vet listet die KI-Bibliotheken und die Krypto-Algorithmen auf, die dein 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 eine Version einen Tag nach ihrer Veröffentlichung. install.md enthält den Befehl für den neuesten Build, die Release-Binärdateien 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 |
| Ein 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 mehr. Es liest auch die GitHub-Actions-Workflows und die KI-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. Speichere 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
Teste sie am letzten Scan, ohne einen neuen Scan. Wende sie 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 ihrem Ablaufdatum verbirgt die UnterdrĂĽckung das Finding 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 ein Finding 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 Krypto, 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 einer Entwicklermaschine auf und prĂĽft sie auf Malware.