각 SBOM은 소프트웨어 개발 라이프사이클의 특정 단계에 생성...해당 단계 SW 상태 반영
[보안뉴스 김영명 기자] 공급망 보안의 위기가 더욱 큰 소용돌이에 빠지고 있다. 이에 대응하기 위해 업계 차원에서는 소프트웨어 자재명세서(Software Bill Of Materials, SBOM)의 최소 기준을 제시하고 있다. 한편 미국 사이버보안 및 인프라 보안국(Cybersecurity and Infrastructure Security Agency, CISA)은 SBOM을 6가지 유형으로 분류하고 있다. 대부분 각 SBOM은 소프트웨어 개발 라이프사이클(SDLC)의 특정 단계에 생성되며, 해당 시점의 소프트웨어 상태를 반영한다.

[이미지=gettyimagesbank]
기본적으로 SBOM은 소프트웨어를 구성하고 있는 다양한 재료의 목록이다. CISA가 SBOM 유형을 분류한 이유는 기업들에게 시점별로 소프트웨어 구성 상태에 대한 더욱 풍부한 정보를 제공하기 위해서다. 또한 CISA의 분류를 통해 어떤 상황에서 어떤 목적으로 어떤 SBOM을 구축할지 판단할 수 있다. 여기에서 ‘소프트웨어’란 완전한 기능을 갖춘 애플리케이션을 지칭하며, SDLC라는 개념을 참고해 CISA가 정의한 6가지 SBOM 유형을 살펴본다.
SBOM의 6가지 유형 정의
SBOM은 크게 설계 SBOM, 소스 SBOM, 빌드 SBOM, 분석 SBOM, 배포 SBOM, 런타임 SBOM 등 6가지로 분류할 수 있다. 이 가운데 어떤 SBOM은 다양한 라이프사이클 단계에서 유용하지만, 또 어떤 SBOM은 한 단계에만 적합할 수 있다. 또한, 특정 SBOM 유형에 포함된 자료는 소프트웨어 라이프사이클 단계나 산업에 따라 다를 수도 있다.
먼저 ‘설계 SBOM’은 아직 존재하지 않는 새로운 소프트웨어 아티팩트가 포함된 소프트웨어 프로젝트 또는 제품을 고안하거나 기획할 때 유효하다. 해당 정보는 설계 사양, RFP(request for proposal) 또는 초기 콘셉트를 바탕으로 하며, 수동으로 구성된다. 설계 SBOM에는 최종 애플리케이션에 포함될 종속성이 누락되는 경우가 많다. 하지만 설계 SBOM을 활용하면 잠재적 문제를 조기에 해결해 작업을 효과적으로 계획할 수 있다는 이점도 존재한다.
두 번째로 ‘소스 SBOM’은 개발 환경에서 제품 아티팩트를 구축할 때 사용한 소스 파일과 종속성으로 구성한 SBOM이다. 통상적으로 소프트웨어 구성분석(Software Composition Analysis, SCA) 도구에서 생성되며 수동으로 설명을 첨부한다. 소스 SBOM은 구성이 완료된 애플리케이션 또는 실행 상태의 애플리케이션에 대한 가시성이 부족하다. 라이프사이클 후반의 종속성이 누락되거나 유효하지 않은 종속성이 포함되는 경우도 있다.
다음으로 ‘빌드 SBOM’은 소스 파일, 종속성, 빌드 구성요소, 단기 빌드 데이터 등으로 빌드 과정에서 생성되는 SBOM이다. 빌드 SBOM은 일반적인 구성 조치에 따라 빌드 단계에 자동으로 생성된다. 빌드 SBOM은 3자 SBOM, 소스 파일, 코드, 빌드 구성요소 등 가용한 모든 요소를 포함하며, 중간 빌드 SBOM과 소스 SBOM을 통합한다.
빌드 SBOM은 소스코드 이외의 종속성까지 포함하기 때문에 배포 항목의 다양한 요소를 정확하게 반영할 수 있다. 해당 단계에서 생성된 SBOM에는 다른 SBOM도 포함되기 때문에 최종 배포 아티팩트 SBOM에 중간 구축 SBOM과 소스 SBOM을 통합할 수 있다. 해당 단계에서 SBOM에 서명을 첨부해 배포의 안전성을 높이는 것도 가능하다. 하지만 다른 빌드 도구와 통합하기 위해서는 별도의 구성이 필요하며, 이러한 구성을 위해서는 빌드 프로세스의 조정이 필요할 수도 있다.
네 번째로 ‘분석 SBOM’은 구축 후에 실행 코드, 패키지, 컨테이너, 가상머신 이미지 등 아티팩트의 분석을 통해 생성된다. 이러한 분석을 위해서는 다양한 분석 방법이 필요하다. 경우에 따라 분석 SBOM은 ‘3자’ SBOM이라고도 부른다. 3자 도구를 활용해 아티팩트를 분석하기 때문이다.
분석 SBOM을 위해서는 자동 바이너리 분석 도구, 또는 수동 바이너리 분석 도구가 필요하다. 소스코드나 구축 시스템에 대한 액세스는 필요하지 않다. 분석 SBOM이 있으면 내부 소프트웨어에 대한 가시성을 확보할 수 있으며, 공급업체 및 소프트웨어 제작업체가 제공한 SBOM을 검증할 수도 있다. 또한 여러 단계에서 다른 SBOM 생성 도구에 숨겨진 종속성을 발견하는 것도 가능하다. 분석 SBOM은 분석 방법과 문맥에 따라 결과가 달라지기 때문에 버전 정보의 오류나 누락이 자주 발생한다는 단점도 있다.
다섯 번째로 ‘배포 SBOM’은 배포 시스템에 존재하는 소프트웨어 목록을 제공한다. 배포 환경 또는 배포 환경 시뮬레이션에서 구성 옵션에 대한 분석과 실행 동작에 대한 검토를 결합한 여러 SBOM을 모아서 배포 SBOM을 생성하기도 한다.
시스템에 설치된 소프트웨어를 수동으로 검토해 배포 SBOM을 구성한다. 배포 SBOM을 구성하기 위해서는 수동 작업이 필요하기 때문에 SBOM에 명시된 정보 및 아티팩트의 구성 정보를 고려한 후에 애플리케이션 동작을 실행해야 한다. 해당 작업은 소프트웨어 제공업체가 가상 환경에서 처리할 수도 있고, 운영자가 실제 환경이나 가상 환경에서 처리할 수도 있다.
배포 SBOM은 소프트웨어가 실제로 어디서 실행되고 있는지 알려주지만, 정확하고 완전한 정보를 획득하기는 어렵다. 또한 액세스할 수 없는 코드에 다수의 종속성이 존재할 수 있다.
마지막으로 ‘런타임 SBOM’은 소프트웨어 실행 시스템을 계측하고 해당 시스템의 구성요소뿐만 아니라, 외부 호출과 동적 구성요소까지 반영해 생성된다. 경우에 따라 런타임 SBOM은 ‘계측형’ SBOM 또는 ‘동적’ SBOM이라고도 부른다. 이는 실행 중인 애플리케이션에 대한 ‘블랙박스’ 테스트를 수행하는 동적 분석 도구를 사용하는 경우가 많기 때문이다.
런타임 SBOM은 노이즈를 걸러내고 종속성의 근원을 분석해 평가를 위한 우선순위를 제시한다. 실행 중인 애플리케이션을 대상으로 이러한 분석을 수행하고 해당 애플리케이션의 모든 기능을 확인하기 위해서는 상당한 비용, 시간, 그리고 테스트가 필요하다. 런타임 SBOM의 안정성과 정확성을 담보하기 위해서는 애플리케이션 아키텍처에 대한 지식을 기반으로 애플리케이션을 면밀하고 심도 있게 분석해야 한다.
업무 환경에 가장 적합한 SBOM은 무엇일까
일반적으로 빌드 SBOM 또는 분석 SBOM을 활용하면 정확성과 효율성 사이의 균형을 잡을 수 있다. SBOM은 소프트웨어의 구성요소를 제시하고 애플리케이션 종속성에서 위험을 식별하기 때문에 구축자의 입장에서나 사용자의 입장에서나 정확성이 매우 중요하다.
소프트웨어 개발자는 대체로 빌드 SBOM을 선호한다. 빌드 SBOM은 SBOM 생성을 자동화할 수 있고, SDLC에 직접 통합해 아티팩트의 라이프사이클 전반에서 정확한 SBOM을 생성할 수 있기 때문이다.
분석 SBOM을 생성하면 고객에게 제공하는 소프트웨어를 더욱 상세하고 정확하게 파악할 수 있다. 고객도 직접 분석 SBOM을 생성해 소스 정보나 빌드 정보에 대한 액세스 없이도 애플리케이션 구성을 정확하게 확인할 수 있다. 즉 개발자와 사용자가 분석 SBOM의 내용을 바탕으로 협업을 수행하고, 필요에 따라 자세한 내용을 논의할 수 있다는 의미가 된다.
또한 빌드 SBOM과 분석 SBOM을 활용하면 업계의 요구사항을 충족할 수도 있다. 빌드 SBOM과 분석 SBOM에는 애플리케이션에 필요한 오픈소스 종속성, 자체 코드, 베이스 이미지, 펌웨어, 운영체제, 3자 라이브러리가 포함돼 있다. 이러한 SBOM은 별도의 도구와 자동 생성 시스템을 활용하기 때문에 SBOM 생성 방식과 생성 시기를 사용자가 지정할 수 있고, 원하는 영역을 선택하고, 포맷을 설정하고, 시간을 변경하는 것도 가능하다.
시놉시스 측은 “빌드 SBOM과 분석 SBOM을 활용해 이제는 민간 영역에서도 명실상부한 SBOM의 표준이 된 미국 전기통신정보청(NTIA)의 최소 요건을 충족하고, 소프트웨어 제작자는 고객의 요구사항을 충족할 수 있다”며 “소프트웨어 사용자는 공급업체에 명확한 요구사항을 제시하고, 소프트웨어 공급망을 효과적으로 관리할 수 있다”고 밝혔다.
[김영명 기자(boan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>