규정이 요구하는 것
규정 (EU) 2024/2847 부속서 I 제II부 제1호: 제조자는 "최소한 제품의 최상위 의존성을 포함하는 소프트웨어 자재 명세서를 널리 쓰이는 기계 판독 가능 형식으로 작성하는 것을 포함하여, 디지털 요소가 있는 제품에 포함된 취약점과 구성요소를 식별하고 문서화"해야 합니다(비공식 번역). 2027년 12월 11일부터 적용됩니다(제71조).
- SBOM은 취약점 처리 절차와 함께 기술 문서에 속합니다(부속서 VII 제2호 (b)).
- 시장감시당국의 근거 있는 요청이 있으면 제출합니다(부속서 VII 제8호). 공개할 필요는 없습니다(전문 제77항).
- 사용자에게 제공하기로 한 경우, 사용자 정보에 그 위치를 적습니다(부속서 II 제9호).
- 집행위원회는 이행 법령으로 형식과 요소를 정할 수 있습니다(제13조 제24항). CycloneDX와 SPDX가 널리 쓰이는 형식입니다.
이 페이지가 작성하는 것
귀하의 제품을 주 구성요소로 하고, 각 패키지의 정확한 버전과 패키지 URL(purl), 그리고 잠금 파일이 알려 주는 경우 제품의 최상위 의존성을 담은 CycloneDX 1.6 JSON 파일입니다. 읽는 파일:
- npm package-lock.json(lockfileVersion 2 또는 3), Yarn yarn.lock(Yarn 1, 2 이상), pnpm-lock.yaml(lockfileVersion 9.0). 파일이 개발 전용 패키지를 표시하면 제외합니다.
- pip freeze나 pip-compile이 쓰는 것처럼 모든 패키지가 고정된(name==version) Python requirements.txt,
- Rust Cargo.lock 버전 3 또는 4, 그리고 간접 모듈을 포함한 Go go.mod,
- mvn dependency:tree -DoutputFile이 쓴 Maven 의존성 트리와 Gradle gradle.lockfile. test 범위 패키지는 제외합니다.
- packages-dev를 제외한 PHP Composer composer.lock과 NuGet packages.lock.json.
형식을 따르지 않는 파일은 추측하지 않고, 줄과 이유를 밝히고 읽지 않습니다. 공개 레지스트리가 아닌 출처의 패키지는 패키지 URL 없이 나열되므로, 파일이 사용하지 않은 패키지를 가리키는 일은 없습니다.
다른 도구로 만든 SBOM이 이미 있습니까? CycloneDX JSON 파일이나, GitHub 의존성 그래프가 내보내는 것(Export SBOM) 같은 SPDX JSON 파일로 열어 구성요소를 OSV.dev와 KEV 목록으로 확인할 수 있습니다. 확인용으로만 읽으며, 새 SBOM을 만들려면 잠금 파일을 여십시오. 잠금 파일이 버전을 고정하지 않은 곳에서는 GitHub의 파일이 ^4.17.0 같은 범위를 줍니다. 그런 구성요소는 확인하지 않음으로 나열되므로, 잠금 파일을 열어 확인하십시오.
알려진 악용 취약점
확인 기능은 OSV.dev에서 찾은 취약점 중 CVE 번호가 미국 사이버보안 및 인프라 보안국(CISA)의 알려진 악용 취약점 목록(KEV)에 있는 것을, CISA가 추가한 날짜와 함께 표시합니다. CISA는 악용되었다는 신뢰할 만한 증거가 있으면 취약점을 목록에 올립니다. 2026년 9월 11일부터 CRA 제14조는 제품에 포함된 실제로 악용되는 취약점(제3조 제42호)을 인지한 후 24시간 안에 통보하도록 요구합니다. KEV 항목이 귀하의 제품에 대해 그것을 판정하지는 않지만, 가장 먼저 볼 곳입니다. 보고 기한 페이지가 시간을 계산합니다.
다루지 않는 것
SBOM은 잠금 파일에 있는 것을 나열합니다. 제품에 복사해 넣은 코드, 운영체제 패키지, 펌웨어, 다른 언어의 라이브러리는 잠금 파일에 없으므로 직접 파일에 추가하십시오. 취약점 확인은 공개된 취약점만 나열하는 OSV.dev를 이용하며, 부속서 I 제II부가 요구하는 취약점 평가를 대신하지 않습니다.