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

비교

CRACI와 Dependabot

Dependabot은 GitHub 팀이 가장 먼저 켜는 공급망 도구인 경우가 많으며, 계속 켜 두어야 합니다. CRACI는 Dependabot이 애초에 보도록 설계되지 않은 것, 즉 빌드가 실제로 한 일을 더합니다.

업데이트

Dependabot은 유지하세요. 다루는 범위는 다음과 같습니다.

Dependabot 홈페이지
github.com

코드가 GitHub에 있다면 이미 Dependabot을 사용하고 있을 가능성이 높습니다. Dependabot은 세 가지 유용한 일을 합니다. Dependabot 알림은 리포지토리의 종속성이 알려진 취약점과 일치할 때 알려 줍니다. 보안 업데이트는 취약한 종속성을 업그레이드하는 풀 리퀘스트를 엽니다. 버전 업데이트는 취약점이 없을 때에도 종속성을 최신 상태로 유지합니다.

이 모든 기능은 리포지토리의 매니페스트와 잠금 파일을 파싱하는 GitHub의 종속성 그래프 위에서 작동합니다. GitHub는 이 그래프를 SPDX SBOM으로 내보낼 수 있습니다. Go, Gradle, Maven 같은 생태계에서는 미리 만들어진 액션으로 빌드 시점에 확인된 종속성을 종속성 제출 API를 통해 제출할 수 있습니다.

적은 노력으로 종속성 패치를 유지하는 데는 Dependabot을 따라가기 어렵고, CRACI는 풀 리퀘스트를 열지 않습니다. CRACI가 더하는 것은 나머지 절반입니다. 각 빌드가 실제로 가져온 항목의 기록을 새로운 취약점에 대해 모니터링하므로, 새 보안 권고가 어떤 출시 빌드에 영향을 미치는지, 어떤 업데이트 풀 리퀘스트를 먼저 머지해야 하는지 알 수 있습니다.

Dependabot이 답하지 못하는 질문

Dependabot은 리포지토리를 중심으로 설계되었습니다. 기본 브랜치를 스캔하고 매니페스트와 잠금 파일에 의존합니다. GitHub 문서도 이 점을 분명히 밝힙니다. 알림이 모든 보안 문제를 잡아낼 수는 없고, 정확한 탐지를 위해 매니페스트와 잠금 파일을 최신 상태로 유지해야 하며, GitHub가 검토한 보안 권고만 알림을 발생시킵니다.

그 결과 보안 또는 컴플라이언스 책임자가 언젠가 받게 될 질문이 남습니다.

  • 릴리스 4.2의 빌드는 어떤 매니페스트에도 없는 도구와 이미지를 포함해 실제로 무엇을 내려받았는가?
  • 빌드가 실행되는 동안 인터넷의 임의 호스트에 접근할 수 있었는가?
  • 고객이 받은 바이너리가 그 빌드에서 나왔다는 것을 입증할 수 있는가?
  • 몇 달 후 감사인에게 그 증거를 제시할 수 있는가?

이 질문에 답하려면 빌드 내부의 관점이 필요하며, CRACI는 바로 그곳에서 실행됩니다.

기능 CRACI Dependabot
빌드 실행 작업이 CRACI 러너에서 실행 빌드가 아닌 리포지토리 데이터를 읽음
빌드에서 기록한 종속성 CI 캐시 복원을 포함해 관찰된 다운로드 매니페스트와 잠금 파일, 그리고 종속성 제출 API
SBOM 내보내기 CycloneDX 및 SPDX, 작업과 캐시별 완전성 종속성 그래프의 SPDX 내보내기
빌드 네트워크 이그레스 정책 기본 거부 또는 허용, 실패 시 차단(fail closed) 범위 밖
취약점 알림 빌드와 리포지토리 전반에서 집계 GitHub가 검토한 보안 권고 기반
새 보안 권고 모니터링 모니터링 중인 SBOM을 지속적으로 재평가 권고가 추가되면 기본 브랜치 알림
업데이트 풀 리퀘스트 생성 보안 업데이트와 버전 업데이트
트리아지와 담당 팀 라우팅 빌드와 리포지토리 전반 리포지토리별 알림
러너 변경 없이 작동 작업이 CRACI에서 실행되어야 함 GitHub 리포지토리에 내장
컴플라이언스 증거 CycloneDX 또는 SPDX 형식의 SBOM, API로 기록 제공, 보고서 내보내기 없음 GitHub의 알림 뷰와 SPDX 내보내기
  • 포함
  • 일부 지원
  • 미포함

CRACI가 더하는 것

빌드 시점 가시성

CRACI는 GitHub Actions와 호환되는 러너입니다. runs-on을 craci로 바꾸면 작업이 CRACI의 격리된 가상 머신에서 실행되며, 실행 내역은 계속 GitHub UI에 표시됩니다. 각 작업 중에 패키지를 인식하는 프록시가 패키지 소스로 가는 트래픽을 기록합니다. 대상은 npm, PyPI, RubyGems, Composer, Cargo, Go, Nix, OCI, apt, apk, Git 소스와 다운로드 프리셋입니다. 종속성 증거가 캐시와 함께 전달되므로, CI 캐시에서 복원된 패키지도 그대로 이어서 기록됩니다.

각 SBOM은 작업과 캐시마다 자신이 얼마나 완전한지를 Complete, Complete with connections, Incomplete, Unavailable, Not recorded 중 하나로 표시합니다. 파싱하는 파일만큼만 정확한 그래프와는 다른 점입니다.

이 차이는 실제로 드러납니다. GitHub의 종속성 그래프 내보내기는 GitHub가 리포지토리에 대해 알고 있는 정보로 만들어지므로, 파일 기반 스캐너가 찾지 못하는 구성 요소를 나열할 수 있고, 빌드한 커밋이 아니라 기본 브랜치를 반영합니다. 그래프가 설계된 목적에 비추어 보면 어느 쪽 동작도 잘못된 것은 아닙니다. 다만 리포지토리 뷰와 빌드 기록이 서로 다르다는 점을 보여 줍니다. (CRACI는 디렉터리를 스캔하는 대신 빌드를 기록하므로 이런 방식으로 비교할 수 없습니다.)

런타임 통제

Dependabot은 취약한 패키지가 매니페스트에 들어온 뒤에 알려 줍니다. 빌드가 무엇에 연결할 수 있는지에는 관여하지 않습니다. CRACI는 빌드를 실행하므로 관여합니다. 이그레스 정책은 기본 거부 또는 기본 허용으로 설정하며, 24개의 내장 소프트웨어 소스 프리셋, npm, PyPI, apt, apk, Go 프록시, Nix, Cargo, OCI 레지스트리, Git용 유형별 사용자 지정 소스, 그리고 명시적인 TLS, TCP, UDP, ICMP 규칙을 제공합니다. 정책은 작업 시작 전에 검증되고, 실패 시 차단(fail closed)되며, 위반 시 알림을 발생시킵니다.

출처 증명

CRACI는 작업이 가져온 항목을 바탕으로 CRACI 러너 안에서 SBOM을 생성합니다. API는 SBOM, 네트워크 추적, 출처 증명을 반환합니다.

컴플라이언스 증거

EU Cyber Resilience Act 같은 규제는 제조사에게 각 제품 릴리스에 무엇이 들어 있는지 파악하고 그 안의 취약점을 처리할 것을 요구합니다. CRACI는 빌드와 리포지토리 전반의 취약점을 집계하고, 새로운 보안 권고가 나올 때마다 모니터링 중인 SBOM을 계속 재평가하며, 취약점을 포함해 SBOM을 CycloneDX 또는 SPDX로 내보냅니다. 기업이 더 넓은 CRA 컴플라이언스 프로세스에 필요한 소프트웨어 공급망 가시성과 증거의 상당 부분을 자동화합니다. CRA란 무엇인가와 CRA 증거에서 자세히 알아보세요.

어디에 무엇이 배포되어 있는지에 대한 인벤토리

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

팀들이 두 도구를 함께 쓰는 방법

  • Dependabot은 기본 브랜치의 종속성 패치를 유지하고, 보안 권고가 발표되면 풀 리퀘스트를 엽니다.
  • CRACI는 GitHub Actions 작업을 실행하고, 각 빌드가 가져온 항목을 기록하며, 빌드가 연결할 수 있는 곳을 제한하고, 각 빌드가 가져온 항목에 새로운 취약점이 있는지 모니터링하며, 릴리스 증거를 보관합니다.

마이그레이션할 것은 없습니다. Dependabot은 리포지토리에서 계속 작동하고, 워크플로는 러너만 달라질 뿐 계속 GitHub Actions에서 실행됩니다.

CRACI는 현재 Dependabot이 있는 바로 그곳, GitHub Actions를 지원합니다. 빌드 시점 SBOM 생성, 취약점 추적, 요금에 대해 알아보세요.

CRACI와 Dependabot: 자주 묻는 질문

각 도구가 다루는 범위, SBOM, 요금, 컴플라이언스

CRACI가 Dependabot을 대체하나요?

아닙니다. Dependabot은 계속 켜 두세요. Dependabot은 리포지토리의 취약한 종속성을 표시하고 이를 업그레이드하는 풀 리퀘스트를 엽니다. CRACI는 GitHub Actions 작업을 실행하고, 각 빌드가 실제로 가져온 항목을 기록하며, 빌드가 연결할 수 있는 곳을 통제하고, 출시된 결과물에 새로운 취약점이 있는지 모니터링합니다.

CRACI의 취약점 뷰가 Dependabot 알림을 대체하나요?

아닙니다. 두 기능은 서로 다른 질문에 답합니다. Dependabot 알림은 하나의 리포지토리의 기본 브랜치에 관한 것입니다. CRACI는 빌드와 리포지토리 전반의 취약점을 집계하고 모니터링 중인 SBOM을 계속 재평가하므로, 어떤 빌드들이 취약한 종속성을 공유하는지 확인할 수 있고, 보안 팀은 발견 사항을 트리아지해 수정 책임이 있는 팀에 보낼 수 있습니다. 정책 게이트로 빌드를 차단할 수 있으며, 임계값 알림은 로드맵에 있습니다.

CRACI도 Dependabot처럼 풀 리퀘스트를 여나요?

아닙니다. Dependabot의 보안 업데이트와 버전 업데이트는 풀 리퀘스트를 열지만 CRACI는 그렇지 않습니다. CRACI가 더하는 것은 빌드 기록입니다. 새로운 보안 권고가 발표되면 어떤 출시 빌드가 영향을 받는지, 어떤 업데이트 풀 리퀘스트를 먼저 머지해야 하는지 알 수 있습니다.

GitHub와 CRACI의 SBOM은 어떻게 다른가요?

GitHub는 리포지토리의 매니페스트와 잠금 파일, 그리고 종속성 제출 API로 구성한 종속성 그래프를 SPDX SBOM으로 내보내며, 이는 기본 브랜치를 반영합니다. CRACI는 각 빌드가 실행되는 동안 SBOM을 기록해 CycloneDX 또는 SPDX로 내보내며, 작업과 캐시마다 완전성 상태를 표시해 기록에 빈틈이 있었는지 알려 줍니다.

어떤 매니페스트에도 없는 종속성에도 CRACI가 도움이 되나요?

네, 빌드가 패키지 소스에서 그것을 가져온다면 그렇습니다. CRACI는 작업 중의 트래픽을 기록하므로, 스크립트가 내려받은 도구나 캐시에서 복원된 패키지도 빌드 기록에 나타나며, 기록하지 못한 항목이 있으면 SBOM의 완전성 상태가 알려 줍니다.

Dependabot과 CRACI의 비용은 얼마인가요?

Dependabot의 보안 업데이트와 버전 업데이트는 Free를 포함한 모든 GitHub 요금제에 포함되어 있습니다(2026년 9월 기준). CRACI는 빌드 시간에 대해서만 과금합니다. vCPU 분당 $0.002(기본 2 vCPU 러너는 $0.004)이며 초 단위로 측정하고, 월 요금과 SBOM당 요금은 없습니다. 최신 조건은 요금을 확인하세요.

CRACI는 컴플라이언스 요구 사항이 있는 팀만을 위한 것인가요?

아닙니다. 다만 증거의 효과가 가장 큰 곳은 그런 팀입니다. EU에 소프트웨어를 판매한다면 Cyber Resilience Act에 따라 릴리스별 구성 요소 인벤토리와 취약점 처리가 업무의 일부가 됩니다. 그 밖의 팀에게도 빌드가 무엇을 가져오는지 아는 것은 공급망 사고 대응의 기본입니다. 데모를 예약하고 직접 사용하는 워크플로 하나의 빌드 기록을 확인해 보세요.

Dependabot이 보지 못하는 것을 확인하세요

GitHub Actions 워크플로 하나를 CRACI에서 실행하고, 그 빌드 기록을 종속성 그래프와 비교해 보세요.

데모 예약