본문 바로가기
Dev/IT

SBOM(Software Bill Of Materials) 란?

by nakanara 2022. 8. 8.
반응형

SBOM(Software Bill Of Materials) 란?

SBOM(Software Bill Of Materials)은 소프트웨어의 구성에 사용된 컴포넌트에 관련 메타정보로, 제조업에 BOM으로부터 파생한 용어이지만 활용 목적에서 식품 원재료표와 유사하며, 소프트웨어에 사용된 구성요소에 대한 정보를 기재하여 의사 결정 및 파악을 빠르게 하기 위함

  • SBOM은 소프트웨어 구성요소 식별용 명세서로 소프트웨어 공급망 관점에서 중요
  • SBOM은 제조업에서 널리 사용되고 있는 자재명세서 또는 부품표(Bill Of Materials, 이하 BOM)의 개념을 소프트웨어 분야에 적용
  • 개념은 제조되어 유통되는 식품에 사용된 구성성분을 표시한 식품 원재료표(food indredients)가 있는데, 이용자의 인지 및 위험성 확인 목적

SBOM 등장 배경

디지털 전환이 가속화되면서 소트프웨어가 중요한 역할을 하게 되었으며, 이에 따라 안전한 소프트웨어 공급망 관리의 필요성 증가

  • 디지털 전환이 가속되고 ‘소프트웨어 중심사회’가 고도화되면 사회 안전에서 소프트웨어의 역할의 중요성이 커짐
  • 2020~21년 발생한 사이버 보안 사건들로 인해 미국 백악관에서 SBOM이 포함된 ’국가 사이버 안보 개선에 관한 행정명령‘ 발표
    • (보안사건) 연방정부 조달 솔라윈즈 SW(MS, VMWare관련) 대상 해킹 발생(`20.12월), 미국 최대 송유관 기업인 콜로니얼 파이프라인이 SW 랜섬웨어 감염으로 남부지역 혼란 초래(‘21.5월)
    • (오픈소스) 오픈소스 SW(OSS) 활성화, 모듈화, 재사용 증가 영향으로 SW패키지가 컴포넌트들로 구성되면서 목록 관리 필요성 부상
    • 특히, 공개소프트웨어(OSS) 중심의 글로벌 공급망을 통해 소프트웨어 개발과 운영이 이루어지면서 SW 컴포넌트 관리 매우 중요
    • (국가안보) 최근 무기체계와 통신, 에너지, 교통 등 사회기반시설에 SW 사용이 증가하여 국가안보를 위한 소프트웨어 공급망 투명성(Supply chain transparency) 확보 이슈 대두
  • SBOM은 SW 구성 컴포넌트 자체와 의존관계(dependency) 정보 관리라는 점에서 SW 복잡성을 가시화하려는 시도라고 볼 수 있고, 소프트웨어 의존관계 관리가 소프트웨어 공급망 관리의 핵심 중 하나가 되었음

SBOM의 필요 사례로는 로그 기록을 위해 보편적으로 사용하고 있던 Log4j에서 발견된 Log4Shell 취약점의 경우 보편적으로 사용했던 라이브러리였기에 특히 위험하며 대응의 속도가 중요하다. 또한 Log4j 취약점 정보가 공개되기 전부터 이미 많은 공격이 진행됐다는 사실이다. 따라서 Log4j 취약점 대응은 시간 싸움이며, 관련 소프트웨어에 따른 영향도가 있는지를 판단하기 위해 SBOM(Software Bill of Materials)을 생성해 정보를 투명하게 제공하는 것이 소프트웨어 공급망 취약점 공격 대응에 필수적인 요소가 됐다

  • 미 정보의 'SBOM'의무화(2021년 7월)

SBOM 포함 정보

  • Supplier Name: 구성요소를 만들고 정의하고 식별하는 주체의 이름
  • Component Name: 최초 공급자에 의해 정의된 소프트웨어 단위의 명칭
  • Version of the Component: 공급자가 이전에 식별된 소프트웨어 버전으로부터의 변경을 명시하기 위해 사용하는 식별자
  • Other Unique Identifiers: 구성요소를 식별하는 데 사용되거나 관련 데이터베이스를 위한 조회 키 역할을 하는 기타 식별자
  • Dependency Relationship: 소프트웨어 구성 요소 의존 관계
  • Author of SBOM Data: 저작권 정보(SBOM 데이터를 만든 주체의 이름)
  • Timestamp: 소프트웨어 BOM이 어셈블된 날짜 및 시간

SBOM 용어

  • SPDX - 소프트웨어 패키지 데이터 교환

SPDX는 여러 파일형식의 소프트웨어 구성 요소와 관련된 구성 요소, 라이선스, 저작권 및 보안 정보를 전달하기 위한 표준 언어를 제공

  • 사이클론DX(CycloneDX)

CycloneDX는 애플리케이션 보안 컨텍스트 및 공급망 구성 요소 분석에 사용하도록 설계된 경량 SBOM 표준

  • SWID - 소프트웨어 식별 태그

NIST에 따르면 "SWID 표준은 SWID 태그가 소프트웨어 제품 설치 프로세스의 일부로 끝점에 추가되고 제품 제거 프로세스에 의해 삭제되는 라이프 사이클

제품 이름 및 버전에 대한 세부 정보가 포함된 일관된 레이블을 통해 장치에 소프트웨어 제품이 있음을 나타내는 표준 표시기

  • SPDX 라이트

SPDX Lite는 전체 SPDX가 필요하지 않은 상황을 위한 SPDX의 경량/하위 집합. 오픈 소스 라이선스에 대한 지식이나 경험이 없는 사람들도 쉽게 사용할 수 있도록 하고 "일부 산업에서 SPDX 표준과 실제 워크플로우 간의 균형"을 유지하기 위한 것

참고

반응형