베지밀

SBOM(Software Bill of Materials) 본문

사물함/관심기사 스크랩

SBOM(Software Bill of Materials)

vegimil 2024. 9. 4. 10:45

소프트웨어가 복잡해지고 다양한 모듈을 사용함에 따라, 제로데이 취약점을 공개할 때 특정 기업의 소프트웨어 제품이 어떤 구성 요소로 이루어져 있는지를 효율적으로 점검할 수 있는 방법이 필요했다.

또한 Log4j, HeartBleed, npm 등의 보안 문제가 발생함에 따라, 오픈소스 보안 강화에 대한 필요성이 대두되었다.

이와 같이 오픈소스 소프트웨어 공급망 보호를 위해 도입된 SBOM에 대해서 알아보자.

 

SBOM이란?

제조업의 BOM(Bill of Materials)에서 파생된 개념으로, 소프트웨어 구성 요소에 대한 메타 정보를 제공하는 소프트웨어 자재 명세서로, 소프트웨어에 포함된 모든 구성 요소, 라이브러리, 모듈 및 버전, 라이선스, 출처 등의 정보를 포함한다.

 

(출처 : 한국인터넷진흥원, 이글루 코퍼레이션)

 

소프트웨어의 구성 컴포넌트에 관한 메타정보를 제공하고, API 연결 등 외부 구성요소와의 연결도 포함되며, 소프트웨어 제품에 사용된 모든 구성 요소와 의존성을 기록한 목록이다.

 

조금 더 쉽게 설명하면, 식료품점의 식품 성분 목록이라고 이해할 수 있다. 만약 어떤 음식을 먹고 알레르기 반응이 발생했다면, 성분 목록을 확인함으로써 대응이 가능하다. 이와 같이 SBOM은 소프트웨어에 들어가는 컴포넌트의 출처이고, 어떤 컴포넌트에서 문제가 발생하면 SBOM을 점검함으로써 보안 위협에 대응할 수 있다.

 

일반적으로, SBOM은 json이나 xml 형식으로 소프트웨어의 정보를 포함할 수 있다.

{ "bomFormat": "CycloneDX", "specVersion": "1.4", "serialNumber": "urn:uuid:3e673487-395b-41h8-a30f-a58468a69b79", "버전": 1, "구성 요소": [ { " 유형": "라이브러리", "이름": "nacl-library", "버전": "1.0.0" } ] }

 

 

 

SBOM의 데이터 형식

가장 보편적으로 사용되는 SBOM 형식은 SPDX(Software Package Data Exchange), CycloneDX, SWID(Software Identification Tagging) 방식이다.

 

1. SPDX (Software Package Data Exchange)

Linux 재단에서 개발하고, ISO/IEC 5962:2021 국제 표준으로 채택된 SBOM 형식이다. 소프트웨어 구성요소, 라이선스, 저작권, 보안 정보 등을 포함하고, JSON, YAML, RDF/XML 등 다양한 파일 형식을 지원한다. 복잡하고 상세한 정보를 다룰 수 있어 대규모 조직에서 주로 사용된다.

 

2. CycloneDX

OWASP 커뮤니티에서 개발한 경량화된 SBOM 표준으로, 애플리케이션 보안 컨텍스트와 공급망 구성 요소 분석에 중점을 둔다. JSON, XML 형식을 지원하며, 보안 취약점 정보를 포함할 수 있기 때문에 보안 중심의 분석에 적합하다.

 

OWASP에서 CycloneDX 형식의 다양한 구성 요소에 대한 더 자세한 그림

Vulnerabilities에 관련된 정보가 있음을 확인할 수 있다.

 

 

3. SWID

ISO/IEC 19770-2 산업 표준으로, 여러 상용 소프트웨어 출판사들이 사용한다. 소프트웨어 인벤토리 작성과 구성 요소 카탈로그화에 초점을 맞춘다. XML 형식을 사용하고, 간단하고 사용하기 쉽지만, 취약점 정보나 상세한 라이선스 정보 등은 포함하지 않는다는 단점이 있다.

 

 

국내의 SBOM 솔루션?!

스패로우의 '스패로우 SCA'

국내 기업 스패로우에서는 SBOM 솔루션인 스패로우 SCA를 제공하고 있다. 이는 소프트웨어의 구성 요소를 자동으로 분석하여 SPDX 형식의 SBOM을 생성하고,취약점 진단 및 바이너리 분석을 수행한다.

 

 

결론 및 시사점

미국을 비롯한 여러 국가에서 SBOM 도입을 의무화하고 있다. 국내에서도 과기정통부와 한국인터넷진흥원의 소프트웨어 공급망 보안 가이드를 통해 SBOM의 중요성을 강조하고 있다. 특히 국가 주요 기반시설 및 대기업을 중심으로 SBOM 도입이 시작되고 있다.

 

국내에서도 오픈소스 소프트웨어를 관리하기 위해, SBOM 국제 표준에 대해 이해하고 국내 SBOM 가이드라인을 개발해야 한다. 개인정보보호법, 정보통신망법 등 국내 법규를 준수하고, 국내에서 주로 사용하는 기술 스택과 개발 환경 및 국내 주요 산업(반도체, 자동차 등)의 특성을 고려한 SBOM 적용 방안을 마련해야 한다.
또한 약 92%의 애플리케이션이 오픈소스 소프트웨어를 포함하고 있는 만큼, 중소기업에서도 사용할 수 있도록 필요성에 대한 인식을 확산하고, SBOM 관련 법제화를 통해 더욱 안전하게 취약점을 관리하고 오픈소스 보안을 강화할 수 있을 것이다.

 

 

 

 

참고 및 출처

1. https://osckorea.tistory.com/202

2. https://scribesecurity.com/ko/sbom/#different-sbom-formats

3. https://scribesecurity.com/ko/sbom/sample-sbom/#how-to-use-an-sbom

4. https://www.igloo.co.kr/security-information/sbom%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B3%B5%EA%B8%89%EB%A7%9D-%EB%B3%B4%EC%95%88/

5. https://www.itworld.co.kr/news/247084?page=0,1

6. https://sparrow.im/kr/info/news/view/20230712/