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

Software Bill of Materials의 약자. 소프트웨어를 구성하는 라이브러리 등 구성 요소의 이름, 버전, 공급자, 의존 관계 등을 기계가 읽을 수 있는 형식으로 정리한 목록. SPDX나 CycloneDX 등의 형식이 있다. 구성 요소에 취약점이 공표되었을 때 영향을 받는 제품이나 버전을 바로 특정할 수 있고, 라이선스 관리에도 사용할 수 있다. 미국의 2021년 5월 대통령령을 계기로 정부 조달 등에서 요구되기 시작했다.

일본어 명칭: SBOM(ソフトウェア部品表)

SBOM(소프트웨어 자재 명세서)은(는) 사이버 공격과 방어의 실무, 하드웨어 보안의 최신 동향 등 2개 분야의 연습 문제 2개에 나와요.

분야: 사이버 공격과 방어의 실무

무엇이 적혀 있는가

구성 요소 하나하나에 대해 이름, 버전, 공급자, 고유하게 특정하기 위한 식별자, 해시값, 라이선스, 다른 구성 요소와의 의존 관계를 기록합니다. 직접 사용하는 구성 요소뿐만 아니라 구성 요소가 사용하는 구성 요소(전이적 의존)까지 포함함으로써, 깊은 곳에 있는 취약한 구성 요소도 찾아낼 수 있습니다.

만드는 방법과 사용 방법

SBOM은 빌드할 때 도구로 자동으로 만드는 것이 일반적이며, 수작업으로 만들면 금방 낡아 버립니다. 만든 SBOM을 취약점 데이터베이스와 계속 대조함으로써, 새로운 취약점이 공표되었을 때 영향을 받는 제품을 빠르게 찾아낼 수 있습니다. 제품을 출하하는 기업에서는 PSIRT가 고객에 대한 연락에 사용합니다.

한계

SBOM은 구성 요소의 목록이며, 구성 요소가 안전하다는 것을 보증하는 것은 아닙니다. 또한 목록에 실린 취약한 구성 요소가 그 제품에서 실제로 악용할 수 있는 형태로 사용되고 있다고는 할 수 없으므로, 악용할 수 있는지에 대한 정보(VEX 등의 형식으로 전달됩니다)와 조합하여 판단합니다.

도전해 보기: SBOM(소프트웨어 자재 명세서) 관련 문제

SBOM(소프트웨어 자재 명세서)을 만들어 관리하는 주된 목적으로 올바른 것은?

  1. A제품에 포함된 라이브러리 등의 구성 요소와 버전을 목록으로 만들어, 구성 요소의 취약점이 공표되었을 때 영향을 받는 제품을 바로 찾는다
  2. B소프트웨어의 소스 코드를 암호화해 두고, 제품을 구입한 사용자를 포함한 제3자가 프로그램의 내용을 읽지 못하도록 보호한다
  3. C제품을 만드는 데 사용하는 반도체나 전자 부품의 목록으로부터 부품 조달에 드는 비용과 납기를 계산하여 생산 계획을 세운다
정답과 해설 보기

정답: A. 제품에 포함된 라이브러리 등의 구성 요소와 버전을 목록으로 만들어, 구성 요소의 취약점이 공표되었을 때 영향을 받는 제품을 바로 찾는다

현재의 소프트웨어는 많은 오픈 소스 라이브러리나 타사의 구성 요소를 조합하여 만들어지며, 구성 요소가 다시 다른 구성 요소에 의존하는 경우도 많습니다. SBOM은 이러한 구성 요소의 이름, 버전, 공급자, 의존 관계 등을 기계가 읽을 수 있는 형식(SPDX나 CycloneDX 등)으로 정리한 목록입니다. 2021년 12월에 공표된 Log4j의 취약점(Log4Shell)처럼 널리 쓰이는 구성 요소에서 심각한 취약점이 발견되었을 때, SBOM이 있으면 어느 제품의 어느 버전이 영향을 받는지를 빠르게 조사할 수 있습니다. 미국에서는 2021년 5월의 대통령령으로 정부에 납품하는 소프트웨어에 대해 SBOM 제공을 요구하는 방침이 제시되었습니다.

자주 묻는 질문

반도체나 전자 부품의 부품표(BOM)와는 관계가 있나요?

사고방식은 같으며, 제조업에서 사용되어 온 부품표(Bill of Materials)를 소프트웨어에 적용한 것입니다. 다만 SBOM의 구성 요소는 라이브러리 등의 소프트웨어이며, 목적도 주로 취약점과 라이선스의 관리입니다. 하드웨어 부품의 목록은 HBOM이라고 불리기도 합니다.

SBOM은 어떤 형식으로 만들면 되나요?

널리 사용되는 것은 SPDX(Linux Foundation이 중심이 되어 만들고 ISO/IEC 5962로 국제 규격도 된 형식)와 CycloneDX(OWASP가 중심이 되어 만든 형식)이며, 많은 도구가 둘 다 다룰 수 있습니다. 거래처나 규제의 요구에 맞춰 고르고, 형식 간에 변환할 수도 있습니다.

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

SBOM(소프트웨어 자재 명세서)이(가) 나오는 문제 (2)

  1. SBOM(소프트웨어 자재 명세서)을 만들어 관리하는 주된 목적으로 올바른 것은?
  2. 하드웨어 자재 명세서(HBOM)의 설명으로 올바른 것은?

관련 용어

HBOM(하드웨어 자재 명세서) 공급망 공격(Supply Chain Attack) 디지털 포렌식(Digital Forensics) 보안 관제 센터(Security Operations Center) 사이버 킬 체인(Cyber Kill Chain) 인시던트 대응 제로 트러스트 측면 이동(Lateral Movement) 침입 탐지 시스템(IDS) 침투 테스트(Penetration Testing)

용어집으로 돌아가기