
악성 오픈소스 패키지로부터 보호 🤖
[!NOTE]
vet는 Agent Skills용 특수 모드를 지원합니다. GitHub 저장소에 호스팅된 Agent Skill을 스캔하려면vet scan --agent-skill <owner/repo>를 실행하세요.
현대 소프트웨어의 70-90%는 오픈소스 코드입니다 — 안전한지 어떻게 알 수 있을까요?
기존 SCA 도구는 CVE 노이즈에 압도당하게 만듭니다. vet는 다른 접근 방식을 취합니다:
오픈소스에는 무료입니다. 호스팅 SaaS는 SafeDep에서 이용할 수 있습니다.
몇 초 만에 설치:
# macOS & Linux
brew install safedep/tap/vet
# Using npm
npm install -g @safedep/vet
또는 사전 빌드된 바이너리를 다운로드하세요.
바로 시작하기:
# Scan for malware in your dependencies
vet scan -D . --malware-query
# Fail CI on critical vulnerabilities
vet scan -D . --filter 'vulns.critical.exists(p, true)' --filter-fail
vet는 파이프라인 아키텍처를 따릅니다: **리더(reader)**가 다양한 소스(디렉터리, 저장소, 컨테이너 이미지, SBOM)에서 패키지 매니페스트를 수집하고, **인리처(enricher)**가 SafeDep Cloud의 취약점·악성코드·스코어카드 데이터로 각 패키지를 보강하며, CEL 정책 엔진이 보강된 데이터에 대해 보안 정책을 평가하고, **리포터(reporter)**가 SARIF, JSON, Markdown과 같은 형식으로 실행 가능한 결과를 생성합니다.
graph TB
subgraph "OSS Ecosystem"
R1[npm Registry]
R2[PyPI Registry]
R3[Maven Central]
R4[Other Registries]
end
subgraph "SafeDep Cloud"
M[Continuous Monitoring]
A[Real-time Code Analysis<br/>Malware Detection]
T[Threat Intelligence DB<br/>Vulnerabilities • Malware • Scorecard]
end
subgraph "vet CLI"
S[Source Repository<br/>Scanner]
P[CEL Policy Engine]
O[Reports & Actions<br/>SARIF/JSON/CSV]
end
R1 -->|New Packages| M
R2 -->|New Packages| M
R3 -->|New Packages| M
R4 -->|New Packages| M
M -->|Behavioral Analysis| A
A -->|Malware Signals| T
S -->|Query Package Info| T
T -->|Security Intelligence| S
S -->|Analysis Results| P
P -->|Policy Decisions| O
style M fill:#7CB9E8,stroke:#5A8DB8,color:#1a1a1a
style A fill:#E8A87C,stroke:#B88A5A,color:#1a1a1a
style T fill:#7CB9E8,stroke:#5A8DB8,color:#1a1a1a
style S fill:#90C695,stroke:#6B9870,color:#1a1a1a
style P fill:#E8C47C,stroke:#B89B5A,color:#1a1a1a
style O fill:#B8A3D4,stroke:#9478AA,color:#1a1a1a
SafeDep Cloud 기반 실시간 악성 패키지 보호. 오픈소스 프로젝트에는 무료입니다. 능동적 코드 분석을 통해 제로데이 악성코드를 탐지합니다.
노이즈를 쏟아내는 의존성 스캐너와 달리, vet는 실제 코드 사용 현황을 분석하여 실제 위험에 우선순위를 부여합니다.
자세한 내용은 의존성 사용 증거를 참조하세요.
CEL 표현식으로 보안 정책을 정의하여 컨텍스트별 요구사항을 적용합니다:
# Block packages with critical CVEs
vet scan --filter 'vulns.critical.exists(p, true)' --filter-fail
# Enforce license compliance
vet scan --filter 'licenses.contains_license("GPL-3.0")' --filter-fail
# Require minimum OpenSSF Scorecard scores
vet scan --filter 'scorecard.scores.Maintained < 5' --filter-fail
패키지 매니저: npm, PyPI, Maven, Go, Ruby, Rust, PHP 컨테이너 이미지: Docker, OCI SBOM 형식: CycloneDX, SPDX 소스 저장소: GitHub, GitLab
정적 및 동적 동작 분석으로 지속적으로 갱신되는 SafeDep 위협 인텔리전스 데이터베이스를 조회하여 악성 패키지에 대한 실시간 보호를 제공합니다.
# Query known malicious packages (no API key needed)
vet scan -D . --malware-query
[!NOTE]
--malware플래그는 더 이상 사용되지 않습니다(deprecated). 주문형(on-demand) 능동 스캔은 SafeDep의 위협 인텔리전스 데이터베이스 조회 방식으로 대체되었습니다.--malware는 이제--malware-query와 동일하게 동작하며 하위 호환성을 위해 유지됩니다.
탐지 사례:
주요 보안 기능:
# Specialized scans
vet scan --vsx --malware-query # VS Code extensions
vet scan -D .github/workflows --malware-query # GitHub Actions
vet scan --image nats:2.10 --malware-query # Container images
[!NOTE]
vet inspect malware명령(단일 패키지에 대한 주문형 분석)은 더 이상 사용되지 않으며(deprecated) 향후 릴리스에서 제거될 예정입니다. SafeDep의 알려진 악성 패키지 데이터베이스에 대해 패키지를 검사하려면vet scan --malware-query를 사용하세요.
CI/CD에서 제로 구성 보안 가드레일:
- uses: safedep/vet-action@v1
with:
policy: ".github/vet/policy.yml"
vet-action 문서를 참조하세요.
vet CI Component를 사용한 엔터프라이즈 스캐닝:
include:
- component: gitlab.com/safedep/ci-components/vet/scan@main
컨테이너 이미지를 사용하여 어디서든 vet를 실행하세요:
docker run --rm -v $(pwd):/app ghcr.io/safedep/vet:latest scan -D /app --malware-query
brew install safedep/tap/vet
npm install @safedep/vet
사전 빌드된 바이너리는 releases에서 확인하세요.
go install github.com/safedep/vet@latest
# Quick test
docker run --rm ghcr.io/safedep/vet:latest version
# Scan local directory
docker run --rm -v $(pwd):/workspace ghcr.io/safedep/vet:latest scan -D /workspace
vet version
# Should display version and build information
포괄적인 문서에서 더 자세히 알아보세요:
vet는 제품 개선을 위해 익명 사용 텔레메트리를 수집합니다. 여러분의 코드와 패키지 정보는 절대 전송되지 않습니다.
# Disable telemetry (optional)
export VET_DISABLE_TELEMETRY=true
vet는 거인의 어깨 위에 서 있습니다:
OSV • OpenSSF Scorecard • SLSA • OSV-SCALIBR • Syft
모든 기여자분들께 감사드립니다 ❤️
지금 바로 공급망을 보호하세요. 저장소에 Star를 누르고 시작하세요!
SafeDep과 오픈소스 커뮤니티가 사랑을 담아 만들었습니다
