좋은 질문입니다! 아래는 정적 분석(SAST) 또는 메타데이터 기반 탐색을 통해 무료로 사용할 수 있는 SBOM 생성 도구들입니다.
대부분 오픈소스이거나 무료 라이선스를 제공하며, 다양한 언어 및 컨테이너 환경을 지원합니다.
무료 SBOM 생성 도구 (정적 분석 / 메타데이터 기반)
| 도구 | 설명 | 지원 대상 | SBOM 포맷 | 라이선스 |
|---|---|---|---|---|
| Syft (by Anchore) | 컨테이너/디렉토리/패키지 매니저 기반 SBOM 생성 | Docker 이미지, 파일시스템, 다양한 언어 | SPDX, CycloneDX, Syft JSON | Apache 2.0 |
| tern (by VMware) | Docker 이미지 계층 분석으로 SBOM 생성 | Docker/OCI 이미지 | SPDX | Apache 2.0 |
| cdxgen | Node.js 기반, 다양한 언어의 프로젝트에서 메타데이터 추출 | JavaScript, Python, Go, Java 등 | CycloneDX | MIT |
| bom (CycloneDX CLI) | CycloneDX 공식 도구로 SBOM 생성 및 변환 | 다중 포맷 변환, JSON/XML 지원 | CycloneDX | Apache 2.0 |
| trivy (by Aqua Security) | 보안 취약점 스캐너지만 SBOM 생성도 지원 | 컨테이너 이미지, 디렉토리, Git 리포 | CycloneDX, SPDX | Apache 2.0 |
| snyk CLI (무료 tier) | 오픈소스 취약점 탐지 + SBOM 출력 지원 | Node.js, Python, Java 등 | SPDX, CycloneDX (제한) | Freemium |
| ScanCode Toolkit | 소스코드 기반 오픈소스 라이선스 및 패키지 분석 | 디렉터리, 코드베이스 | SPDX (풍부한 메타정보) | Apache 2.0 |
| OSS Review Toolkit (ORT) | 정적 분석 + 라이선스 컴플라이언스용 | Gradle, Maven, npm, pip 등 | SPDX | Apache 2.0 |
추천 사용 시나리오별 도구
| 목적 | 추천 도구 |
|---|---|
| 컨테이너 이미지에서 SBOM 생성 | Syft, Trivy, Tern |
| 소스코드 기반 SBOM 생성 (라이선스 포함) | ScanCode Toolkit, ORT |
| 단순 메타데이터 기반 생성 (CI/CD용) | cdxgen, CycloneDX CLI |
| 보안 취약점 검사 + SBOM | Trivy, Snyk CLI (무료 tier) |
예시: Syft 사용법
# Docker 이미지에서 SBOM 생성
syft alpine:latest -o cyclonedx-json > sbom.json
# 로컬 소스 디렉토리에서 추출
syft dir:. -o spdx-json
요약
| 유형 | 대표 도구 |
|---|---|
| 정적 분석 기반 (SAST) | ScanCode Toolkit, ORT |
| 메타데이터 기반 | Syft, cdxgen, CycloneDX CLI |
| 보안 + SBOM | Trivy, Snyk CLI (무료 제한) |