SBOM: 구성 요소 정보, 형식, 유지관리

Sytance · 업데이트

소프트웨어 자재 명세서(Software Bill of Materials, SBOM)는 애플리케이션 또는 시스템을 구성하는 소프트웨어 구성 요소와 그 관계를 설명합니다. 팀은 이를 구성 요소 목록 작성, 라이선스 검토, 취약점 조사에 착수하는 자료로 활용할 수 있습니다. 실제 제공된 소프트웨어를 얼마나 정확하게 기술하는지에 따라 그 가치가 달라집니다.

SBOM이 설명하는 제품

SBOM은 펌웨어 이미지나 설치 패키지와 같은 특정 제품 버전, 빌드 또는 산출물을 설명합니다. 구성 요소 항목은 그 범위에 포함된 라이브러리와 기타 소프트웨어를 식별합니다. 버전, 제작자, 식별자 및 관계를 통해 무엇이 포함되었는지 파악할 수 있습니다.

가상의 산업용 게이트웨이를 예로 들면, 펌웨어 릴리스가 대상 제품입니다. 관리 애플리케이션과 내장 라이브러리는 구성 요소입니다. 원격 원격 측정 서비스는 외부 종속성입니다. 이를 기술한다고 해서 서버 측 패키지가 펌웨어에 포함된다는 뜻은 아닙니다.

공개 예시는 구조를 쉽게 읽을 수 있도록 가상의 구성 요소를 사용합니다. Sytance 또는 실제 출시된 게이트웨이의 구성 요소 목록이 아닙니다.

구성 요소 식별자

이름이 비슷한 패키지도 서로 다른 패키지 생태계에 속할 수 있습니다. 패키지 URL(package URL, purl)은 유형, 네임스페이스, 이름, 버전 등의 필드를 사용해 패키지를 식별합니다. 해시 알고리즘과 해시 대상 파일을 알고 있으면 파일 해시로 특정 파일을 식별하는 데 도움이 됩니다.

패키지 메타데이터 또는 공급업체 정보를 사용해 식별자를 확인하세요. 공급업체를 추측해 조합한 purl은 잘못된 패키지를 가리킬 수 있습니다. 후속 빌드에는 자체 패치 버전이 포함될 수 있으므로 원래 버전 문자열을 보존하세요.

SPDX와 CycloneDX는 모두 소프트웨어 구성 요소 정보와 관계를 표현합니다. 사용할 수 있는 필드와 정확한 의미는 형식 버전에 따라 달라집니다. 생산 도구와 수신 도구 모두 처리할 수 있는 버전을 선택하세요.

목록의 정확성과 범위

파일이 유효한 JSON이어도 잘못된 릴리스를 설명할 수 있습니다. SBOM을 빌드 입력 및 제공된 산출물과 비교한 다음 불일치를 조사하세요. 소스 종속성 목록에는 실제 제공되지 않은 개발 도구가 들어 있고 이미지에 복사된 라이브러리가 빠져 있을 수 있습니다.

  • 대상: 제품, 버전, 산출물이 해당 릴리스와 일치합니다.
  • 식별 정보: 구성 요소 버전과 식별자를 근거 자료로 추적할 수 있습니다.
  • 관계: 종속 경로가 존재하고 의미가 분명합니다.
  • 범위: 공급업체 데이터 누락 및 분석되지 않은 부분이 드러납니다.
  • 교환: 수신 도구가 의도된 용도에 필요한 필드를 보존합니다.

2026 SBOM 최소 요소

CISA와 협력 기관이 공동 발행한 2026 SBOM 최소 요소는 NTIA의 2021년 지침을 갱신합니다. 문서 메타데이터, 구성 요소 데이터, SBOM의 유지관리 및 공유 관행을 다룹니다. 이 간행물은 지침이며 새로운 요구사항을 만들지 않는다고 명시합니다.

제공할 때는 합의된 규격, 형식 버전, 추가 고객 요구사항을 명시하세요. 스키마 검증 결과만으로 고객이 요청한 정보가 모두 포함되었다고 볼 수는 없습니다.

취약점 일치 및 제품 영향

취약점 일치는 보고된 문제를 구성 요소의 식별 정보 또는 버전과 연결합니다. 다음으로 해당 취약점의 영향을 받는 코드가 이 제품에 존재하는지, 악용될 수 있는지 확인해야 합니다. 빌드 옵션, 수정 사항, 실행 경로 및 권고문에 설명된 조건을 확인하세요.

취약점 악용 가능성 교환(Vulnerability Exploitability eXchange, VEX)은 식별된 제품에 대해 특정 취약점을 평가한 결과를 전달합니다. 해당 평가를 릴리스 및 근거 분석과 연결해 두세요. 일치 항목이 없다는 것은 범위가 제한적이거나 식별자가 불완전하다는 뜻일 수 있습니다.

지원되는 릴리스의 기록

원본 목록을 해당 릴리스와 함께 보관하세요. 새로운 정보로 소프트웨어는 바뀌지 않은 채 SBOM만 수정한다면 추적 가능한 문서 개정본을 발행하세요. 소프트웨어가 변경되면 새 릴리스 기록을 만드세요.

새 권고문에서 구성 요소 취약점이 확인되면 지원 중인 모든 릴리스의 목록을 검색하세요. 고객은 현재 제품과 구성 요소가 다른 이전 릴리스를 계속 사용하고 있을 수 있습니다.

추가 자료