SBOM 표준

SBOM의 양대 표준인 SPDX와 CycloneDX의 특징을 비교하고 프로젝트에 적합한 선택 기준을 제시합니다.

주요 SBOM 표준

현재 널리 쓰이는 표준은 두 가지이며, 둘 다 SK텔레콤 제출에 사용할 수 있습니다. 탄생 배경과 주력 분야가 다릅니다.

  • SPDX (Software Package Data Exchange): Linux Foundation이 주관하는 표준(ISO/IEC 5962)입니다. 오픈소스 라이선스 정보 교환을 위해 개발되어 라이선스·저작권 정보 표현이 상세하고, 개별 파일 레벨의 정보까지 담을 수 있습니다.
  • CycloneDX: OWASP가 개발한 보안 중심 표준(ECMA-424)입니다. 처음부터 취약점 관리를 위해 설계되어 구조가 간결하고, 보안 도구와의 통합이 우수합니다.

SPDX vs CycloneDX 비교

구분SPDXCycloneDX
관리 기관Linux FoundationOWASP
표준 인증ISO/IEC 5962ECMA-424
주요 목적라이선스 컴플라이언스보안 취약점 관리
구조 복잡도높음 (상세)낮음 (간결)
파일 레벨 추적지원제한적
취약점 정보선택사항기본 포함
도구 생태계성숙빠르게 성장 중
파일 형식JSON, RDF/XML, YAML, Tag-ValueJSON, XML
주요 사용자법무팀, 오픈소스 관리 조직보안팀, DevOps 엔지니어
SKT 권장라이선스 검증이 주 목적일 때보안 취약점 관리가 주 목적일 때

어느 형식을 쓰든 제출 가능 여부는 형식이 아니라 내용이 가릅니다. 생성 도구가 지원하는 형식을 선택하고, 제출 요구사항의 필수 필드를 충족하면 됩니다.

상호 변환

SPDX와 CycloneDX 간 변환 도구가 제공됩니다.

SPDX에서 CycloneDX로 변환

# cyclonedx-cli 사용
cyclonedx convert --input-file sbom.spdx.json \
  --output-file sbom.cdx.json --input-format spdx \
  --output-format json

CycloneDX에서 SPDX로 변환

# spdx-tools 사용
java -jar tools-java-1.1.0-jar-with-dependencies.jar \
  Convert bom.cdx.json bom.spdx.json

관련 문서

참고 자료