2026년 하루 평균 보고된 CVE가 전년 대비 131% 증가했습니다.

비교

CRACI와 Chainguard

Chainguard는 컨테이너 이미지, 언어 라이브러리, GitHub Actions 등 빌드에 들어가는 것을 강화합니다. CRACI는 빌드 자체를 보호하고 기록합니다. 한쪽은 입력을 깨끗하게 하고, 다른 한쪽은 그 입력에 무슨 일이 있었는지 기록합니다.

업데이트

요약

Chainguard는 오픈 소스 소프트웨어를 소스에서 빌드해 강화된 상태로 제공합니다. 알려진 취약점이 거의 또는 전혀 없는 최소 컨테이너 이미지, 재빌드된 언어 라이브러리, VM 이미지, 강화된 GitHub Actions를 제공하며, 각각에 서명된 SBOM과 출처 증명이 함께 제공됩니다. 시작점이 되는 베이스 이미지와 패키지에 CVE가 너무 많은 것이 문제라면, Chainguard가 바로 그 문제를 해결합니다.

CRACI는 GitHub Actions용 CI 러너입니다. 작업이 CRACI에서 실행되고, 실행 중에 작업이 가져오는 모든 외부 종속성을 기록하며, 이그레스 정책을 적용합니다. Chainguard는 입력을 보호합니다. CRACI는 빌드를 보호하고 기록합니다. 겹치는 부분이 거의 없으며, 두 도구는 자연스럽게 함께 쓰입니다.

한눈에 보기

기능 CRACI Chainguard
빌드 실행 작업이 CRACI 러너에서 실행 빌드가 사용하는 이미지와 라이브러리를 공급
빌드가 가져온 항목 기록 CI 캐시의 패키지를 포함해 관찰된 가져오기 SBOM은 Chainguard 자체 아티팩트를 설명
빌드 네트워크 이그레스 정책 기본 거부 또는 허용, 실패 시 차단 범위 밖: 빌드를 실행하지 않음
SBOM 고객 아티팩트용, 빌드별, 완전성 명시 모든 컨테이너 이미지에 서명된 SPDX SBOM
서명된 출처 증명 서명된 출처 증명 없음 이미지와 라이브러리에 SLSA 출처 증명
취약점 추적 모니터링 중인 SBOM 재평가 Chainguard 아티팩트에 대한 권고와 재빌드
강화된 최소 컨테이너 이미지 제로 CVE, 소스에서 빌드한 이미지 카탈로그
소스에서 재빌드한 라이브러리 Java, Python, JavaScript
CVE 수정 SLA 치명적 7일, 기타 심각도 14일
강화된 GitHub Actions 소스에서 빌드한 Chainguard Actions
요금 vCPU 분당 $0.002(2 vCPU 기준 $0.004), 초 단위 측정, 월 요금 없음, SBOM당 요금 없음 컨테이너 이미지 최대 5개 무료, 카탈로그는 10명 팀 기준 $19K부터, 이미지별 요금은 견적(2026년 9월 기준).
  • 포함
  • 미포함

Chainguard의 강점

Chainguard 홈페이지
chainguard.dev

Chainguard Containers는 Chainguard의 표현을 빌리면 제로 CVE, 소스에서 빌드한 컨테이너 이미지 카탈로그입니다. 모든 이미지에는 SPDX 형식의 서명된 SBOM 증명과 빌드 환경을 설명하는 SLSA 1.0 출처 증명이 함께 제공되며, 모두 cosign으로 검증할 수 있습니다. 고객은 최신 빌드에서 CycloneDX SBOM도 받을 수 있습니다.

CVE 정책은 구체적입니다. 주문 고객에 대해 Chainguard는 이미지의 지원 버전 스트림을 대상으로, 해당 패치가 공개된 날로부터 치명적 CVE는 7일(역일) 이내, 높음, 중간, 낮음 CVE는 14일(역일) 이내에 수정하기로 약속합니다.

Chainguard Libraries는 언어 패키지에 같은 접근 방식을 적용합니다. 사전 빌드된 아티팩트를 내려받는 대신 검증된 소스에서 재빌드한 Java, Python, JavaScript 종속성 카탈로그로, JFrog Artifactory, Sonatype Nexus Repository, Cloudsmith에 업스트림으로 제공됩니다. 각 패키지에는 Sigstore 서명, 서명된 SBOM, SLSA Level 3 출처 증명이 포함됩니다. Chainguard Actions는 소스에서 빌드하고 지속적으로 스캔하는 인기 GitHub Actions의 강화 버전을 제공하며, Chainguard VMs는 이 모델을 가상 머신 이미지에 적용합니다.

CRACI는 강화된 이미지나 라이브러리를 만들지 않으며, 가져오는 어떤 것의 CVE 수에 대해서도 약속하지 않습니다. 그것은 Chainguard의 역할입니다.

CRACI가 다른 점

Chainguard의 빌드가 아니라 귀사의 빌드를 지켜봅니다

Chainguard의 SBOM과 출처 증명은 Chainguard의 팩토리에서 빌드된 Chainguard의 아티팩트를 설명합니다. 귀사의 빌드는 여전히 어딘가에서 실행되며, 베이스 이미지 외에도 자체 종속성, 툴체인, 설치 스크립트가 가져오는 도구, 워크플로 단계가 내려받는 모든 것을 가져옵니다. CRACI는 이를 기록합니다. 러너의 패키지를 인식하는 프록시가 npm, PyPI, RubyGems, Composer, Cargo, Go, Nix, OCI, apt, apk, Git 소스에 걸쳐 패키지 소스로 가는 트래픽을 관찰합니다. 증거는 CI 캐시와 함께 전달되며, 각 SBOM은 작업별, 캐시별 완전성을 Complete, Complete with connections, Incomplete, Unavailable, Not recorded 중 하나로 명시합니다.

빌드가 접근할 수 있는 대상을 제한합니다

강화된 입력은 빌드가 실제로 그것을 사용할 때만 도움이 됩니다. CRACI의 이그레스 정책은 기본 거부 또는 기본 허용이며, 24개의 기본 제공 소프트웨어 소스 프리셋과 OCI 레지스트리, Git을 포함한 레지스트리용 유형별 사용자 지정 소스를 지원합니다. 정책은 작업 시작 전에 검증되고 실패 시 차단됩니다. Chainguard 레지스트리와 아티팩트 리포지토리만 허용하고 그 밖의 대상은 거의 허용하지 않는 정책을 쓰면, "우리는 Chainguard를 사용한다"는 관례가 러너가 강제하는 규칙이 됩니다.

출시한 소프트웨어를 계속 지켜봅니다

API는 SBOM, 네트워크 추적, 출처 증명을 반환합니다. CRACI는 모니터링 중인 SBOM을 새로운 취약점에 대해 계속 재평가합니다. SBOM은 취약점을 포함해 CycloneDX 또는 SPDX로 내보낼 수 있습니다.

어디에 무엇이 배포되어 있는지 보여 주는 인벤토리

CRACI의 인벤토리 뷰는 어떤 소프트웨어 버전이 어떤 제품에 배포되어 있는지 전 세계 범위로 정확히 보여 줍니다. 새로운 취약점이 공개되면 릴리스 노트와 스프레드시트를 짜 맞추는 대신, 영향을 받는 버전을 실행하는 제품을 바로 확인할 수 있습니다.

함께 사용하기

일반적인 구성은 다음과 같습니다.

  • Chainguard가 베이스 이미지를, 그리고 아티팩트 리포지토리를 통해 재빌드된 라이브러리를 공급합니다.
  • CRACI가 그 위에서 빌드하는 GitHub Actions 작업을 승인된 소스만 허용하는 이그레스 정책과 함께 실행하고, 각 작업이 가져온 항목을 기록합니다.

OCI는 CRACI가 탐지하는 생태계 중 하나이고, CRACI는 npm 및 PyPI용 JFrog Artifactory 미러와 함께 작동하므로, 그 경로로 들어오는 이미지와 Python 또는 JavaScript 패키지도 빌드 기록에 포함됩니다. Java용 Chainguard Libraries를 다루는 Maven 지원은 로드맵에 있습니다.

어느 쪽이 맞을까

  • 스캐너가 베이스 이미지의 CVE를 계속 표시하는 경우: Chainguard가 그 이미지를 강화된 이미지로 교체합니다.
  • 각 릴리스에 무엇이 들어갔는지 증거가 필요한 경우: CRACI가 빌드에서 이를 기록합니다.
  • 빌드가 승인된 소스에만 접근하게 하려는 경우: CRACI의 이그레스 정책이 러너에서 이를 강제합니다.
  • 깨끗한 입력과 기록된 빌드를 모두 원하는 경우: 위와 같이 함께 사용하세요.

Cyber Resilience Act 대응

알려진 취약점이 적은 구성 요소, 문서화된 수정 SLA, 서명된 SBOM에서 출발하면 제조사의 취약점 처리가 쉬워집니다. Chainguard는 그 부분에서 도움이 됩니다. CRACI는 기업이 더 넓은 CRA 컴플라이언스 프로세스에 필요로 하는 소프트웨어 공급망 가시성과 증거, 즉 각 릴리스에 무엇이 들어갔는지와 지속적인 취약점 추적의 상당 부분을 자동화합니다. 어느 쪽도 그것만으로 제품이 규정을 준수하게 해 주지는 않습니다. CRA란 무엇인가와 CRA 컴플라이언스를 참고하세요.

Chainguard 구성에 CRACI 추가하기

CRACI GitHub App을 설치한 뒤, 기록하려는 워크플로에서 runs-on을 craci로 바꿉니다. Dockerfile과 패키지 구성은 그대로 둡니다. CRACI는 현재 GitHub Actions를 지원하며, GitLab CI, Jenkins 및 기타 CI 시스템은 로드맵에 있습니다. 빌드 시점 SBOM 생성과 CI/CD 통합에 대해 더 알아보세요.

깨끗한 입력으로 빌드하고, 그것을 증명하세요

Chainguard 이미지를 사용하는 GitHub Actions 워크플로 하나를 CRACI 러너에서 실행하고, 남는 기록을 확인해 보세요.

데모 예약