“소프트웨어-1”… 공급망 공격 벡터와 SBOM 구성

소프트웨어 생명주기 세부적인 SBOM 구성요소 이용한 적용방안 수립 제도적 측면의 국가 차원의 SBOM 적용 법제화 및 안전한 소프트웨어 생태계 구축을 위해 C-SCRM, SSDF 등 보안 가이드 마련 필요

2023-07-24     김맹근 기자
사진 : pixabay

[디지털비즈온 김맹근 기자] 소프트웨어 비즈니스 생태계의 변화는 개발 환경에도 영향을 미쳤다. 많은 소프트웨어 개발 기업이 독립적인 서비스 단위의 상호 연계가 가능한 API 기반의 마이크로 서비스 아키텍처(Micro Service Architecture: MSA)를 추구하면서 CI/CD(Continuous Integration/ Continuous Delivery)와 DevOps 환경을 통한 개발 생산성 향상 및 유연성 확대를 도모하고 있다.

하지만 모호한 서비스 경계나 소프트웨어 복잡도 증가로 인한 소프트웨어 공급망의 투명성 저하로 인해 오픈소스 라이선스 추적이나 컴포넌트의 관리가 가능한 SBOM의 필요성이 제기되는 상황이다.

소프트웨어 공급망 보안 위험을 간단하게 정리하면, 개발자가 생성한 소스코드가 빌드되어 사용자에게 배포되는 과정에서 무결성(integrity)을 저해하는 공격 벡터로 인해 발생하게 된다. 개발자 측면에서는 잘못된 코드 제출(submit bad code)이나 코드 수정(modify code), 잘못된 패키지 사용(use bad package)이 피해를 유발하며, 환경적인 측면에서는 SCM 및 CI/CD, Package Repository 등의 잘못된 설정이나 구성으로 공격 벡터에 악용된다.

SBOM(Software Bill of Materials) 구성 요소소프트웨어 공급망의 보안 강화를 위해서는 소프트웨어 생명주기 관점에서 세부적인 SBOM의 구성 요소를 이용한 적용 방안 수립이 필요하다. NIST(National Institute of Standards and Technology)에서는 “소프트웨어 공급망 보안 지침”(Software Supply Chain Security Guidance)을 통해 소프트웨어 생명주기별 SBOM 적용 방안을 공개했다.

계획, 절차, 개발, 빌드, 테스트, 릴리즈, 설치, 구성, 유지 관리의 사이클에 따라 소프트웨어 요구사항 및 소프트웨어 명세, 소프트웨어 배포 시 필요한 정보 목록 등을 제시하고 있다. 소프트웨어 공급업체 측면에서는 소프트웨어 생명주기를 통해 배포되는 소프트웨어 패키지의 메타정보를 기계적 형태로 자동화된 운영이 가능한 SBOM 환경을 구성해야 한다.

사용자 측면에서도 소프트웨어 설치 및 구성, 유지관리 영역에서는 소프트웨어 공급업체에서 제공한 SBOM 정보를 토대로 지속적인 소프트웨어의 변경사항을 반영한 SBOM의 관리 및 모니터링을 수행해야 한다.

SBOM의 세부 구성 요소를 선정할 때는 SBOM을 통한 구성 요소의 식별이나 계층적 의존관계를 분석하는 데 직접적인 영향을 미칠 수 있는 컴포넌트 해시나 생명주기 단계의 체계화, 기타 구성 요소와의 관계, 라이선스 정보 등은 되도록 포함하여 구성해야 한다.

SBOM 구성 요소를 기계적인 형태로 자동화하여 관리하기 위해서는 표준 SBOM 데이터 포맷인 SPDX(Software Package Data Exchange), SWID(Software Identification), CycloneDX를 사용할 수 있다.

SBOM 구성 요소를 기계적인 형태로 자동화하여 관리하기 위해서는 표준 SBOM 데이터 포맷인 SPDX(Software Package Data Exchange), SWID(Software Identification), CycloneDX를 사용할 수 있다.

SBOM 데이터 포맷을 통해 자동화된 공급망 위험 식별 및 관리를 위해서는 Microsoft의 SBOM Tool, devops-kung-fu의 BOMBER, Dependency-Track의 Dependency-Track, CycloneDX의 CycloneDX Maven Plugin, Kubernetes bom, SPDX SBOM Generator 등의 도구를 활용할 수 있다.

결론적으로 제도적 측면에서 보면 국가 차원의 SBOM 적용 법제화 및 안전한 소프트웨어 생태계 구축을 위해 C-SCRM(Cybersecurity Supply Chain Risk Management), SSDF(Secure Software Development Framework) 등 보안 가이드를 마련하였다. 실무적 측면에서는 소프트웨어 공급망 보안위험의 파급력과 영향도가 높은 산업군을 중심으로 실증사례를 통해 모범사례를 확보하고 향후 수행 과제를 도출하여 실용화를 도모하고 있다.