SBOM을 올바르게 관리하는 방법

최근 소프트웨어 공급망에 대한 공격이 증가한 이후 SBOM(Software Bill of Materials) 생성은 팀이 소프트웨어를 안전하게 구축하고 배송하기 위해 완료해야 하는 핵심 개발 단계가 되었습니다. SBOM 소프트웨어 제품에 사용되는 모든 소프트웨어 구성 요소를 자세히 설명하는 포괄적인 목록입니다. SBOM 보안의 목적은 소프트웨어 공급망 내에서 투명성과 추적성을 보장하여 조직이 잠재적인 보안 취약성과 규정 준수 위험을 식별하고 수정할 수 있도록 하는 것입니다.

그러나 SBOM을 생성하고 관리하는 것은 특히 대규모 소프트웨어 포트폴리오를 보유한 조직의 경우 복잡한 일입니다. 제품에 사용되는 모든 소프트웨어 구성 요소를 식별하고 모든 업데이트와 패치를 추적하는 동시에 정확성을 보장하려면 체계적인 접근 방식이 필요합니다.

이 기사에서는 SBOM을 효과적으로 관리하기 위한 모범 사례와 전략, SBOM 관리와 관련된 과제, 소프트웨어 공급망을 안전하게 유지하기 위해 이 프로세스를 단순화하는 방법에 대해 설명합니다.

SBOM 관리란 무엇입니까?

소프트웨어 BOM을 작성하는 것은 소프트웨어 보안을 유지하는 과정의 첫 번째 단계일 뿐입니다. 그러나 소프트웨어 구성 요소 목록을 만드는 것만으로는 충분하지 않습니다. SBOM을 추적, 검증, 편집 및 관리해야 합니다. 이렇게 하면 소프트웨어의 구성 요소를 인식할 수 있을 뿐만 아니라 개별 구성 요소의 모든 위험과 소프트웨어에 미치는 영향을 실제로 이해하게 됩니다.

SBOM 관리는 DevOps 파이프라인 전체에서 생성되는 소프트웨어 BOM을 추적하는 프로세스입니다. SBOM 관리에는 SBOM 문서 생성, 저장, 분석 및 모니터링이 포함됩니다. 앱 라이프사이클 전반에 걸쳐 이러한 SBOM 관리 작업을 완료하면 소프트웨어 종속성을 식별하고 공급망 보안을 향상하는 데 도움이 됩니다.

SBOM은 생성된 빌드 디렉터리 내에서 휴면 상태로 남아 있으면 아무 소용이 없습니다. SBOM 관리는 이 데이터를 활용하여 실행 가능한 통찰력을 생성하고 소프트웨어 패키지의 오픈 소스 구성 요소와 소프트웨어 공급망에 미치는 영향을 더 잘 이해할 수 있도록 도와줍니다. 취약점 검색 및 보고도 SBOM 관리의 한 측면입니다.

따라서 소프트웨어 BOM을 생성하는 것은 DevOps 프로세스의 중요한 부분이지만 SBOM 관리의 지속적인 프로세스는 더욱 중요합니다. 이를 통해 취약성 완화 시스템, 제로 트러스트 정책 및 장기적인 소프트웨어 공급망 인텔리전스를 완벽하게 활용하고 구현할 수 있습니다.

SBOM 관리에 대한 통찰력

공급망 전반에 걸쳐 다양한 소프트웨어에 대한 위협이 증가함에 따라 Gartner는 소프트웨어를 핵심 인프라로 사용하는 조직의 최대 60%가 향후 몇 년 내에 SBOM 사용을 의무화하기 시작할 것으로 예측합니다. 이는 다음과 같습니다. SBOM에 대한 Gartner의 2022년 혁신 통찰력 보고서 이는 SBOM 관리 프로그램 구현의 중요성에 대한 중요한 정보를 제공합니다.

이 보고서는 소프트웨어 공급망에 사용되는 코드의 가시성, 무결성, 투명성 및 보안을 개선하기 위한 SBOM 사이버 보안의 중요성을 인식하고 있습니다. 소프트웨어의 구성 요소를 알지 못하면 이 소프트웨어의 위험과 취약점의 정도를 이해하기 어렵습니다. 가장 좋은 솔루션은 단순히 애플리케이션의 모든 소프트웨어를 추적하고 알려진 취약점 데이터베이스와 비교하여 안전한지 확인하는 것입니다.

Gartner 보고서에 따르면 모든 조직은 자신이 구축하는 모든 소프트웨어 패키지에 대해 SBOM을 생성하는 데 투자해야 합니다. 다음으로, 사용하는 모든 소프트웨어의 SBOM을 확인해야 합니다. 또한 앱이 배포된 후에도 새로운 보안 위험을 이해하기 위해 데이터를 재평가할 수 있도록 지속적인 SBOM 관리가 필요합니다.

효과적인 소프트웨어 BOM 관리를 위한 전략

조직은 SBOM 관리의 우선순위를 지정하여 구축하거나 사용하는 소프트웨어의 보안 및 규정 준수를 보장할 수 있습니다. 다음은 조직의 소프트웨어 BOM을 효과적으로 관리하기 위한 몇 가지 전략입니다. 

SBOM 생성 자동화

소프트웨어를 반복할 때마다 소프트웨어 BOM을 작성해야 합니다. 그러나 개발자가 각 빌드에 대해 수동으로 SBOM을 생성해야 한다면 이를 달성하는 데 어려움을 겪게 됩니다. 이는 이유 SBOM 생성 소프트웨어 제공 파이프라인에 구축되어야 합니다. 자동화를 통해 NTIA(National Telecommunications and Information Administration)에서 권장하는 SBOM 생성을 위한 "기계 속도"를 달성할 수 있습니다. 

SBOM 자동화 또한 SBOM 문서의 무결성과 신뢰성을 높입니다. 개발 파이프라인 내에서 생성된 자동화된 SBOM은 암호화 방식으로 서명되어 SBOM의 소프트웨어 구성 요소 목록이 정품임을 사용자에게 증명할 수 있습니다.

구조화된 서식

소프트웨어 자재 명세서 관리에 표시되는 모든 데이터는 표준 형식을 기반으로 구성되어야 합니다. 그 밖에도 여러 가지 형식이 있지만 가장 널리 사용되는 세 가지 형식은 SPDX, SWID 및 CycloneDX입니다. 공식적인 SBOM 권장 사항이나 일반화된 업계 표준이 없기 때문에 각 조직은 자신에게 가장 적합한 형식을 선택할 수 있습니다. 여기서 가장 중요한 요소는 선택한 SBOM 형식에 관계없이 일관성입니다.

SaaS용 SBOM 제공

소프트웨어에 대한 사이버 보안 조치를 구현할 때 조직은 종종 클라우드나 온프레미스에 배포하는 앱이나 소프트웨어에 집중하는 반면 사용하는 SaaS 앱은 무시합니다.

그러나 이러한 SaaS(Software as a Service) 앱에 대한 SBOM을 제공하는 것도 권장됩니다. SaaS 모델의 고객은 소프트웨어 업데이트나 새 릴리스를 관리할 필요가 없습니다. 그러나 취약성으로 인해 고객의 SaaS 애플리케이션이 손상된 경우 애플리케이션에 대한 SBOM을 제공하면 자체 사이버 보안 조치에도 기여할 수 있는 조기 경고 역할을 할 수 있습니다. 

각 릴리스에 대한 정기 업데이트

가장 효과적이려면 SBOM이 버전별로 달라야 합니다. 개발자는 애플리케이션에 대한 업데이트를 출시할 때마다 SBOM을 수정해야 합니다. 개발자는 릴리스 간에 수동으로 업데이트하기가 어렵기 때문에 SBOM을 한 번 만들고 자주 업그레이드하는 함정에 빠지기 쉽습니다. 회사는 소프트웨어의 새 버전이 출시될 때마다 소프트웨어 자재 명세서 관리가 즉시 업데이트되도록 해야 합니다. SBOM 생성 자동화가 중요한 또 다른 이유는 업데이트를 릴리스할 때마다 SBOM의 업데이트된 버전을 더 쉽게 생성할 수 있기 때문입니다.

명확한 커뮤니케이션 채널 구축

SBOM 관리에는 어떤 방식으로든 소프트웨어 제품에 연결된 여러 이해관계자가 참여합니다. 여기에는 소프트웨어 공급업체, 개발팀, 고객 등이 포함됩니다. 효과적인 SBOM 관리를 보장하는 방법 중 하나는 이러한 이해관계자 간에 명확한 의사소통 채널을 구축하는 것입니다. 이를 통해 모든 사람이 제품의 소프트웨어 구성 요소에 대한 새로운 정보에 액세스하고 필요에 따라 업데이트를 구현할 수 있습니다.

메타데이터 포함

SBOM 문서에 포함할 메타데이터(라이센스 데이터 및 패치 상태와 같은 추가 정보)의 양은 사용하는 형식에 따라 다릅니다. 일부 형식은 기본적으로 다른 형식보다 더 많은 메타데이터를 지원할 수 있지만 개발자는 가능한 한 많은 메타데이터를 SBOM에 추가하는 것을 우선시해야 합니다. 이러한 추가 정보를 통해 사용자는 필요할 때마다 이러한 정보를 수동으로 조회할 필요가 없으므로 SBOM 관리가 더 쉬워집니다. 또한 메타데이터를 사용하면 보안 결함이 발표될 때마다 제품의 취약한 구성 요소를 더 쉽게 식별하고 업데이트할 수 있습니다.

SBOM 관리 과제

SBOM이 널리 채택되었음에도 불구하고 SBOM 관리의 여러 측면은 사용자에게 여전히 어려운 과제로 남아 있습니다. 아마도 가장 큰 과제는 업계 전반에 걸쳐 SBOM 형식의 표준화가 부족하다는 점일 것입니다. SBOM 생성 및 공유에 대해 동일한 표준을 준수하면 모든 사람에게 최고의 가치가 보장되지만 합의가 이루어지기까지는 시간이 걸릴 것입니다.

또 다른 과제는 SBOM을 최신 상태로 유지해야 한다는 것입니다. 대부분의 조직에서 만든 소프트웨어는 동적입니다. 이는 업데이트가 주기적으로 릴리스되고 새 구성 요소가 추가됨을 의미합니다. 관련성을 유지하고 안전하게 사용하려면 소프트웨어의 새 릴리스가 나올 때마다 소프트웨어 BOM을 업데이트해야 합니다. 모든 조직은 소프트웨어가 새로 릴리스될 때마다 새로운 SBOM을 보다 원활하게 릴리스할 수 있도록 SBOM 생성 및 관리 도구에 대한 계획을 세워야 합니다.

그리고 SBOM 내에 부정확성이나 누락이 발생할 위험이 있으며, 이로 인해 취약점 및 규정 준수 문제가 발생할 수 있습니다. 일부 SBOM 생성 도구는 개발자가 소스 코드에 포함시킨 원시 코드나 바이너리를 문서화하지 못합니다. 이러한 방식으로 생성된 SBOM은 잘못된 완전성을 만들어 안전하지 않게 만듭니다. 보안과 투명성을 위해 SBOM은 매우 상세해야 하며 가능한 한 많은 구성 요소를 나열하고 이러한 구성 요소 간의 관계를 표시하는 계층적 정보를 최적으로 제공해야 합니다.

마지막으로, SBOM 자체에는 잠재적인 보안 취약점을 포함하여 개발 프로세스 중에 사용되는 소프트웨어 구성 요소에 대한 민감한 정보가 포함되어 있으므로 보안을 관리할 위험이 있습니다. 따라서 조직은 SBOM을 무단 액세스 또는 공개로부터 보호하기 위한 조치를 취해야 합니다.

요약 

마무리하려면, 소프트웨어 제품을 만들거나 사용하는 모든 조직에서 소프트웨어 BOM을 적절하게 관리하는 것이 중요하다는 점을 강조하는 것이 중요합니다. SBOM을 생성하는 것 외에도 효과적인 SBOM 관리 관행을 구현하면 회사가 소프트웨어 제품을 안전하게 유지하고 관련 규정을 준수하는 데 도움이 됩니다.

효과적인 SBOM 관리 프레임워크의 주요 구성 요소에는 소프트웨어 구성 요소의 포괄적인 인벤토리 유지, 정기적인 업데이트 예약, 필요에 따른 위험 평가 수행, SBOM 생성 및 관리 자동화가 포함됩니다.

이러한 모범 사례를 준수함으로써 조직은 소프트웨어 공급망에 대해 훨씬 더 깊이 이해하여 보안 침해 위험을 최소화하고 기타 잠재적인 문제를 방지할 수 있습니다. 궁극적으로 효과적인 SBOM 관리는 고객과 모든 이해관계자의 요구 사항을 충족하는 안전하고 안정적인 소프트웨어 제품을 구축하는 데 도움이 됩니다.