소프트웨어 공급망 보안을 위한 SBOM은 무엇이고, 어떻게 생성하고 관리해야 할까요?
스패로우가 궁금증을 해결해드립니다. 📣
모든 소프트웨어는 외부 라이브러리와 오픈소스 컴포넌트를 사용하고 있습니다. 이는 개발 효율성을 높이고 비용을 절감할 수 있지만, 동시에 보안 위험도 높아집니다. 타사 컴포넌트에 알려지지 않은 취약점이 존재할 수 있고, 라이선스 위반 등의 법적 이슈도 발생할 수 있기 때문입니다.
최근 SolarWinds, Kaseya, Log4Shell 등 대규모 소프트웨어 공급망 공격 사례가 발생했습니다. 올해 3월 말에는 유닉스 계열 운영체제에서 널리 사용되는 압축 유틸리티인 XZ utils에서 백도어로 사용될 수 있는 취약점이 발견되기도 했습니다. 해당 취약점은 다행히 주요 리눅스 배포판에 합쳐지기 이전에 발견되었으나, 여전히 소프트웨어 공급망 공격 결과가 광범위하게 영향을 끼칠 수 있음을 확인했습니다.
소프트웨어 개발 생명 주기인 SDLC(Software Development Life Cycle)에서 공급망 보안을 지키기 위해서는 먼저 사용 중인 오픈소스와 라이브러리를 지속적으로 분석하고 관리해야 합니다. SCA(Software Composition Analysis)와 SBOM(Software Bill of Materials)은 이를 위한 핵심 도구입니다.
먼저, SBOM은 소프트웨어 자재 명세서입니다. 소프트웨어에 포함된 모든 컴포넌트 및 관련 정보 목록을 의미합니다. 여기에는 오픈소스 라이브러리, 프레임워크 등의 상세 버전 정보와 해시값, 라이선스, 보고된 취약점 등의 메타데이터가 포함됩니다. 조직 내 구성원뿐 아니라 수요업체, 공급업체와도 이 정보를 공유하여 체계적으로 관리할 수 있습니다.
2021년 미국의 행정명령(EO 14028)은 미국 NTIA는 SBOM의 생성과 활용에 아래 세 가지 항목을 필수 요소로 설계하였습니다.
SCA는 SBOM 생성을 자동화하고, 알려진 취약점 및 라이선스 위반 여부 등을 진단하는 도구입니다. 개발 초기부터 최종 빌드까지 지속적으로 소프트웨어를 분석하여 위험을 제거하고 법적 이슈를 방지할 수 있습니다.
SCA는 개발 중인 소스 코드나 의존성 파일(dependency), 또는 패키지 바이너리 자체를 분석하고 포함된 오픈 소스 컴포넌트 정보를 자동으로 식별합니다. 자동화된 과정을 통해 식별하기 때문에 더욱 편리하고 신속하게 컴포넌트 목록을 관리할 수 있습니다.
오픈소스 컴포넌트에서 보안 취약점이 보고된 경우 이를 자동으로 검출합니다. 사용자는 취약점 정보를 바탕으로 취약점이 패치된 버전으로 업데이트하는 등 다양한 조치를 취할 수 있습니다.
또는 조직의 라이선스 정책에 따라 사용할 수 없는 오픈소스 라이선스가 사용된 경우에도 이를 자동으로 식별하고 사용자에게 안내하고 있습니다.
SCA를 통해 소프트웨어 내 알려진 취약점을 제거하고 잠재적 공격 벡터를 최소화할 수 있습니다. 외부에서 유입되는 새로운 취약점에 대해서도 지속적인 모니터링을 통해 선제적으로 대응할 수 있습니다.
SBOM을 활용하면 소프트웨어 전체에 대한 가시성을 확보할 수 있습니다. 이로써 취약점 영향 범위를 정확히 파악하고 우선순위를 두어 체계적인 패치 관리가 가능해집니다.
이미 대다수 소프트웨어는 수동으로 관리하기 어려울 만큼 많은 오픈소스 소프트웨어가 포함되어 있는 경우가 많아 어떤 소프트웨어가 사용되는지를 식별하는 데만 수많은 시간이 소요될 수 있습니다.
SCA와 SBOM는 자동화된 생성 관리 체계를 수립할 수 있습니다. CI/CD 파이프라인과 같이 개발 및 배포 프로세스에 SCA를 통합하면 지속적인 분석을 통해 이슈를 초기에 발견하고 수정할 수 있어 보안 취약점으로 인한 시간 비용을 절감할 수 있습니다.
도구의 자동 식별로 조직 내/외가 신속하고 투명하게 정보를 공유하고 추적성을 보장할 수 있습니다. 취약점이 사용된 오픈소스를 발견했을 때 영향받는 소프트웨어나 모듈을 신속히 파악하고 대응 계획을 세울 수 있습니다.
SBOM과 SCA는 국제 정부 기관과 대기업에서 이미 적극적인 활용을 추진하고 있습니다. 미국 NIST에서는 SBOM 관련 표준을 제정하고, MS, Google, IBM 등 주요 기업도 소프트웨어 공급망 보안에 힘쓰고 있습니다. 미국 식품의약국(FDA)나 EU 의회에서도 최근 기기의 사이버 보안을 보장하기 위한 증명 자료로서 SBOM을 제출하는 규정을 반영하고 있습니다.
국내에서도 국가정보원과 과학기술정보통신부가 SW공급망 보안을 위해 SBOM 활용한 ICT 공급망 보안 가이드라인을 발표할 예정입니다.
SBOM을 통해 고객사, 공급업체, 조직 구성원 등과 소프트웨어 정보를 투명하게 공유할 수 있습니다. 이를 기반으로 관련 이해관계자와 위험을 공동 관리하고 협력할 수 있습니다. SBOM 활용 프로세스로 제품 및 서비스에 대한 보안 신뢰도를 높일 수 있습니다.
SBOM은 문제 발생 시 신속한 원인 분석과 개선에도 도움이 됩니다. 추적성이 보장되므로 취약점 존재 시기와 경로를 파악하여 재발 방지를 위한 프로세스 개선에 활용할 수 있습니다.
단순히 수요자의 요구 뿐만 아니라, 안전성과 신뢰성을 확보하기 위해서도 SBOM의 생성과 관리는 필수 요소가 되었습니다.