Docker Scout의 데이터 수집과 저장

Docker Scout의 데이터 수집과 저장

Docker Scout의 이미지 분석은 분석할 컨테이너 이미지에서 메타데이터를 수집하는 방식으로 동작해요. 이 메타데이터는 Docker Scout 플랫폼에 저장돼요.

데이터 전송 (Data transmission)

이 섹션은 Docker Scout가 수집해 플랫폼으로 보내는 데이터를 설명해요.

이미지 메타데이터

Docker Scout는 다음 이미지 메타데이터를 수집해요.

  • 이미지 생성 타임스탬프
  • 이미지 다이제스트 (digest)
  • 이미지가 노출한 포트
  • 환경 변수 이름과 값
  • 이미지 라벨의 이름과 값
  • 이미지 레이어 순서
  • 하드웨어 아키텍처
  • 운영 체제 유형과 버전
  • 레지스트리 URL과 유형

이미지 다이제스트는 이미지가 빌드되어 레지스트리로 push될 때 이미지의 각 레이어에 대해 생성돼요. 이는 레이어 내용의 SHA256 다이제스트예요. Docker Scout가 다이제스트를 만드는 게 아니고, 이미지 매니페스트에서 읽어와요.

다이제스트는 같은 레이어를 공유하는 이미지를 식별하기 위해 사용자의 개인 이미지와 Docker의 공개 이미지 데이터베이스에 대조돼요. 레이어를 가장 많이 공유하는 이미지는 현재 분석 중인 이미지의 베이스 이미지 일치 항목으로 간주돼요.

SBOM 메타데이터

SBOM(소프트웨어 자재 명세서) 메타데이터는 패키지 유형·버전을 취약점 데이터와 매칭해 이미지가 영향받는지 추론하는 데 사용돼요. Docker Scout 플랫폼이 새 CVE나 유출된 시크릿 같은 다른 위험 요소에 대한 정보를 보안 권고에서 받으면, 이 정보를 SBOM과 교차 참조해요. 일치하면 Docker Scout는 Docker Scout 데이터가 표시되는 사용자 인터페이스(예: Docker Scout Dashboard, Docker Desktop)에 결과를 표시해요.

Docker Scout는 다음 SBOM 메타데이터를 수집해요.

  • 패키지 URL (PURL)
  • 패키지 작성자와 설명
  • 라이선스 ID
  • 패키지 이름과 네임스페이스
  • 패키지 스킴과 크기
  • 패키지 유형과 버전
  • 이미지 내 파일 경로
  • 직접 의존성 유형
  • 전체 패키지 수

Docker Scout의 PURL은 purl-spec 스펙을 따라요. 패키지 정보는 OS 수준 프로그램·패키지, maven·npm 같은 애플리케이션 수준 패키지를 포함한 이미지 내용에서 파생돼요.

환경 메타데이터

CLI 통합으로 Docker Scout를 런타임 환경에 통합하면, Docker Scout는 배포에 대해 다음 데이터 포인트를 수집해요.

  • Kubernetes 네임스페이스
  • 워크로드 이름
  • 워크로드 유형 (예: DaemonSet)

로컬 분석 (Local analysis)

개발자 머신에서 로컬로 분석되는 이미지에 대해 Docker Scout는 PURL과 레이어 다이제스트만 전송해요. 이 데이터는 Docker Scout 플랫폼에 영구 저장되지 않고 분석을 실행하는 데만 사용돼요.

출처 (Provenance)

출처 증명(provenance attestation)이 있는 이미지에 대해 Docker Scout는 SBOM 외에 다음 데이터를 저장해요.

  • 재료 (Materials)
  • 베이스 이미지 (Base image)
  • VCS 정보
  • Dockerfile

데이터 저장 (Data storage)

Docker Scout 서비스 제공을 위해 데이터는 다음을 사용해 저장돼요.

  • 미국 동부(US East)에 있는 서버의 AWS(Amazon Web Services)
  • 미국 동부(US East)에 있는 서버의 GCP(Google Cloud Platform)

데이터는 Docker Scout의 핵심 기능을 제공하기 위해 docker.com/legal에 설명된 프로세스에 따라 사용돼요.