블로그

251105_thumb_SBOM.png

 

 

기업이 알아야 할 SBOM도입 체크리스트

by. 고려대학교 소프트웨어보안연구소

 

1. 개요

 

 

SBOM(Software Bill of Materials)은, 소프트웨어 컴포넌트나 그들의 의존관계의 정보도 포함한 기계 처리 가능한 일람 리스트이다. SBOM에는 소프트웨어에 포함되는 컴포넌트의 명칭이나 버전 정보, 컴포넌트의 개발자 등의 정보가 포함되어, OSS(Open Source Software)만이 아니라 Proprietary(사유) 소프트웨어에 관한 정보도 포함될 수 있다. 또한, SBOM을 소프트웨어 공급망의 상류로부터 하류까지 조직을 초월하여 상호 공유하는 것으로, 소프트웨어 공급망의 투명성을 높이는 것이 기대되고 있어, 특히, 컴포넌트의 취약성 관리의 과제에 대한 하나의 해결책으로 기대되고 있다.

그래서 각국 특히 미국이나 일본에서 의료기기 분야와 자동차 분야를 중심으로 SBOM 도입을 위한 정책이나 실증 사업 등이 활발하게 진행되고 있다. 미국 상무부 전기통신정보국(NTIA)이 2018년에 실시한 실증사업과 2021년 미국 대통령령이나 EU의 「사이버 시큐리티 법」등에서 소프트웨어 개발처에 SBOM의 대응이 의무화되는 흐름이 있으며, 일본 경제산업성에서도 2021 년 자동차 분야, 2022년 의료기기분야의 실증 사업을 통해서 SBOM의 보급을 위한 활동이 활발이 전개되고 있는 상황이다.

SBOM 도입에 의한 이점으로는 취약성 관리, 라이선스 관리, 그리고 생산성 향상을 위한 이점 등이 거론되고 있으며, 그 외에도 소프트웨어의 EOL* 관리가 용이해지거나, 제품 가치나 기업 가치 등에 대한 간접적 이점도 존재하고 있다.

본 고에서는, 이러한 SBOM 도입이 활발화 되고 있는 시점에서 기업이 알아야 할 SBOM 도입 체크리스트라는 관점에서 살펴보고자 한다.

 

*EOL(End of Life) : 소프트웨어의 지원이 공식적으로 종료되어 더 이상 제조사나 개발사로부터 공식적인 업데이트, 패치, 보안이 제공되지 않는 상태

 

 

 

 

2. SBOM 도입

 

본 고에서는, 일본 경제산업성이 2024년에 발간한 “소프트웨어 관리를 위한 SBOM 도입에 관한 지침서”를 중심으로 SBOM 도입에 있어서 기본 지침, SBOM 도입 프로세스, SBOM 도입을 위한 실시 사항 체크리스트를 소개하고자 한다.

2.1. SBOM 도입에 있어서 기본 고려 사항

SBOM 도입에 앞서서, SBOM을 작성하는 소프트웨어의 범위를 결정함과 함께, SBOM을 도입하는 것으로 해결하고 싶은 자기 조직의 과제와, 그것을 바탕으로 한 SBOM 도입의 목적을 명확하게 하는 것이 필요하다. SBOM 도입의 목적에 따라서, 작성해야 하는 SBOM의 항목, 포맷, 작성 범위, 공유 범위 등, SBOM의 적용 범위가 크게 다르기 때문에, SBOM을 도입하는 기업은 먼저 SBOM 도입에 의해 해결하고 싶은 소프트웨어 관리에 관한 기업의 과제를 정리함과 함께, SBOM 도입의 목적을 명확하게 한 다음 SBOM을 작성・운용・관리하는 것이 SBOM 도입에 있어서 반드시 고려되었으면 한다.

 

2.2. SBOM 도입 프로세스

SBOM 도입에 관한 프로세스는 SBOM 도입에 관한 환경 구축・체제 정비 단계, SBOM 작성・공유 단계, SBOM 운용・관리 단계의 3개의 단계로 나누어 볼 수 있다.

먼저, 환경 구축・체제 정비 단계에서는 SBOM의 도입 범위를 명확화 함과 동시에 SBOM의 작성・공유를 위한 환경이나 체제를 구축한다. SBOM 작성・공유 단계에서는 실제로 SBOM을 작성함과 동시에, 필요에 따라서 작성한 SBOM을 외부에 공유한다. SBOM은 소프트웨어 관리의 한 수법이기 때문에, SBOM 작성만이 중요한 것이 아니라 SBOM을 이용한 관리도 중요하다. 따라서, SBOM 운용・관리 단계로써 SBOM의 정보에 기반한 취약성 관리나 라이선스 관리를 행함과 동시에 SBOM 자체를 적절하게 관리할 필요가 있다. 3개 단계별 SBOM 도입 프로세스는 아래와 같이 요약 정리할 수 있다.

 

 

 

SBOM 도입 프로세스

 

2025-11-05_17_14_04.png

 

 

Phase

Step

Implementation details

환경 구축체제 정비

SBOM 적용 범위의 명확화

SBOM 대상이 되는 소프트웨어의 정보(개발 언어, 계약 형태, 규제 요구 사항, 사내의 제약 등)를 정리하여, SBOM 적용 범위를 명확화 한다.

SBOM 도구의 선정

대상 소프트웨어의 개발 언어나 조직 내의 제약을 고려한 SBOM 도구의 선정의 관점을 정리하고, 해당 관점에 기반한 SBOM 툴을 평가선정한다.

SBOM 도구의 도입설정

도구의 취급 설명서나 README 파일 등을 확인하여 SBOM 도구의 도입설정을 행한다.

SBOM 도구에 관한 학습

도구 취급 설명서나 README 파일 등을 확인하여 SBOM 도구 사용법을 습득한다.

 

 

SBOM 작성

공유

컴포넌트의 해석

대상 소프트웨어의 컴포넌트를 해석함과 함께, 해석 결과에 대해서 오검출이나 검출 유출이 없는 지를 확인한다.

SBOM의 작성

작성하는 SBOM의 항목, 포맷, 출력 파일 형식 등의 SBOM에 관한 요건을 결정하고, 해당 요건을 만족하는 SBOM을 작성한다.

SBOM의 공유

대상 소프트웨어의 이용자 및 납품처에 대한 SBOM의 공유 방법을 검토한 다음, 필요에 따라서 SBOM을 공유한다.

      

 

 

SBOM 운용

관리

SBOM에 기반한 취약성 관리, 라이선스 관리 등 실시

취약성이나 라이선스에 관한 SBOM의 정보를 바탕으로, 적절한 취약성 대응이나 라이선스 관리 대응을 강구한다.

SBOM 정보의 관리

SBOM에 포함되는 정보나 SBOM 정보 자체를 적절하게 관리한다.

 

 

*README : 액세스하려는 파일의 사용 방법에 관한 정보가 들어있는 텍스트 파일

 

 

 

3. SBOM 도입을 위한 체크리스트

 

 

SBOM 도입 프로세스를 중심으로, 먼저 SBOM 도입에 관한 프로세스가 SBOM도입에 관한 환경 구축・체제 정비 단계, SBOM 작성・공유 단계, SBOM 운용・관리 단계의 나눌 수 있기 때문에 여기서는 SBOM 도입 관련 프로세스의 3가지 단계를 중심으로 점검 항목에 대한 체크리스트를 소개하고자 한다. SBOM을 도입하고자 하는 기업은 도입 프로세스별 점검 항목에 대한 체크리스트를 잘 활용하여 해당 기업에 적합한 SBOM이 도입되었으면 한다.

 

3.1 환경 구축・체제 정비 단계

먼저, ● SBOM 적용 범위의 명확화에서는, 대상 소프트웨어의 개발 언어, 컴포넌트 형태, 개발 도구 등, 대상 소프트웨어에 관한 정보의 명확화, 대상 소프트웨어의 정확한 구성도 작성과, SBOM 적용의 대상의 가시화, 대상 소프트웨어의 이용자 및 공급자와의 계약형태・거래 관행에 대해서 체크하여야 한다. 또한, 대상 소프트웨어의 SBOM에 관한 규제・요구 사항의 확인, SBOM 도입에 관한 조직 내의 제약(비용의 제약 등)의 명확화, SBOM 적용 범위(5W1H)의 명확화, 조달 또는 공급하는 소프트웨어에 대한 거래 상대방과의 SBOM에 관한 요구사항 및 책임 관계의 명확화 여부를 체크하여야 한다.

● SBOM 도구의 선정에서는, 대상 소프트웨어의 개발 언어나 조직 내의 제약을 고려한 SBOM 도구 선정의 관점 정리, 이에 기반한 복수의 SBOM 도구를 평가하여, 선정되도록 해야 한다.

그리고, ● SBOM 도구의 도입・설정​에서는, SBOM 도구의 도입 가능한 환경의 요건 확인, 도구의 취급설명서나 README 파일을 확인하여 SBOM 도구의 도입・설정을 행할 수 있는지 점검하도록 해야 한다.

● SBOM 도구에 관한 학습​에서는, 도구의 취급설명서나 README 파일을 확인하여 SBOM 도구의 사용법을 습득하거나, 도구의 사용법에 관한 노하우나 각 기능의 개요를 기록하여 조직 내에서 공유하는지 점검하는 것이 좋다.

 

3.2 SBOM 작성・공유 단계

● 컴포넌트의 해석에서는, SBOM 도구를 이용한 대상 소프트웨어의 스캔을 행하여 컴포넌트의 정보를 해석하는지, SBOM 도구의 해석 로그 등을 조사하여 에러 발생이나 정보 부족에 의한 해석의 중단이나 생략이 없이 해석이 바르게 실행되었는지를 확인한다. 또한, 컴포넌트의 해석 결과에 대해서 컴포넌트의 오검출이나 검출 유출이 없는 지를 확인하고, 작성하는 SBOM의 항목, 포맷, 출력 파일형식 등의 SBOM에 관한 요건을 결정하는 지 그리고 SBOM 도구를 이용하여, 해당 요건을 만족하는 SBOM을 작성하는지를 점검해야 한다.

● SBOM 작성에 있어서는, 공급망을 통하여 누가, 무엇을, 어디까지 실시하는지에 대해서 명확하게 하여 거래자 간에 합의하였는지, SBOM의 공유 대상 소프트웨어의 이용자 및 납입처에 대한 SBOM의 공유 방법을 검토한 다음 필요에 따라서 SBOM을 공유하는 지 여부를 점검하는 것이 좋다.

● SBOM의 공유에 있어서, SBOM 데이터의 변경 방지를 위한 전자 서명 기술 등의 활용을 검토하였는지를 점검하도록 한다.

 

3.3 SBOM 운용・관리 단계

● SBOM에 기반한 취약성 관리, 라이선스 관리 등의 실시​에 있어서, 취약성에 관한 SBOM 도구의 출력 결과를 바탕으로, 심각도의 평가, 영향도의 평가, 취약성의 수정, 잔존 리스크의 확인, 관계 기관에 대한 정보 제공 등의 취약성 대응을 행하는 지 점검하도록 하는 것이 좋다.

취약성 대응 거부의 간이한 필터링, 취약성의 사고 유무, Exploit 코드의 공개 유무, VEX(Vulnerability Exploitability Exchange)* 정보의 활용, CVSS(Common Vulnerablility Scoring System)* 스코어 등에 기반한 비용 대비 효과를 고려하여 취약성 우선을 고려하는 지를 점검하는 것도 좋을 것이다.

*VEX(Vulnerability Exploitability Exchange) : 소프트웨어 취약점의 실제 악용 가능성(Exploitability)을 표준화된 방식으로 문서화해 공유하는 프레임워크. 특정 취약점이 특정 제품이나 시스템에서 실제로 악용 가능한지 여부를 전달하는 정보 교환 형식. 취약점이 존재하더라도 해당 제품의 사용 방식이나 구성에 따라 실제 위험이 없을 경우 이를 명시하는 데 사용

*CVSS (Common Vulnerability Scoring System) : 소프트웨어 취약점의 심각도를 0.0에서 10.0까지의 수치로 평가하는 국제 표준 점수 체계. 취약점의 공격 용이성, 영향 범위, 필요한 권한 등을 종합적으로 평가하여 점수를 산출

취약성 정보의 공유에 있어서, 취약성 대응의 우선시에 필요하게 되는 부가 정보 등 공유 정보의 특정, 공급망상의 공유 상대방의 특정, 공유 수단의 특정을 행하여, 필요성에 따른 정보 공유를 행하는 것도 좋은 점검이 될 것이다.

취약성 대응에 있어서는, 취약성의 수정을 수반하지 않는 초동 대응과, 취약성의 수정을 수반하는 근본 대응에 대해서 실시하는 지 그리고 라이선스에 관한 SBOM 도구의 출력 결과를 바탕으로 OSS의 라이선스 위반이 발생하고 있지 않는지를 확인하도록 하는 것이 좋을 것이다.

마지막으로 ● SBOM 정보의 관리에서는, 작성한 SBOM은 사외로부터의 문의가 있는 경우 등에 참고할 수 있도록 변경 이력도 포함하여 일정 기간 보관하는지 여부를 점검하도록 하며, SBOM에 포함되는 정보나 SBOM 자체를 적절하게 관리하는지도 점검하도록 해야 한다.

 

 

 

 

4. 맺음말

 

 

각 기업이 SBOM을 도입하고자 할 때, 본 자료에서 설명한 도입 프로세스를 참조하여 자신의 기업에 적합한 유형의 도입 프로세스를 만들고 이에 따른 점검 항목들을 설정하여 도입 체크리스트를 만들어 도입하는 것이 바람직할 것으로 생각된다. 본 자료에서 소개한 SBOM 도입 프로세스와 도입 체크리스트들은 일반적으로 참고가 될만한 자료에 불과하므로, 개발, 이용, 컴플라이언스, 관리 등의 면에서 자신의 기업에 맞는 환경을 고려하여 보다 세밀하고 적합한 SBOM 도입 프로세스와 도입 체크리스트들이 만들어져, 각 기업의 소프트웨어 관리 등에 도움이 되는 SBOM이 도입되기를 기대해 본다.

 

 

 

 

 

blog_cta_1_2_compressed_1762222578.png

 

 

 

Cyberdigm float banner image
arrow_upward_alt