BOM(Software Bill of Materials) 소개

**BOM(Software Bill of Materials)**은 우리말로 소프트웨어 자재 명세서라고 불립니다. 이는 하나의 소프트웨어를 구성하는 모든 구성 요소(오픈 소스 라이브러리, 상용 소프트웨어, 내부 개발 코드 등)를 목록화한 것입니다. 마치 가공식품의 성분표처럼, 소프트웨어가 무엇으로 만들어졌는지 투명하게 보여주는 역할을 합니다.

왜 BOM이 중요한가요?

  • 공급망 보안 강화: 소프트웨어 공급망(Software Supply Chain) 공격에 대비하여, 내가 사용하는 소프트웨어가 어떤 취약한 구성 요소를 포함하고 있는지 파악할 수 있습니다.
  • 취약점 관리: SBOM을 통해 소프트웨어에 포함된 모든 패키지의 버전을 확인하고, 알려진 보안 취약점(CVE)이 있는지 자동으로 검사할 수 있습니다.
  • 라이선스 준수: 각 구성 요소의 오픈 소스 라이선스를 명확히 파악하여, 라이선스 의무를 위반할 위험을 줄일 수 있습니다.

BOM 툴의 종류

CKS(Certified Kubernetes Security Specialist) 시험에서 주로 다루는 BOM 툴은 TrivySyft입니다. 이 두 도구는 각각의 강점을 가지고 상호 보완적으로 사용됩니다.

1. Syft

Syft는 SBOM(Software Bill of Materials) 생성에 특화된 경량의 오픈 소스 도구입니다. 컨테이너 이미지나 파일 시스템을 빠르게 분석하여 정확한 SBOM을 생성하는 데 초점을 맞춥니다.

  • 주요 특징:
    • 전문성: 오직 SBOM 생성에만 집중하여 빠르고 정확한 결과를 제공합니다.
    • 다양한 출력 형식: SBOM 표준인 SPDXCycloneDX를 비롯해 JSON, YAML, 테이블 등 다양한 형식으로 출력할 수 있습니다.
    • 명령어 예시: syft <이미지> -o spdx-json > <파일명.spdx.json>

2. Trivy

Trivy는 컨테이너 이미지, 파일 시스템, Git 리포지토리 등의 취약점 스캔으로 더 잘 알려진 올인원(all-in-one) 보안 도구입니다. 하지만, SBOM 생성 기능도 함께 제공하여 하나의 도구로 여러 작업을 수행할 수 있습니다.

  • 주요 특징:
    • 통합 기능: 취약점 스캔과 SBOM 생성을 한 번에 처리할 수 있어 편리합니다.
    • 다양한 스캔 대상: 컨테이너 이미지뿐만 아니라, 로컬 파일 시스템, Git 리포지토리, 그리고 이미 생성된 SBOM 파일(trivy sbom)까지도 스캔할 수 있습니다.
    • 명령어 예시: trivy image --format spdx-json <이미지> > <파일명.spdx.json>

3. Grype

Grype는 Syft와 함께 사용되는 도구입니다. Syft로 생성된 SBOM 파일을 입력으로 받아, 해당 파일에 명시된 구성 요소들의 취약점만 빠르게 스캔하는 데 사용됩니다. 이는 대규모 컨테이너 환경에서 효율적인 보안 관리를 가능하게 합니다.


SPDX(Software Package Data Exchange) 파일에 대한 설명

SPDXSBOM을 작성하기 위한 국제 표준입니다. 즉, SBOM은 개념이고, SPDX는 그 개념을 구현하는 구체적인 파일 형식이라고 이해할 수 있습니다. SPDX 파일은 소프트웨어 구성 요소의 정보를 구조화된 형식으로 기록하여, 사람이 읽기 쉽고 소프트웨어가 자동으로 처리하기 용이하도록 설계되었습니다.

SPDX 파일에 포함된 주요 정보:

  • 구성 요소 목록: 소프트웨어에 포함된 모든 패키지(예: openssl, glibc)와 그 버전 정보.
  • 라이선스 정보: 각 패키지에 적용된 오픈 소스 라이선스의 종류.
  • 취약점 정보: 관련된 보안 취약점(CVE) 링크 등.
  • 저작권 및 제작자 정보: 각 구성 요소의 저작권 정보.

SPDX 파일의 중요성:

SPDX 파일은 소프트웨어 공급망에서 투명성을 보장하는 핵심 문서입니다. BOM 툴(Syft, Trivy)을 사용하여 SPDX 파일을 생성한 뒤, 이 파일을 보안 스캐너(Trivy, Grype)에 입력하여 자동으로 취약점을 분석하는 워크플로를 구축할 수 있습니다.

 

SPDX 파일 생성 방법

 

 

  • syft: SBOM 생성에 특화된 도구입니다.
    • 사용 예시: syft <이미지> --output spdx-json > <파일>
  • trivy: 취약점 스캐너이지만, SBOM 생성 기능도 지원합니다.
    • 사용 예시: trivy image <이미지> --format spdx-json > <파일>

 

 

 

 

 

 

 

 

'k8s > CKS' 카테고리의 다른 글

[CKS] AppArmor  (0) 2025.09.11
[CKS] k8s TLS 설정  (0) 2025.09.09
[CKS] 쿠버네티스 API 서버 보안 강화: 익명 접근 차단  (0) 2025.09.09
[CKS] BOM 툴 trivy -1  (0) 2025.09.09
[CKS] Pod Security Standards - restricted  (0) 2025.09.08

+ Recent posts