소프트웨어 자재명세서(SBOM)

소프트웨어 자재명세서(SBOM)

소프트웨어를 구성하는 모든 구성 요소를 나열한 상세 목록인 SBOM의 개념과, Docker Hardened Images에서 SBOM을 확인·검증하는 방법을 알아봐요.

출처: 문서

본문

SBOM이란 무엇인가요?

SBOM(Software Bill of Materials)은 소프트웨어 애플리케이션을 만드는 데 사용된 모든 구성 요소, 라이브러리, 의존성을 나열한 상세한 목록이에요. 각 구성 요소의 버전, 기원, 다른 구성 요소와의 관계를 문서화해서 소프트웨어 공급망에 대한 투명성을 제공해요. 소프트웨어의 '레시피'라고 생각하면 돼요. 모든 재료와 그것들이 어떻게 결합되는지를 상세히 적어둔 거예요.

SBOM이 소프트웨어 아티팩트를 설명하기 위해 포함할 수 있는 메타데이터는 다음과 같아요.

  • 아티팩트의 이름
  • 버전
  • 라이선스 유형
  • 작성자
  • 고유한 패키지 식별자

SBOM이 왜 중요한가요?

오늘날의 소프트웨어 환경에서 애플리케이션은 오픈소스 라이브러리, 서드파티 서비스, 독점 코드 등 다양한 출처의 수많은 구성 요소로 이루어져요. 이런 복잡성은 잠재적 취약점에 대한 가시성을 흐릿하게 만들고 컴플라이언스 노력을 어렵게 만들어요. SBOM은 애플리케이션 내 모든 구성 요소에 대한 상세한 목록을 제공해서 이런 문제를 해결해줘요.

SBOM의 중요성은 몇 가지 핵심 요소로 강조돼요.

  • 향상된 투명성: SBOM은 애플리케이션을 구성하는 모든 구성 요소에 대한 포괄적인 뷰를 제공해서, 조직이 서드파티 라이브러리와 의존성과 관련된 위험을 식별하고 평가할 수 있게 해줘요.

  • 선제적 취약점 관리: 최신 상태의 SBOM을 유지하면 조직은 소프트웨어 구성 요소의 취약점을 신속하게 식별·대응할 수 있어 잠재적 익스플로잇에 노출될 창을 줄여줘요.

  • 규제 컴플라이언스: 많은 규정과 업계 표준이 이제 조직에 사용 중인 소프트웨어 구성 요소를 관리할 것을 요구해요. SBOM은 명확하고 접근 가능한 기록을 제공해서 컴플라이언스를 촉진해요.

  • 개선된 사고 대응: 보안 침해가 발생했을 때 SBOM을 통해 조직은 영향받은 구성 요소를 신속히 파악하고 적절한 조치를 취해 잠재적 피해를 최소화할 수 있어요.

Docker Hardened Image의 SBOM

Docker Hardened Images에는 SBOM이 포함되어, 이미지의 모든 구성 요소가 문서화되고 검증 가능함을 보장해요. 이 SBOM은 암호화 방식으로 서명되어, 이미지 내용의 변조를 감지할 수 있는 기록(tamper-evident record)을 제공해요. 이 통합은 감사를 단순화하고 소프트웨어 공급망에 대한 신뢰를 높여줘요.

Docker Hardened Image에서 SBOM 보기

Docker Hardened Image의 SBOM을 보려면 docker scout sbom 명령을 사용하면 돼요. <image-name>:<tag>를 이미지 이름과 태그로 바꾸면 돼요.

$ docker scout sbom dhi.io/<image-name>:<tag>

Docker Hardened Image의 SBOM 검증하기

Docker Hardened Images에는 서명된 SBOM이 함께 제공되므로, Docker Scout를 사용해 이미지에 첨부된 SBOM의 정품성과 무결성을 검증할 수 있어요. 이렇게 하면 SBOM이 변조되지 않았고 이미지 내용이 신뢰할 수 있음을 보장해요.

Docker Scout로 Docker Hardened Image의 SBOM을 검증하려면 다음 명령을 사용해요.

$ docker scout attest get dhi.io/<image-name>:<tag> \
   --predicate-type https://scout.docker.com/sbom/v0.1 --verify --platform <platform>

예를 들어 node:20.19-debian12 이미지의 SBOM attestation을 검증하려면 다음과 같아요.

$ docker scout attest get dhi.io/node:20.19-debian12 \
   --predicate-type https://scout.docker.com/sbom/v0.1 --verify --platform linux/amd64

자료(Resources)

SBOM attestation과 Docker Build에 대한 자세한 내용은 SBOM attestations 문서를 봐요.

Docker Scout와 SBOM 사용에 대해 더 알아보려면 Docker Scout SBOMs 문서를 봐요.

더 알아보기 (Learn more)