JSON 형식으로 기본 SBOM 생성 및 표시
이 단계에서는 Docker 이미지에 대한 기본 SBOM (Software Bill of Materials, 소프트웨어 자재 명세) 을 생성하고 JSON 형식으로 표시하는 방법을 배우겠습니다. SBOM 은 소프트웨어 구성 요소를 구성하는 재료의 공식 목록입니다. 이는 소프트웨어의 포장 목록과 같아서 사용된 모든 타사 구성 요소, 라이브러리 및 종속성을 자세히 설명합니다. SBOM 을 생성하는 것은 소프트웨어의 보안 상태 및 라이선스 준수를 이해하는 데 매우 중요합니다.
syft 도구를 사용하여 SBOM 을 생성합니다. syft는 컨테이너 이미지 및 파일 시스템에서 SBOM 을 생성하기 위한 명령줄 도구 및 라이브러리입니다.
먼저, 이 데모에 사용할 간단한 Docker 이미지를 가져오겠습니다. 가벼운 Linux 배포판인 alpine:latest 이미지를 사용합니다.
docker pull alpine:latest
이미지가 가져와지고 다운로드되고 있음을 나타내는 출력을 볼 수 있습니다.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
이제 이미지가 있으므로 SBOM 을 생성할 수 있습니다. 이미지 이름과 함께 syft 명령을 사용하고 출력 형식을 JSON 으로 지정합니다.
syft alpine:latest -o json
이 명령은 alpine:latest 이미지를 분석하고 SBOM 을 JSON 형식으로 터미널에 직접 출력합니다. 출력은 이미지에서 발견된 패키지에 대한 정보 (이름, 버전, 라이선스 및 유형 포함) 를 포함하는 큰 JSON 객체입니다.
출력을 스크롤하여 SBOM 에 나열된 다양한 구성 요소를 볼 수 있습니다. 이 기본 JSON 출력은 이미지 내의 소프트웨어 구성 요소에 대한 포괄적인 보기를 제공합니다.