diff --git a/content/en/guide/supply-chain/for-suppliers/checklist.md b/content/en/guide/supply-chain/for-suppliers/checklist.md index a5048e84d..7a6ef27b2 100644 --- a/content/en/guide/supply-chain/for-suppliers/checklist.md +++ b/content/en/guide/supply-chain/for-suppliers/checklist.md @@ -9,7 +9,7 @@ description: > ## Essential Checklist Items -An SBOM that does not pass the checklist below may be automatically rejected by the system. +An SBOM that does not pass the checklist below may be automatically rejected by the system. Items 2 through 4 can be checked at once with BomLens automated validation under [Validation Tools](#validation-tools) below. ### 1. File Integrity - [ ] Is the file extension `.json` or `.xml`? (Not an archive file) @@ -48,9 +48,37 @@ jq '[.packages[] | select(.externalRefs[]?.referenceType == "purl")] | length' s > If the PURL-bearing count is 0 or significantly lower than the total component count, do not submit. For the cause and how to regenerate, see [Common Rejection Reasons](../rejection-reasons/). -## Online Validation Tool +## Validation Tools + +### BomLens Automated Validation (Recommended) + +The SBOM analysis feature of [BomLens](../skt-scanner/) automatically checks the [Submission Requirements](../requirements/), covering items 2 through 4 of the checklist above. Version 1.8.0 or later is required. + +```bash +./scripts/scan-sbom.sh --project my-app --version 1.0.0 \ + --analyze "./sbom.json" \ + --generate-only +``` + +Running it produces a conformance report (`my-app_1.0.0_conformance.html`) in the `my-app_1.0.0/` folder. The report automatically verifies the following items. + +| Check | Checklist Item | +|-------|----------------| +| Spec version range (CycloneDX 1.3–1.6, SPDX 2.2–2.3) | 2. Required Data Fields | +| Creation timestamp, generating tool, top-level component name and version | 2. Required Data Fields | +| Name and version of every component | 2. Required Data Fields | +| Direct and transitive dependencies included | 3. Dependency Completeness Check | +| PURL coverage, standard format (`pkg:type/name@version`), no `pkg:generic` | 4. Identifier (PURL) Check | +| License and hash coverage (recommended items) | — | + +If the result is fail, the report lists which components fall short on which item, so you can fix those parts, regenerate the SBOM, and validate again. The same validation is available in the web UI (run with `--ui` and upload the SBOM). + +### CycloneDX Validator (Schema Check) + * CycloneDX Validator: [https://cyclonedx.github.io/cyclonedx-web-tool/validate](https://cyclonedx.github.io/cyclonedx-web-tool/validate) +An online tool that checks whether a CycloneDX file conforms to the standard schema. It is useful for quickly checking JSON syntax and format errors (checklist item 1) without installing anything. However, it performs schema validation only — passing it does not mean items 2 through 4 (required fields, dependency completeness, PURL) are met. It cannot check SPDX files. + ## Related Documents - [Common Rejection Reasons](../rejection-reasons/): Causes and fixes for each rejection reason diff --git a/content/en/guide/supply-chain/for-suppliers/requirements.md b/content/en/guide/supply-chain/for-suppliers/requirements.md index f52f24587..9cb2d09c0 100644 --- a/content/en/guide/supply-chain/for-suppliers/requirements.md +++ b/content/en/guide/supply-chain/for-suppliers/requirements.md @@ -172,6 +172,6 @@ PURL (Package URL) is a standard URL format for uniquely identifying a software - [Supplier Guide Home](../) - [BomLens](../skt-scanner/): SK Telecom's SBOM generation tool - [Using Open Source Tools](../creation-guide/): Guidance on open source tools such as cdxgen and Syft -- [Validation Checklist](../checklist/): Items to verify before submission +- [Validation Checklist](../checklist/): Items to verify before submission, plus the validation tools (BomLens automated validation, CycloneDX Validator) - [Submission Process](../submission/): Submission method and email template diff --git a/content/ko/guide/supply-chain/for-suppliers/checklist.md b/content/ko/guide/supply-chain/for-suppliers/checklist.md index ba1f6072b..334551ed3 100644 --- a/content/ko/guide/supply-chain/for-suppliers/checklist.md +++ b/content/ko/guide/supply-chain/for-suppliers/checklist.md @@ -9,7 +9,7 @@ description: > ## 필수 점검 항목 -아래 체크리스트를 통과하지 못한 SBOM은 시스템에서 자동으로 반려될 수 있습니다. +아래 체크리스트를 통과하지 못한 SBOM은 시스템에서 자동으로 반려될 수 있습니다. 2~4번 항목은 아래 [검증 도구](#검증-도구)의 BomLens 자동 검증으로 한 번에 확인할 수 있습니다. ### 1. 파일 무결성 - [ ] 파일 확장자가 `.json` 또는 `.xml` 인가? (압축 파일 아님) @@ -48,9 +48,37 @@ jq '[.packages[] | select(.externalRefs[]?.referenceType == "purl")] | length' s > purl 보유 수가 0이거나 전체 컴포넌트 수보다 현저히 적으면 제출하지 마십시오. 원인과 재생성 방법은 [자주 발생하는 반려 사유](../rejection-reasons/)를 참고하십시오. -## 온라인 검증 도구 +## 검증 도구 + +### BomLens 자동 검증 (권장) + +[BomLens](../skt-scanner/)의 SBOM 분석 기능은 위 체크리스트의 2~4번을 포함해 [제출 요구사항](../requirements/)을 자동으로 점검합니다. v1.8.0 이상이 필요합니다. + +```bash +./scripts/scan-sbom.sh --project my-app --version 1.0.0 \ + --analyze "./sbom.json" \ + --generate-only +``` + +실행하면 `my-app_1.0.0/` 폴더에 적합성 리포트(`my-app_1.0.0_conformance.html`)가 생성됩니다. 리포트가 자동으로 확인하는 항목은 다음과 같습니다. + +| 검사 항목 | 체크리스트 대응 | +|-----------|-----------------| +| 스펙 버전 범위 (CycloneDX 1.3~1.6, SPDX 2.2~2.3) | 2. 필수 데이터 필드 | +| 생성 일시, 생성 도구, 최상위 컴포넌트 이름·버전 | 2. 필수 데이터 필드 | +| 모든 컴포넌트의 이름·버전 | 2. 필수 데이터 필드 | +| 직접·전이적 의존성 포함 여부 | 3. 의존성 완전성 확인 | +| PURL 보유율, 표준 형식(`pkg:type/name@version`), `pkg:generic` 금지 | 4. 식별자 (PURL) 확인 | +| 라이선스·해시 보유율 (권장 항목) | — | + +결과가 fail이면 어떤 컴포넌트가 어느 항목에 미달하는지 목록으로 표시되므로, 해당 부분을 보완해 SBOM을 다시 생성한 뒤 재검증하면 됩니다. 웹 UI(`--ui` 실행 후 SBOM 업로드)에서도 같은 검증을 할 수 있습니다. + +### CycloneDX Validator (스키마 검사) + * CycloneDX Validator: [https://cyclonedx.github.io/cyclonedx-web-tool/validate](https://cyclonedx.github.io/cyclonedx-web-tool/validate) +CycloneDX 파일이 표준 스키마에 맞는지 확인하는 온라인 도구입니다. JSON 문법과 형식 오류(체크리스트 1번)를 설치 없이 빠르게 확인할 때 유용합니다. 다만 스키마 검사만 수행하므로, 통과하더라도 2~4번(필수 필드, 의존성 완전성, PURL)을 충족한다는 뜻은 아닙니다. SPDX 파일은 이 도구로 검사할 수 없습니다. + ## 관련 문서 - [자주 발생하는 반려 사유](../rejection-reasons/): 반려 사유별 원인과 해결 방법 diff --git a/content/ko/guide/supply-chain/for-suppliers/requirements.md b/content/ko/guide/supply-chain/for-suppliers/requirements.md index 9e48684f3..2bf087716 100644 --- a/content/ko/guide/supply-chain/for-suppliers/requirements.md +++ b/content/ko/guide/supply-chain/for-suppliers/requirements.md @@ -172,5 +172,5 @@ PURL(Package URL)은 소프트웨어 패키지를 고유하게 식별하기 위 - [공급사 가이드 홈](../) - [BomLens](../skt-scanner/): SK텔레콤이 제공하는 SBOM 생성 도구 - [오픈소스 도구 활용](../creation-guide/): cdxgen, Syft 등 오픈소스 도구 안내 -- [검증 체크리스트](../checklist/): 제출 전 확인 사항 +- [검증 체크리스트](../checklist/): 제출 전 확인 사항과 검증 도구(BomLens 자동 검증, CycloneDX Validator) 안내 - [제출 절차](../submission/): 제출 방법 및 이메일 양식