์—…๋ฐ์ดํŠธ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
New releaseSep 1, 2026

vet v1.19.0

์•…์„ฑ ์˜คํ”ˆ์†Œ์Šค ํŒจํ‚ค์ง€๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ ๐Ÿค–

๊ณต์œ 

SafeDep vet

์•…์„ฑ ํŒจํ‚ค์ง€, ์ทจ์•ฝ์ , ์œ„ํ—˜ํ•œ CI ์›Œํฌํ”Œ๋กœ๋ฅผ ํ”„๋กœ๋•์…˜์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.

[!NOTE] ์ด ๋ธŒ๋žœ์น˜๋Š” ์•ŒํŒŒ ๋‹จ๊ณ„์˜ vet v2์ž…๋‹ˆ๋‹ค. vet v1์€ main์— ์žˆ์œผ๋ฉฐ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. v2.0.0 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์—์„œ ๊ฐ v1 ๋ช…๋ น์–ด์™€ ํ”Œ๋ž˜๊ทธ๊ฐ€ v2์—์„œ ์–ด๋–ป๊ฒŒ ๋Œ€์‘๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

vet๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์—ฌ๋Ÿฌ๋ถ„์˜ ์˜์กด์„ฑ, GitHub Actions ์›Œํฌํ”Œ๋กœ, AI ์—์ด์ „ํŠธ ์„ค์ •์€ ์—ฌ๋Ÿฌ๋ถ„์ด ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. vet์€ ๊ทธ ์•ˆ์—์„œ ์œ„ํ—˜์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.

  • ์•…์„ฑ ํŒจํ‚ค์ง€. vet์€ ๊ฐ ํŒจํ‚ค์ง€๋ฅผ SafeDep Threat Intel๊ณผ ๋Œ€์กฐํ•ฉ๋‹ˆ๋‹ค. Threat Intel์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ์ƒˆ ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•  ๋•Œ ์ด๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.
  • ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ , ๊ทธ๋ฆฌ๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•  ์ˆ˜์ • ๋ฒ„์ „๊นŒ์ง€ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์œ„ํ—˜ํ•œ ์›Œํฌํ”Œ๋กœ. ์œ„ํ—˜ํ•œ ํŠธ๋ฆฌ๊ฑฐ, ํ…œํ”Œ๋ฆฟ ์ธ์ ์…˜, ๋…ธ์ถœ๋œ ์‹œํฌ๋ฆฟ, ์ปค๋ฐ‹ SHA๊ฐ€ ๊ณ ์ •๋˜์ง€ ์•Š์€ ์•ก์…˜์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.
  • ๋ฝํŒŒ์ผ ๋ณ€์กฐ์™€ ์ตœ์‹  ๋ฒ„์ „. ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์˜จ ํ•ญ๋ชฉ๊ณผ ์ฟจ๋‹ค์šด ๊ธฐ๊ฐ„ ๋‚ด์˜ ๋ฒ„์ „์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.
  • ์ฝ”๋“œํ˜• ์ •์ฑ…. CEL ๊ทœ์น™์ด ์Šค์บ” ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ๋œ ์Šค์บ”์— ๋Œ€ํ•ด ๊ทœ์น™์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • AI ๋ฐ ์•”ํ˜ธํ™” ์ธ๋ฒคํ† ๋ฆฌ. vet์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฝ”๋“œ๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” AI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‚˜์—ดํ•˜๊ณ , CycloneDX xBOM๊ณผ CBOM์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

vet์€ ๊ณ„์ •์ด ํ•„์š” ์—†๊ณ  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋น ๋ฅธ ์‹œ์ž‘

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

์„ค์น˜

์ฑ„๋„๋ช…๋ น์–ด
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
์ปจํ…Œ์ด๋„ˆdocker run --rm -v "$PWD:/src" -w /src ghcr.io/safedep/vet:v2-latest scan

mise๋Š” ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฒŒ์‹œ๋œ ๋‹ค์Œ ๋‚  ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๋นŒ๋“œ ๋ช…๋ น์–ด, ๋ฆด๋ฆฌ์Šค ๋ฐ”์ด๋„ˆ๋ฆฌ, ๋นŒ๋“œ ์ฆ๋ช…์€ install.md์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

vet์ด ์Šค์บ”ํ•˜๋Š” ๋Œ€์ƒ

๋Œ€์ƒ์˜ˆ์‹œ
๋””๋ ‰ํ„ฐ๋ฆฌ (๊ธฐ๋ณธ๊ฐ’)vet scan, vet scan ./service
git ์ €์žฅ์†Œvet scan https://github.com/safedep/vet
์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€vet scan oci://alpine:3.20, vet scan image.tar
SBOM (CycloneDX ๋˜๋Š” SPDX)vet scan sbom.cdx.json
๋‹จ์ผ ํŒจํ‚ค์ง€vet scan pkg:npm/[email protected]
์ด ๋จธ์‹ ์˜ ๋„๊ตฌ๋“คvet endpoint audit

vet์€ npm, PyPI, Go, Maven, Gradle, Cargo, RubyGems, NuGet, Packagist, Pub ๋“ฑ์˜ ๋ฝํŒŒ์ผ๊ณผ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋Œ€์ƒ์˜ GitHub Actions ์›Œํฌํ”Œ๋กœ์™€ AI ์—์ด์ „ํŠธ ์„ค์ •๋„ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์„ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋กค์ด ์ด ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ธ๋”ฉ์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. controls.md๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์ •์ฑ…

์ •์ฑ…์€ ์Šค์บ”์ด ์‹คํŒจํ•˜๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํŒŒ์ผ์„ 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

์ƒˆ ์Šค์บ” ์—†์ด ๋งˆ์ง€๋ง‰ ์Šค์บ”์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธํ•ด ๋ณด์„ธ์š”. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ์ ์šฉํ•˜์„ธ์š”:

vet report show last --policy vet-policy.yml
vet scan --base-ref origin/main --policy vet-policy.yml

๋งŒ๋ฃŒ์ผ์ด ์ง€๋‚˜๋ฉด ํ•ด๋‹น ์–ต์ œ๋Š” ๋” ์ด์ƒ ํŒŒ์ธ๋”ฉ์„ ์ˆจ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทœ์น™ ํ•„๋“œ, ๋” ๋งŽ์€ ๊ทœ์น™, ๊ทธ๋ฆฌ๊ณ  ์ •์ฑ…์„ ๋Œ€์‹  ์ž‘์„ฑํ•ด ์ฃผ๋Š” Agent Skill์— ๋Œ€ํ•ด์„œ๋Š” policy.md๋ฅผ ์ฝ์–ด๋ณด์„ธ์š”.

์‚ฌ์šฉ ์‚ฌ๋ก€

  • ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ๊ฒ€์‚ฌ. vet GitHub Action์€ ํŒจํ‚ค์ง€, ์›Œํฌํ”Œ๋กœ ๋˜๋Š” ํŒŒ์ธ๋”ฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ๋Œ“๊ธ€์„ ๋‹ฌ๊ณ , ๊ณต๊ฒฉ์ด ์žˆ์œผ๋ฉด ๊ฒ€์‚ฌ๋ฅผ ์‹คํŒจ์‹œํ‚ต๋‹ˆ๋‹ค. vet ci init์ด ์ €์žฅ์†Œ์— ์ด๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • CI ๊ฒŒ์ดํŠธ. ์ข…๋ฃŒ ์ฝ”๋“œ, GitHub ์ฝ”๋“œ ์Šค์บ๋‹์šฉ SARIF, GitLab ๋ฐ Bitbucket ๋ฆฌํฌํŠธ. ci.md๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
  • ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ๋ฆฌ๋ทฐ. --base-ref๋Š” ๋ณ€๊ฒฝ์ด ์ถ”๊ฐ€ํ•œ ํŒจํ‚ค์ง€์™€ ์›Œํฌํ”Œ๋กœ๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  • xBOM ๋ฐ CBOM. ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฝ”๋“œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” AI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ CycloneDX 1.7 ์ธ๋ฒคํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. inventory.md๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
  • AI ์—์ด์ „ํŠธ. vet์€ Claude Code์™€ ๊ธฐํƒ€ ์—์ด์ „ํŠธ๋ฅผ ์ฐพ์•„๋‚ด๊ณ , JSON์„ ์ž‘์„ฑํ•˜๋ฉฐ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์—”๋“œํฌ์ธํŠธ ๊ฐ์‚ฌ. vet endpoint audit์€ ๊ฐœ๋ฐœ์ž ๋จธ์‹ ์˜ AI ๋„๊ตฌ, MCP ์„œ๋ฒ„, ์—๋””ํ„ฐ ํ™•์žฅ, ์ „์—ญ npm ํŒจํ‚ค์ง€๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ์•…์„ฑ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ

ํŽ˜์ด์ง€์ฝ์–ด์•ผ ํ•  ์ด์œ 
์„ค์น˜๋ชจ๋“  ์ฑ„๋„๊ณผ ๋ฆด๋ฆฌ์Šค ๊ฒ€์ฆ ๋ฐฉ๋ฒ•
๋ช…๋ น์–ด๋ชจ๋“  ๋ช…๋ น์–ด, ํ”Œ๋ž˜๊ทธ, ์ข…๋ฃŒ ์ฝ”๋“œ
์ปจํŠธ๋กค์ปจํŠธ๋กค๊ณผ ๊ทธ ์˜ต์…˜
์ •์ฑ…๊ทœ์น™, ์–ต์ œ, ๊ฒŒ์ดํŠธ
์ถœ๋ ฅ๋ฆฌํฌํŠธ ํ˜•์‹, ์ €์žฅ๋œ ์Šค์บ”, ๊ตฌ์„ฑ
CI ๋ฐ AI ์—์ด์ „ํŠธGitHub Actions, GitLab, Bitbucket, ์—์ด์ „ํŠธ ๋ชจ๋“œ
์ธ๋ฒคํ† ๋ฆฌ์ฝ”๋“œ ์‚ฌ์šฉ, AI ๋ฐ ์•”ํ˜ธํ™”, xBOM ๋ฐ CBOM

ํ”„๋ผ์ด๋ฒ„์‹œ

vet์€ ๊ฐ ํŒจํ‚ค์ง€์˜ ์‹๋ณ„ ์ •๋ณด(์ƒํƒœ๊ณ„, ์ด๋ฆ„, ๋ฒ„์ „)๋ฅผ SafeDep์— ์ „์†กํ•˜์—ฌ ํ•ด๋‹น ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. vet์€ ์†Œ์Šค ์ฝ”๋“œ์™€ ํŒŒ์ผ ๋‚ด์šฉ์„ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ

vet์€ ํด๋ผ์šฐ๋“œ์—์„œ๋„ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. SafeDep Cloud๋Š” ๊ด€๋ฆฌํ•  ์ธํ”„๋ผ ์—†์ด ์—ฌ๋Ÿฌ๋ถ„์˜ ์ €์žฅ์†Œ์—์„œ vet์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Contributors to vet

์นดํ…Œ๊ณ ๋ฆฌ