SBOM(Software Bill of Materials)을 생성하기 위한 분석 도구들은 분석 방식에 따라 크게 4가지 유형으로 나뉩니다.

각 유형은 입력 자료와 분석 목적에 따라 선택되며, 장단점이 있습니다.


SBOM 분석 도구의 주요 유형

1. 메타데이터 기반 분석 (Manifest 기반)

  • 설명: package.json, pom.xml, requirements.txt, Package.swift 등의 패키지 매니저 파일을 분석

  • 입력 데이터: 프로젝트의 의존성 정의 파일 (manifest)

  • 장점:

    • 빠르고 가볍다

    • 의존성 구조 파악에 적합

  • 단점:

    • 실제 사용된 라이브러리와 다를 수 있음

    • 패키지 매니저 지원 여부에 따라 제한

  • 대표 도구:


2. 정적 분석 기반 (Source Code 분석)

  • 설명: 소스 코드, 디렉토리 이름, 주석, license 파일 등을 스캔해 라이선스 및 구성 요소 파악

  • 입력 데이터: 전체 소스 코드

  • 장점:

    • 바이너리/패키지 매니저가 없어도 분석 가능

    • 오픈소스 컴포넌트 식별 및 라이선스 컴플라이언스에 유리

  • 단점:

    • 정확도 떨어질 수 있음 (패턴 매칭 기반)

    • 실행 파일/라이브러리 식별에는 부족

  • 대표 도구:


3. 동적 분석 기반 (실행 환경 추적)

  • 설명: 소프트웨어 실행 중 로딩되는 라이브러리, 의존성 추적 (런타임 분석)

  • 입력 데이터: 실행 가능한 소프트웨어 환경

  • 장점:

    • 실제 사용되는 의존성만 추적 가능

    • 운영환경 기반 분석에 유리

  • 단점:

    • 실행 가능한 환경 필요

    • 자동화가 어렵고 분석 비용 큼

  • 대표 도구:

    • strace, lsof (Linux 기반 도구)

    • 자체 스크립트 또는 상용 솔루션 활용


4. 바이너리 분석 기반

  • 설명: 컴파일된 바이너리 파일에서 문자열, 심볼, 라이브러리 정보 추출

  • 입력 데이터: .exe, .so, .dll, .dylib 등 바이너리 파일

  • 장점:

    • 소스 없이도 SBOM 생성 가능

    • 상용 제품의 보안 분석 및 감사에 적합

  • 단점:

    • 정보가 제한적이고 정확도 낮을 수 있음

    • 오픈소스 식별은 제한적

  • 대표 도구:

    • Binwalk

    • [Syft](binary 모드)

    • [Black Duck](상용, 바이너리 분석 포함)


정리 표

유형 주요 입력 대표 도구 장점 단점
메타데이터 기반 패키지 매니저 파일 Syft, FOSSLight Dep 빠름, 정확 매니페스트 누락 시 불가
정적 분석 기반 소스 코드 FOSSLight Source, ScanCode 오픈소스 식별, 라이선스 확인 정확도 낮을 수 있음
동적 분석 기반 실행 중인 앱 strace, lsof 실제 사용 의존성 추적 복잡, 자동화 어려움
바이너리 분석 실행 파일 Syft, Binwalk 소스 없어도 분석 가능 정보 제한적

 

원하시면 특정 환경(macOS 앱, Java, Python 등)에 맞는 추천 도구 조합도 안내드릴게요.

번호 제목 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의 황제낙엽 2025.04.10 21564
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의 황제낙엽 2024.02.02 20404
146 SPDX 2.3, 계속 써도 되나요? — 3.0으로 넘어갈 때를 판단하는 실무 기준 황제낙엽 2026.08.11 54
145 같은 OSS 지만 여러 버전을 등록해야 하는 경우 황제낙엽 2026.04.24 1972
144 [FOSSLight Dependency Scanner] Android Project 의 Dependency Scan 을 위한 Android SDK 설치와 설정 황제낙엽 2026.04.23 1843
143 FOSSLight Hub 의 REST API 이용 (v2) 황제낙엽 2026.03.19 2500
142 [FOSSLight/검토용] 개발그룹의 sbom-info.yaml 분석 및 피드백 절차 황제낙엽 2026.03.16 1982
141 [FOSSLight/관리용] Project Identification 진행에서 최종 SBOM SPDX 문서 추출 황제낙엽 2026.02.09 1916
140 [FOSSLight] 'Download Location' 컬럼 값에 'Different from DB' 라는 푸른색 메세지가 출력 file 황제낙엽 2026.02.06 3612
139 [FOSSLight] Project Identification 진행시의 신규 OSS 등록 처리 방법 황제낙엽 2026.02.06 3750
138 [FOSSLight Hub] License 정보를 직접 등록시 필요한 항목 목록 황제낙엽 2026.02.06 3579
137 [FOSSLight Hub] Open Source 정보를 직접 등록시 필요한 항목 목록 황제낙엽 2026.02.06 3352
136 [OSS] Microsoft.Web.WebView2 황제낙엽 2026.02.06 3351
135 [FOSSLight] fosslight 프로젝트의 'Pre-Review' > 'Open Source' 팝업창의 세 버튼에 대한 용도 황제낙엽 2026.02.06 3572
134 [FOSSLight/검토용] prechecker convert 결과 Hub 등록후 Identification 처리 file 황제낙엽 2026.02.05 3289
133 python venv 설치, fosslight source scanner , binary scanner 설치, 버전 확인 황제낙엽 2026.02.02 3507
132 SPDX 템플릿 다운로드 및 온라인 변환기 황제낙엽 2026.01.22 3869
131 SBOM(Software Bill of Materials) 및 소프트웨어 공급망 보안 관련 주요 정부 기관 및 단체 황제낙엽 2026.01.22 3605
130 [FOSSLight] online guide link 황제낙엽 2026.01.14 1844
129 identification 에서 출력하는 warning, error 메세지 황제낙엽 2025.12.29 1427
128 sbom-info.yaml 을 이용한 dependency scan excel 작성 file 황제낙엽 2025.12.29 3578
127 binary scan 결과물에 대해 취약점이 없는데 왜 SBOM에 넣어야 하나? 황제낙엽 2025.12.17 3484