스캔 결과 정정/제외 설정 방법 (sbom-info.yaml)
스캔 결과 중 정정(Correction)이 필요하거나 특정 파일/디렉토리를 결과에서 제외(Exclude)하고 싶은 경우, sbom-info.yaml 파일을 작성하여 활용할 수 있습니다.
ℹ️ 지원 Scanner: FOSSLight Scanner, FOSSLight Source Scanner, FOSSLight Binary Scanner (FOSSLight Dependency Scanner에는 적용되지 않습니다.)
동작 방식
스캐너는 스캔 결과의 각 항목에 대해 source path를 기준으로 sbom-info.yaml에 동일한 source name or path가 작성된 항목이 있는지 확인합니다.
일치하는 항목이 존재할 경우, 스캔 결과 대신 sbom-info.yaml에 작성된 OSS 정보(name, version, license 등)를 우선 적용합니다.
사용 방법
- 검사하려는 프로젝트의 최상위(Top) 디렉토리에
sbom-info.yaml파일을 생성합니다. - 아래의 양식과 필드 설명을 참고하여, 정정 또는 제외하고자 하는 오픈소스 및 파일 정보를 작성합니다.
- 스캐너 실행 시, 디폴트로
sbom-info.yaml의 내용이 스캔 결과에 자동으로 반영됩니다.
옵션 설명
-
--no_correction: 이 옵션을 추가하여 실행하면, 작업 디렉토리에sbom-info.yaml파일이 존재하더라도 정정된 내용을 스캔 결과에 반영하지 않습니다. -
--correct_fpath [PATH]: 기본 스캔 위치의 최상위(Top) 디렉토리가 아닌 다른 위치의 설정 파일(예:[PATH]/sbom-info.yaml)을 사용하여 스캔 결과를 정정하고자 할 때 파일이 위치한 경로를 명시합니다.
sbom-info.yaml 작성 예시
libidn: # 오픈소스인 경우
- version: "1.5"
source name or path:
- "src/libidn/*"
- "b.c"
license:
- "GPL-3.0"
- "LGPL-2.1"
download location: "http://ftp.gnu.org/gnu/libidn"
homepage: "https://www.gnu.org/software/libidn"
copyright text: "Copyright 2002-2007, Simon Josefsson"
rsync: # 동일한 패키지의 여러 버전을 사용하는 경우
- version: "2.6.9"
source name or path: "test/tool"
license: "GPL-2.0"
download location: "https://download.samba.org/pub/rsync/src"
homepage: "http://rsync.samba.org"
- version: "3.1.2"
source name or path: "test/tool_new"
license: "GPL-3.0"
download location: "https://download.samba.org/pub/rsync/src"
homepage: "http://rsync.samba.org"
copyright text:
- "Copyright 1996 Andrew Tridgell"
- "Copyright 1996 Paul Mackerras"
- "Copyright 2003-2015 Wayne Davison"
'-': # 디렉토리의 모든 파일을 LG전자에서 자체 개발한 경우
- version: ''
license: LicenseRef-LGE-Proprietary
copyright text: Copyright 2026 LG Electronics Inc.
source name or path:
- "src/lge/*"
'-': # 특정 경로를 스캔 결과에서 제외하는 경우
- version: ''
exclude: True
source name or path:
- "build/*"
- "test/*"
sbom-info.yaml 필드 상세 설명
sbom-info.yaml 작성 시 사용 가능한 필드는 다음과 같습니다.
1. Package Name (Header paragraph)
- Required (필수): Package Name(OSS Name)을 키(Key) 값으로 기입합니다.
- 패키지 명이 없는 자체 개발 코드 같은 경우
'-'로 기입합니다.
2. Version paragraph
| Field | Required / Optional | Value Type | Description / Example |
|---|---|---|---|
| version | Required | String | 패키지 버전. 버전이 없는 경우 빈 문자열('')을 기입합니다.ex) version: "2.8"
|
| source name or path | Optional | String | Array of String | 정정 또는 제외할 대상 파일이나 경로를 명시합니다. ex) source name or path: "src/*"ex) - "main.c"- "main.h"
|
| license | Optional | String | Array of String | 적용 라이선스를 기입합니다. ex) license: "Apache-2.0"ex) - "GPL-2.0"- "LGPL-2.1"
|
| download location | Optional | String | 해당 오픈소스를 다운로드할 수 있는 URL을 기입합니다. ex) download location: "https://ftp.gnu.org/gnu/glibc"
|
| homepage | Optional | String | 오픈소스 프로젝트의 홈페이지 URL을 기입합니다. ex) homepage: "http://google.com"
|
| copyright text | Optional | String | 패키지와 연관된 저작권 문구를 기입합니다. ex) copyright text: "Copyright 2020 Test"여러 줄 입력 시 YAML의 \| 문법을 사용할 수 있습니다. |
| exclude | Optional | Boolean | 스캔 결과 산출물 포함 여부 (ex. 빌드 스크립트 등 출력물에서 제외 시 True).ex) exclude: True
|
| comment | Optional | String | 부가적인 코멘트를 기입합니다. ex) comment: "This is the build tool"
|