상세 컨텐츠

본문 제목

Syft로 SBOM 생성하기

카테고리 없음

by ~지우~ 2024. 7. 5. 13:44

본문

728x90

Syft란

컨테이너 이미지와 파일시스템으로부터 SBOM을 생성하는 CLI도구이다. 소프트웨어의 패키지 및 종속성에 대한 상세한 가시성을 제공하여 취약성, 라이센스 준수 및 소프트웨어 공급망 보안을 관리하는 데 도움이 된다.

 

아래의 링크를 통해 syft 설치가 가능하다.

https://github.com/anchore/syft

 

GitHub - anchore/syft: CLI tool and library for generating a Software Bill of Materials from container images and filesystems

CLI tool and library for generating a Software Bill of Materials from container images and filesystems - anchore/syft

github.com

 

 

 

<Syft의 주요 기능>

1)    SBOM 생성

2)    여러 이미지 형식 지원

3)    리눅스 배포판 식별

4)    Grype와의 통합

5)    서명된 SBOM 증명

6)    SBOM 형식 변환

 

Usage:

syft [SOURCE] [flags]

syft [command]

 

Examples:

syft <image>

è SBOM 컨테이너 이미지 생성

syft <image> --scope all-layers

è SBOM의 모든 이미지 계층의 소프트웨어 포함

 

alpine을 이용하여 scan명령어를 수행해보았다. 

syft scan alpine:latest

-> 발견된 packages 요약

syft scan alpine:latest -o json

-> 모든 cataloging 세부 정보

syft scan alpine:latest -o cyclonedx

-> cycloneDX 형태의 SBOM

syft scan alpine:latest -o cyclonedx-json

-> cycloneDX JSON형태의 SBOM

syft scan alpine:latest -o spdx

-> SPDX 2.3 Tag-Value 형태 SBOM

syft scan alpine:latest -o spdx@2.2

-> SPDX 2.2 Tag-Value 형태 SBOM

syft scan alpine:latest -o spdx-json

-> SPDX 2.3 JSON 형태 SBOM

syft scan alpine:latest -o spdx-json@2.2

-> SPDX 2.2 JSON 형태 SBOM

syft scan alpine:latest -vv

-> verbose debug 정보

syft scan alpine:latest -o template -t my_format.tmpl

-> 주어진 파일에 따라 SBOM 형식 생성

syft scan docker:alpine:latest

-> docker daemon 이용

syft scan podman:alpine:latest

-> podman daemon 이용

syft scan registry:alpine:latest

-> registry로부터 직접 이미지 읽기(container runtime 불필요)

syft scan docker-archive:path/to/yourimage.tar

-> “docker save”에서 만들어진 아카이브를 위해 tarball사용

syft scan oci-archive:path/to/yourimage.tar

-> OCI 아카이브를 위해 tarball사용

syft scan oci-dir:path/to/yourimage

-> OCI layout directory에서 바로 읽기

syft scan singular:path/to/yourimage.sif

-> SIF container에서 바로 읽기

syft scan dir:path/to/yourproject

-> 디스크의 경로에서 바로 읽기(any directory)

syft scan file:path/to/yourproject/file

-> 디스크의 경로에서 바로 읽기(any single file)

Flags Descriptions
-o, --output stringArray 보고서 출력 형식
-vv, --verbose count 디버그
-t, --template string 이동 템플릿 파일의 경로 지정

 

 

Commands:

<Attest>

-> SBOM을 주어진 container image의 증명으로써 생성

<Cataloger>

syft cataloger list

-> 모든 catalogers configuration 리스트 생성

<Completion>

syft completion bash

-> bash을 위한 autocompletion script 생성

syft completion fish

-> fish을 위한 autocompletion script 생성

syft completion powershell

-> powershell을 위한 autocompletion script 생성

syft completion zsh

-> zsh을 위한 autocompletion script 생성

<Config>

syft config

-> syft configuration

<Convert>

syft convert img.syft.json -o spdx-json

-> syft SBOM spdx-json으로 바꾸고 결과는 stdout으로 전환

syft convert img.syft.json -o cyclonedx-json=img.cdx.json

-> syft SBOM CycloneDX로 바꾸고 결과는 “img.cdx.json”파일에 저장

syft convert -o spdx-json

-> STDIN SBOM spdx-json으로 전환

<Help>

syft help

-> 모든 명령어에 대한 설명

<Login>

-> Registry에 로그인

<Scan>

syft scan busybox:latest -o spdx-json

-> SBOM 생성

<Version>

syft version

-> syft 버전

 

 

<장점>

1)    설치와 사용이 쉽다.

2)    소프트웨어의 패키지 및 종속성에 대한 상세한 가시성을 제공하여 취약성, 라이센스 준수 및 소프트웨어 공급망 보안을 관리하는 데 도움이 된다.

<단점>

1)    데이터 품질 저하 문제가 있다.

2)    전환 종속성이 없다.

728x90

댓글 영역