Syft란
컨테이너 이미지와 파일시스템으로부터 SBOM을 생성하는 CLI도구이다. 소프트웨어의 패키지 및 종속성에 대한 상세한 가시성을 제공하여 취약성, 라이센스 준수 및 소프트웨어 공급망 보안을 관리하는 데 도움이 된다.
아래의 링크를 통해 syft 설치가 가능하다.
https://github.com/anchore/syft
<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) 전환 종속성이 없다.
댓글 영역