SBOM 시각화 - SBOM 검토를 위한 대안적 접근법

2024-10-29, SBOM Visualization – An Alternative Approach to Reviewing SBOMs

source: https://openchainproject.org/news/2024/10/29/webinar-sbom-visualization

목차

  1. 소개
  2. SBOM의 중요성과 과제
  3. SBOM 시각화 도구 소개
  4. 시각화 요소 및 기능
  5. Chromium 프로젝트 사례 분석
  6. Q&A 세션
  7. 결론

1. 소개

발표자 소개

이번 웨비나의 발표자는 Bitsea GmbH의 창립자이자 CEO인 Andreas Kotulla 박사입니다. Andreas 박사는 소프트웨어 시스템 감사와 기업의 숨겨진 위험 식별 분야의 전문가입니다. 그는 기술 실사를 지원하고 주요 기반 시설(KRITIS) 운영자들에게 조언을 제공합니다. 또한 오픈소스 전략, 거버넌스, 프로세스, 툴체인에 대해 고객들에게 자문을 제공하며, 오픈소스 프로그램 오피스(OSPO) 및 스캐닝 관리 서비스를 제공합니다.

웨비나 소개와 목적

이 웨비나는 OpenChain Project 웨비나 시리즈의 일환으로 진행되었습니다. 이번 세션에서는 Software Build of Materials(SBOM)의 시각화에 대해 다룹니다. SBOM은 계층 구조, 연결, 수정, 수출 제한, 보안 취약점, 배포 유형, 버전 등 다차원적인 정보를 포함하고 있습니다. 이러한 복잡한 정보를 빠르고 이해하기 쉬운 방식으로 표시하기 위해 메타 정보의 시각화를 구현한 방법에 대해 논의합니다. 이 연구 프로젝트는 독일 연방 경제기후보호부(BMWi)의 지원을 받아 Bonn-Rhein-Sieg University of Applied Sciences와 Bitsea가 공동으로 수행했습니다.

2. SBOM의 중요성과 과제

오늘날 소프트웨어 개발에서 오픈소스는 필수적인 요소가 되었습니다. 2012년경에는 일반적인 프로젝트에서 약 200개의 오픈소스 컴포넌트를 사용했지만, 최근에는 그 수가 3,000개 이상으로 증가했습니다. 이러한 증가는 패키지 관리자의 발전, 작은 컴포넌트들의 사용 증가, 새로운 생태계(npm, Ruby gems, pip 등)의 등장 등 여러 요인에 기인합니다.

이렇게 많은 컴포넌트를 관리하는 것은 매우 복잡한 작업입니다. 라이선스 의무, 보안 취약점, 수출 제한, 운영 위험 등 다양한 측면을 고려해야 합니다. 기존의 리스트 형태의 SBOM으로는 이러한 복잡성을 효과적으로 관리하기 어렵습니다.

3. SBOM 시각화 도구 소개

이러한 문제를 해결하기 위해 SBOM 시각화 도구가 개발되었습니다. 이 도구는 SBOM의 복잡한 정보를 직관적이고 이해하기 쉬운 그래픽으로 표현합니다. 마치 지리적 요소를 보여주는 지도처럼, SBOM 시각화는 소프트웨어의 다양한 컴포넌트와 그들 간의 관계, 특성을 보여줍니다.

시각화의 장점

  1. 빠른 개요 및 명확성: 소프트웨어 컴포넌트와 의존성을 시각적으로 표현하여 전체 구조를 직관적으로 이해할 수 있습니다.
  2. 간단한 탐색: 개발자와 프로젝트 관리자가 컴포넌트 간의 연결을 인식하고, 잠재적 약점을 식별하며, 변경의 영향을 이해하는 데 도움을 줍니다.
  3. 의존성 식별: 컴포넌트 간의 의존 관계, 잠재적 병목 현상이나 위험, 소프트웨어의 중요 부분을 쉽게 파악할 수 있습니다.
  4. 커뮤니케이션 및 협력 강화: 팀 전체가 동일한 SBOM 뷰를 공유함으로써 의사소통이 개선됩니다.
  5. 명확한 계획 수립: SBOM의 그래픽 표현은 소프트웨어 환경을 상세하고 포괄적으로 보여주는 지도 역할을 합니다.

4. 시각화 요소 및 기능

SBOM 시각화 도구는 다양한 시각적 요소를 사용하여 복잡한 정보를 표현합니다:

컴포넌트 표현

  • 기본 형태: 컴포넌트는 이름과 제목이 있는 직사각형으로 표시됩니다.
  • 스니펫 표시: 전체 컴포넌트가 아닌 일부만 사용된 경우, 직사각형의 일부가 잘린 형태로 표시됩니다.

라이선스 정보

  • 색상 스키마: 신호등 체계를 사용하여 라이선스 의무를 표시합니다.
    • 빨간색: 카피레프트 라이선스 (강한 카피레프트는 진한 빨간색, 약한 카피레프트는 연한 빨간색)
    • 노란색: 특별한 특징이 있는 라이선스, 상업적 라이선스, 수정된 라이선스 등
    • 초록색: 허용적 라이선스

보안 취약점

  • 빨간색 정지 표지판: 알려진 보안 취약점이 있는 경우 표시됩니다.
  • 숫자 표시: 알려진 취약점의 수를 표시합니다.

기타 정보

  • 수출 제한: 느낌표가 있는 주의 표지로 표시
  • 수정 여부: 작은 펜 아이콘으로 표시
  • 법적 승인 여부: 파란색 물음표로 표시
  • 특허 영향: 망치 아이콘으로 표시
  • 운영 위험: 별 모양의 느낌표로 표시
  • AI 생성 코드: 상단의 파란색 막대로 표시

의존성 표현

  • 정적 링킹: 실선으로 연결
  • 동적 링킹: 점선으로 연결
  • Linux 시스템 콜: 노란색 느낌표로 표시

추가 정보

팝업 메뉴를 통해 소프트웨어 이름, 계층 구조, 라이선스 유형, 전체 라이선스 텍스트, URL, 취약점 목록, 영향을 받는 파일, 저작권 정보 등 추가 정보를 제공합니다.

5. Chromium 프로젝트 사례 분석

발표자는 Google Chromium 프로젝트를 예로 들어 SBOM 시각화 도구의 실제 적용을 보여주었습니다. Chromium은 매우 큰 프로젝트로, 수많은 컴포넌트로 구성되어 있습니다.

시각화 예시

  • 전체 뷰: 처음에는 매우 복잡해 보이지만, 필터링과 검색, 확대/축소 기능을 통해 쉽게 탐색할 수 있습니다.
  • 확대 뷰: 개별 컴포넌트, 라이선스, 의존성 등을 자세히 볼 수 있습니다.
  • 디렉토리 뷰: 컴포넌트의 계층 구조를 더 쉽게 이해할 수 있습니다.

필터링 및 시뮬레이션 기능

  • 검색 필터: 특정 라이선스, 이름, 특성 등으로 컴포넌트를 검색할 수 있습니다.
  • 보안 취약점 필터: 보안 취약점이 있는 컴포넌트만 표시할 수 있습니다.
  • 카피레프트 라이선스 필터: 카피레프트 라이선스를 사용하는 컴포넌트만 표시할 수 있습니다.
  • 라이선스 영향 시뮬레이션: 특정 라이선스의 영향을 받는 컴포넌트를 시각적으로 확인할 수 있습니다.
  • 라이선스 비호환성 시뮬레이션: 호환되지 않는 라이선스 간의 충돌을 식별할 수 있습니다.

6. Q&A 세션

Q: 이 도구를 직접 테스트해볼 수 있나요? A: 현재 도구는 오픈소스로 공개되지 않았지만, 11월이나 12월경에 공개할 예정입니다. 그 전에 테스트해보고 싶으신 분들은 개인적으로 연락 주시면 도와드리겠습니다.

Q: AI로 생성된 코드를 어떻게 식별하나요? A: 현재로서는 자동으로 식별하는 메커니즘은 없습니다. 이 정보가 제공되면 표시할 수 있습니다.

Q: 특허 영향은 어떻게 정의되나요? A: Apache 라이선스와 같이 특허에 대한 조항이 있는 라이선스를 사용할 때 특허 영향이 있다고 표시합니다. 사용자가 직접 설정할 수도 있습니다.

Q: SPDX나 CycloneDX와 같은 표준 SBOM 형식에서 어떤 정보를 추출하나요? A: 시각화에 표시된 모든 정보와 팝업에 표시되는 추가 정보를 추출합니다. 일부 정보는 다른 도구를 통해 얻어야 할 수도 있습니다.

Q: 라이선스 분류는 어떻게 이루어지나요? A: 기본적인 분류를 제공하지만, 사용자가 직접 설정할 수 있습니다. 예를 들어, AGPL이나 GPL은 강한 카피레프트로, 다른 공개 라이선스는 약한 카피레프트로 분류합니다.

Q: 현재 데이터베이스에는 몇 개의 라이선스가 분석되어 있나요? A: 약 1,000개의 다른 라이선스가 데이터베이스에 있습니다.

7. 결론

SBOM 시각화 도구는 복잡한 소프트웨어 구성을 쉽게 이해하고 관리할 수 있게 해줍니다. 이는 마치 최신 내비게이션 시스템처럼 SBOM의 복잡한 “거리와 동네"를 탐색하는 데 도움을 줍니다. 이 도구의 주요 장점은 복잡한 정보를 명확하고 포괄적으로 제시하며, 상호작용이 가능하다는 것입니다.

소프트웨어 환경을 쉽게 탐색할 수 있게 해주며, 잠재적 위험을 빠르게 식별할 수 있습니다. 특히 내부 사용, SaaS, 제품 배포 등 다양한 사용 모델에 따라 오픈소스 사용의 영향이 다를 수 있는데, 이 도구를 통해 각 상황에 맞는 위험을 쉽게 파악할 수 있습니다.

이 SBOM 시각화 도구는 오픈소스로 공개될 예정이며, 향후 유럽 사이버 복원력 법(Cyber Resilience Act)에 대응하기 위한 프로젝트의 일부로 포함될 예정입니다.

최종 수정 2024년 12일 18월: update webinar (025fcbdd9)