SBOM Syft 설치 및 실행 (at Windows 11)

황제낙엽 2025.06.23 10:52 조회 수 : 2748

Syft는 컨테이너 이미지 및 파일 시스템의 소프트웨어 자재 명세서(SBOM)를 생성하는 강력하고 사용하기 쉬운 오픈소스 도구입니다. 

소프트웨어의 패키지 및 종속성에 대한 자세한 정보를 제공하여 취약점 관리, 라이선스 준수 및 소프트웨어 공급망 보안을 지원합니다.

 

* 기능

  - binary와 meta file scan, dependency check (SBOM 생성)

  - scan file type : binary, java-archive, swift 등등 github의 Supported Ecosystems 항목 참고 (소스 파일 자체를 스캔하는 것이 아님)

 

* installation

  - wsl2(ubuntu) 실행

  - mkdir syft 

  - cd syft

  - sitelin1 을 참고하여 syft 설치

 

*  run

  - syft 폴더에서 다음과 같이 테스트

  - ./syft /mnt/c/Repositories/[저장소] -o spdx-json@2.2=/mnt/c/Users/Syft/[저장소].sbom.spdx@2.2.json

  - 자세한 사용 명령은 sitelink2 참고

 

* ./syft --help 출력 결과


Generate a packaged-based Software Bill Of Materials (SBOM) from container images and filesystems

 

Usage:

  syft [SOURCE] [flags]

  syft [command]

 

Examples:

  syft scan alpine:latest                                a summary of discovered packages

  syft scan alpine:latest -o json                        show all possible cataloging details

  syft scan alpine:latest -o cyclonedx                   show a CycloneDX formatted SBOM

  syft scan alpine:latest -o cyclonedx-json              show a CycloneDX JSON formatted SBOM

  syft scan alpine:latest -o spdx                        show a SPDX 2.3 Tag-Value formatted SBOM

  syft scan alpine:latest -o spdx@2.2                    show a SPDX 2.2 Tag-Value formatted SBOM

  syft scan alpine:latest -o spdx-json                   show a SPDX 2.3 JSON formatted SBOM

  syft scan alpine:latest -o spdx-json@2.2               show a SPDX 2.2 JSON formatted SBOM

  syft scan alpine:latest -vv                            show verbose debug information

  syft scan alpine:latest -o template -t my_format.tmpl  show a SBOM formatted according to given template file

 

  Supports the following image sources:

    syft scan yourrepo/yourimage:tag     defaults to using images from a Docker daemon. If Docker is not present, the image is pulled directly from the registry.

    syft scan path/to/a/file/or/dir      a Docker tar, OCI tar, OCI directory, SIF container, or generic filesystem directory

 

  You can also explicitly specify the scheme to use:

    syft scan docker:yourrepo/yourimage:tag            explicitly use the Docker daemon

    syft scan podman:yourrepo/yourimage:tag            explicitly use the Podman daemon

    syft scan registry:yourrepo/yourimage:tag          pull image directly from a registry (no container runtime required)

    syft scan docker-archive:path/to/yourimage.tar     use a tarball from disk for archives created from "docker save"

    syft scan oci-archive:path/to/yourimage.tar        use a tarball from disk for OCI archives (from Skopeo or otherwise)

    syft scan oci-dir:path/to/yourimage                read directly from a path on disk for OCI layout directories (from Skopeo or otherwise)

    syft scan singularity:path/to/yourimage.sif        read directly from a Singularity Image Format (SIF) container on disk

    syft scan dir:path/to/yourproject                  read directly from a path on disk (any directory)

    syft scan file:path/to/yourproject/file            read directly from a path on disk (any single file)

 

 

Available Commands:

  attest      Generate an SBOM as an attestation for the given [SOURCE] container image

  cataloger   Show available catalogers and configuration

  completion  Generate the autocompletion script for the specified shell

  config      show the syft configuration

  convert     Convert between SBOM formats

  help        Help about any command

  login       Log in to a registry

  scan        Generate an SBOM

  version     show version information

 

Flags:

      --base-path string                          base directory for scanning, no links will be followed above this directory, and all paths will be reported relative to this directory

  -c, --config stringArray                        syft configuration file(s) to use

      --enrich stringArray                        enable package data enrichment from local and online sources (options: all, golang, java, javascript)

      --exclude stringArray                       exclude paths from being scanned using a glob expression

      --file string                               file to write the default report output to (default is STDOUT) (DEPRECATED: use: --output FORMAT=PATH)

      --from stringArray                          specify the source behavior to use (e.g. docker, registry, oci-dir, ...)

  -h, --help                                      help for syft

  -o, --output stringArray                        report output format (<format>=<file> to output to a file), formats=[cyclonedx-json cyclonedx-xml github-json purls spdx-json spdx-tag-value syft-json syft-table syft-text template] (default [syft-table])

      --override-default-catalogers stringArray   set the base set of catalogers to use (defaults to 'image' or 'directory' depending on the scan source)

      --parallelism int                           number of cataloger workers to run in parallel

      --platform string                           an optional platform specifier for container image sources (e.g. 'linux/arm64', 'linux/arm64/v8', 'arm64', 'linux')

      --profile stringArray                       configuration profiles to use

  -q, --quiet                                     suppress all logging output

  -s, --scope string                              selection of layers to catalog, options=[squashed all-layers deep-squashed] (default "squashed")

      --select-catalogers stringArray             add, remove, and filter the catalogers to be used

      --source-name string                        set the name of the target being analyzed

      --source-version string                     set the version of the target being analyzed

  -t, --template string                           specify the path to a Go template file

  -v, --verbose count                             increase verbosity (-v = info, -vv = debug)

      --version                                   version for syft

 

Use "syft [command] --help" for more information about a command.

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [계속 추가중] 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 3613
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 3352
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 3870
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