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

모든 빌드에서 기록하는 소프트웨어 공급망 보안

소프트웨어 공급망은 CI 빌드에서 제품과 만납니다. CRACI는 GitHub Actions 작업을 안전한 러너에서 실행하고, 작업이 가져오는 모든 종속성을 기록하며, 각 빌드가 접근할 수 있는 대상을 통제하고, 출시한 소프트웨어의 취약점을 계속 추적합니다.

GitHub Actions를 위한 안전한 러너

runs-on을 craci로 바꾸면 GitHub Actions 작업이 CRACI 러너에서 실행되며, 실행 내역은 계속 GitHub에 표시됩니다. 모든 작업은 유럽에서 호스팅되는 Linux x86-64 또는 ARM64 기반의 격리된 전용 가상 머신에서 실행됩니다. 더 빠른 하드웨어, 짧은 대기 시간, 캐싱 덕분에 빌드는 GitHub 호스팅 러너보다 약 2배 빠르게 실행됩니다.

GitHub Actions jobs on CRACI runners A GitHub Actions workflow sets runs-on to craci. Each job runs in its own isolated virtual machine on a CRACI runner, on Linux x86-64 or ARM64, hosted in Europe, and the run still appears in GitHub. .github/workflows/release.yml jobs: build: runs-on: craci was: ubuntu-latest CRACI runners Hosted in Europe Job VM build Linux x86-64 Job VM test Linux ARM64 Job VM publish Linux x86-64 One isolated virtual machine per job, 1 to 32 vCPU Runs still appear in GitHub About 2x GitHub-hosted speed

모든 빌드에서 기록되는 SBOM

CRACI는 스캐너가 아니라 기록기입니다. 러너의 패키지를 인식하는 프록시가 작업이 npm, PyPI, RubyGems, Cargo, Go, Nix, OCI, apt, apk, Git 소스와 Yocto 및 OpenEmbedded 다운로드 프리셋에서 가져오는 모든 패키지를, CI 캐시에서 복원된 패키지까지 포함해 확인합니다. 각 작업의 SBOM에는 완전성 상태가 표시되며, 전이적 종속성과 각 구성 요소의 선언된 라이선스를 포함해 CycloneDX 또는 SPDX로 내보낼 수 있습니다.

An SBOM recorded during the build Packages from npm, PyPI, Cargo, Go, OCI registries and the CI cache pass through a package-aware proxy on the CRACI runner. The job's SBOM lists what was fetched, states its completeness and exports as CycloneDX or SPDX. Package sources npm PyPI Cargo · Go OCI registries CI cache restore Package- aware proxy on the runner Job SBOM express 5.2.1 requests 2.32.3 serde 1.0.219 + transitive deps Declared license on every component Complete Completeness states per job and cache: Complete, Complete with connections, Incomplete, Unavailable, Not recorded CycloneDX · SPDX

빌드가 접근할 수 있는 대상 통제

이그레스 정책은 작업이 연결할 수 있는 호스트를 결정합니다. 기본 거부 또는 기본 허용, 24개의 기본 제공 소프트웨어 소스 프리셋, 패키지 레지스트리와 Git용 유형별 사용자 지정 소스, 명시적 네트워크 규칙을 지원합니다. 정책은 작업 시작 전에 검증되고 실패 시 차단되며, 위반이 발생하면 알림이 발송됩니다. 손상된 종속성이나 빌드 단계가 승인하지 않은 호스트로 몰래 데이터를 보낼 수 없습니다.

An egress policy on the build network A build job connects to hosts in its egress policy, such as package registries and Git, and a connection to a host outside the policy is blocked. The policy is validated before the job starts and fails closed, and a violation sends an alert. Egress policy Default deny Validated before the job starts Fails closed · 24 source presets Build job on a CRACI runner npm registry allowed PyPI allowed Git over HTTPS allowed Unapproved host blocked Alert on policy violation Connections are recorded in the job's network trace

출시하는 소프트웨어의 출처 증명

공개 REST API는 작업별로 SBOM, 네트워크 추적, 출처 증명을 반환하며, 모두 같은 빌드에서 기록됩니다. 증거는 워크플로에 단계를 추가하지 않고 빌드 자체에서 나옵니다.

Provenance data from every build Every job on CRACI records the packages it fetched and its network trace. The public REST API returns the job's SBOMs, network trace and provenance. Build release job on CRACI Recorded packages fetched network trace Provenance build data, via the API Ask the API about any job Job → SBOM, trace, provenance Returned by the API Job Packages CycloneDX SBOM Network trace Recorded on every CRACI job, no extra step

출시 후 취약점 추적

CRACI는 새로운 취약점이 공개될 때마다 출시한 소프트웨어의 SBOM을 계속 재평가하고, 빌드와 리포지토리 전반의 발견 사항을 집계합니다. 보안 팀은 발견 사항을 분류하고 각각을 수정 책임 팀에 배정합니다. 정책 게이트로 발견 사항이나 라이선스를 기준으로 빌드를 차단할 수 있고, VEX를 지원하며, 공급업체 SBOM도 자체 빌드와 함께 모니터링하고, 인벤토리 보기에서 어떤 소프트웨어 버전이 어떤 제품에 배포되었는지 확인할 수 있습니다.

Vulnerability tracking after release After a release ships, its SBOM stays monitored. When a new vulnerability is published, CRACI re-evaluates the monitored SBOMs, finds the affected releases, and the security team triages the finding and routes it to the team that owns the fix. The inventory view shows which software versions are deployed to which products. Release shipped SBOM monitored Later New advisory published Re-evaluated automatically Finding: critical, in 2 releases 1. Triage 2. Route to owner 3. Team fixes Policy gates can block a build on findings · VEX supported Inventory: deployed versions Product Version Web app v4.12.0 Mobile API v2.3.1

고객과 감사인을 위한 증거

고객, 감사인, 규제는 갈수록 릴리스별 SBOM과 취약점 처리 기록을 요구하고 있습니다. CRACI는 구성 요소에서 발견된 취약점을 포함해 SBOM을 CycloneDX 또는 SPDX로 내보내며, 공개 REST API는 SBOM, 네트워크 추적, 출처 증명을 반환합니다. 같은 증거로 EU Cyber Resilience Act, NIS2, FDA SBOM 요건, ISO 27001 공급망 통제에 대응할 수 있습니다.

Evidence from the build record SBOMs export as CycloneDX or SPDX, including the vulnerabilities found in their components, and the public REST API returns SBOMs, network traces and provenance, for customers, auditors and frameworks such as the EU Cyber Resilience Act, NIS2, FDA SBOM requirements and ISO 27001 supply chain controls. The build record SBOMs Vulnerability records Provenance Network traces Export CycloneDX SPDX REST API Who asks for it Customers Auditors Security reviews Frameworks this evidence supports EU Cyber Resilience Act NIS2 supply chain security FDA SBOM for cyber devices ISO 27001 supply chain controls

공급망 사고가 일으키는 질문

패키지, CI 액션, 레지스트리가 손상되면 처음 몇 시간은 영향을 받았는지 파악하는 데 쓰입니다. 다음은 팀이 묻는 질문과, CRACI의 빌드 기록이 그 질문에 답하는 방식입니다.

질문 CRACI의 답
우리 빌드 중에 손상된 패키지 버전을 가져온 것이 있습니까? 모든 빌드의 SBOM에는 작업이 실제로 가져온 패키지가 나열되므로, 리포지토리를 다시 스캔하는 대신 기록된 빌드를 검색하면 됩니다.
어떤 제품과 릴리스가 영향을 받습니까? 모니터링 중인 SBOM은 지속적으로 재평가되며, 인벤토리 보기는 소프트웨어 버전을 배포된 제품과 연결합니다.
빌드 단계가 시크릿을 어딘가로 보냈을 가능성이 있습니까? 각 작업의 네트워크 추적은 작업이 만든 연결을 기록하며, 이그레스 정책은 정책 밖의 호스트에 도달하기 전에 차단합니다.
이 SBOM은 전달해도 될 만큼 완전합니까? 각 작업의 SBOM은 Complete, Complete with connections, Incomplete, Unavailable, Not recorded 중 하나로 완전성을 표시합니다.
누가 수정하고 있으며, 처리했다는 것을 증명할 수 있습니까? 발견 사항은 분류되어 담당 팀에 배정되며, SBOM은 구성 요소에서 발견된 취약점을 포함해 CycloneDX 또는 SPDX로 내보낼 수 있습니다.

CRACI는 빌드와 빌드가 출시하는 것을 다룹니다. 코드 스캔, 시크릿 스캔, 도달 가능성 분석은 애플리케이션 보안 도구의 몫입니다. 현재 GitHub Actions를 지원하며, 다른 CI 시스템은 로드맵에 있습니다.

소프트웨어 공급망 보안 Q&A

다루는 범위, CI/CD에 필요한 이유, CRACI의 역할

소프트웨어 공급망 보안이란 무엇입니까?

소프트웨어 공급망 보안은 첫 커밋부터 릴리스까지 소프트웨어에 들어가는 모든 것을 보호합니다. 오픈 소스 종속성, 베이스 이미지, 빌드 도구, 서드파티 CI 액션, CI 파이프라인 자체, 출시하는 아티팩트가 여기에 해당합니다. 이러한 구성 요소가 무엇인지 파악하고, 어디서 오는지 통제하며, 각 릴리스에 무엇이 들어갔는지 증명하는 것을 의미합니다.

왜 CI/CD에서 소프트웨어 공급망을 보호해야 합니까?

릴리스 빌드는 종속성이 해석되고, 다운로드되고, 패키징되는 곳입니다. 프로덕션 빌드는 노트북에서 실행한 빌드와 다릅니다. 버전 범위, 변경 가능한 태그, 캐시 때문에 다른 것을 가져올 수 있습니다. 릴리스 빌드가 실행되는 동안 남긴 기록만이 출시된 내용에 대한 신뢰할 수 있는 기록이며, 빌드 러너는 빌드가 접근할 수 있는 대상을 통제할 수 있는 지점입니다.

CRACI는 공급망 보안 스캐너와 무엇이 다릅니까?

스캐너는 매니페스트, 잠금 파일, 소스 코드, 완성된 바이너리 같은 파일을 사후에 읽습니다. CRACI는 GitHub Actions 작업의 러너이므로 빌드가 진행되는 동안 이를 관찰하고, CI 캐시에서 복원된 패키지를 포함해 각 작업이 실제로 가져온 패키지를 기록합니다. 각 SBOM은 자체 완전성을 명시하고, 이그레스 정책은 빌드가 접근할 수 있는 대상을 통제하며, API는 SBOM, 네트워크 추적, 출처 증명을 반환합니다.

CRACI가 GitHub Actions 워크플로를 대체합니까?

아닙니다. CRACI는 GitHub Actions가 아니라 러너를 대체합니다. runs-on을 craci로 바꾸면 되며, 워크플로, 트리거, 실행 기록은 GitHub에 그대로 남습니다.

CRACI는 어떤 CI 시스템과 플랫폼을 지원합니까?

현재는 GitHub Actions를 지원하며, GitLab CI와 Jenkins를 비롯한 다른 CI 시스템은 로드맵에 있습니다. 러너는 x86-64 및 ARM64 기반 Linux이며, Windows와 macOS는 로드맵에 있습니다.

CRACI는 SAST, 시크릿 스캔, 도달 가능성 분석을 수행합니까?

아닙니다. CRACI는 빌드를 기록하고 통제하며, 출시한 소프트웨어의 취약점을 추적하고 증거를 생성합니다. 자체 코드의 결함이나 시크릿 스캔, 도달 가능성 분석은 애플리케이션 보안 도구의 역할입니다.

빌드 데이터는 어디에 저장됩니까?

CRACI는 유럽의 베어메탈 인프라를 기반으로 유럽에서 호스팅되며, 데이터는 기본적으로 180일간 보관되고 Enterprise에서는 보관 기간을 맞춤 설정할 수 있습니다. CRACI는 소스 코드를 저장하지 않습니다. CRACI는 ISO 27001 인증을 받았으며, 자세한 내용은 Trust Center에서 확인할 수 있습니다.

빌드가 실제로 가져오는 것을 확인하세요

데모를 예약하고 CRACI가 GitHub Actions 빌드에서 기록하는 SBOM, 네트워크 추적, 이그레스 정책, 출처 증명을 확인하세요

데모 예약