비교
CI/CD 보안 도구 비교
CI/CD 보안 도구는 네 가지로 나뉩니다. 코드를 읽는 스캐너, 그 주변의 파이프라인을 강화하는 도구, 러너를 감시하는 에이전트, 그리고 빌드를 제어하고 기록하는 러너입니다. 각 유형이 무엇을 다루는지, CRACI는 어디에 해당하는지 소개합니다.
업데이트
각 비교에서는 상대 제품의 강점, CRACI와의 차이점, 두 제품을 함께 쓰면 좋은 경우를 설명합니다. 모든 카테고리는 전체 비교에서 확인하세요.
파이프라인에 전용 보안 도구가 필요한 이유
CI/CD 파이프라인은 자격 증명을 보유하고, 인터넷에서 코드를 가져오며, 고객이 실행하는 아티팩트를 만듭니다. 그래서 파이프라인 자체가 공격 대상이 됩니다. 빌드가 내려받는 것이나 만들어 내는 것을 바꿀 수 있는 공격자는 소스 코드를 전혀 건드릴 필요가 없습니다. 코드 스캐너는 빌드가 아니라 리포지토리를 읽으므로, 이런 상황을 위해 만들어지지 않았습니다.
CI/CD 보안 도구는 서로 다른 방향에서 이 공백을 메웁니다. 어떤 도구는 파이프라인의 구성을 점검하고, 어떤 도구는 작업이 실행되는 동안 러너에서 일어나는 일을 감시하며, 어떤 도구는 러너 자체를 제어합니다. 도구가 어느 유형에 속하는지가 무엇을 볼 수 있고 무엇을 막을 수 있는지를 결정하므로, 기능 목록보다 더 많은 것을 알려 줍니다.
CI/CD 보안 도구의 유형
코드를 읽는 스캐너
정적 분석(SAST), 시크릿 스캔, 소프트웨어 구성 분석(SCA)은 리포지토리, 즉 소스 파일, 매니페스트, 잠금 파일을 읽습니다. 예를 들어 GitHub Advanced Security는 CodeQL 코드 스캔에 시크릿 스캔과 푸시 보호를 결합하고, GitHub Advisory Database를 바탕으로 Dependabot 알림을 제공합니다. 이런 도구는 빌드가 실행되기 전에 문제를 찾습니다. 빌드가 실제로 무엇을 가져왔는지, 어디에 연결했는지는 보지 못합니다.
빌드를 둘러싼 파이프라인을 강화하는 도구
보안 태세 및 거버넌스 도구는 파이프라인의 구성을 점검합니다. Cycode는 CI/CD 보안 정책, 구성, 거버넌스를
모니터링합니다. StepSecurity는 사용하는 서드파티 액션의 인벤토리를 유지하고 새 액션에 대한 승인 워크플로를
제공하며, 액션을 커밋 SHA에 고정하고 최소 권한의 GITHUB_TOKEN 권한을 설정하는 풀 리퀘스트를 엽니다.
이런 도구는 파이프라인을 악용하기 어렵게 만들지만, 실행 중인 빌드가 아니라 빌드의 정의를 대상으로 동작합니다.
러너를 감시하는 에이전트
런타임 에이전트는 직접 유지하는 러너에서 작업 안에 실행됩니다. StepSecurity Harden-Runner는 아웃바운드 연결, 프로세스, 파일 쓰기를 모니터링하고 각각을 원인이 된 워크플로 단계와 연결하며, 허용 목록 밖의 이그레스를 차단할 수 있습니다. Cycode의 Cimon은 eBPF로 커널 수준에서 프로세스 실행, 네트워크 이그레스, 파일 접근을 모니터링하고, 런타임에 관찰한 SBOM을 만들며, SLSA 출처 증명에 서명합니다. 에이전트는 이미 존재하는 인프라에 추가되므로, 여러 CI 시스템과 호스팅 러너에서 동작합니다.
빌드를 제어하고 기록하는 러너
CRACI는 마지막 방식을 택합니다. 러너를 대체하는 것입니다. 작업은 runs-on: craci로 CRACI에서
실행되며, 실행 내역은 여전히 GitHub에 표시됩니다. 이그레스 정책은 러너의 일부로, 작업 시작 전에 검증되고 실패 시
차단됩니다. 패키지를 인식하는 프록시가 CI 캐시에서 복원된 패키지를 포함해 작업이 가져온 모든 패키지를 기록하므로,
각 작업은 완전성 상태가 포함된 SBOM, 네트워크 추적, 출처 증명 데이터를 만듭니다.
나란히 비교
| 기능 | CRACI | StepSecurity Harden-Runner | Cycode (Cimon) | GitHub Advanced Security |
|---|---|---|---|---|
| 실행 위치 | 그 자체가 러너 | 기존 러너에서 실행되는 에이전트 | 기존 CI 내부의 에이전트 | GitHub의 리포지토리 스캔 |
| 빌드 이그레스 통제 | 기본 거부 또는 허용, 문제 시 차단(fail closed) | 차단 모드의 허용 목록 | 허용 호스트 기반 방지 모드 | |
| 차단 전 감사 모드 | 모니터 또는 드라이런 모드 | 작업별 기준선 | 탐지 모드 | 이그레스 통제 없음 |
| 프로세스 및 파일 모니터링 | eBPF | 명시되지 않음 | ||
| 빌드에서 기록한 SBOM | 작업별, 완전성 상태 포함 | 대상, 프로세스, 파일 기록 | 런타임 관찰 SBOM | 매니페스트 기반 그래프와 제출된 빌드 데이터 |
| 서명된 빌드 출처 증명 | 서명된 출처 증명 없음 | 명시되지 않음 | SLSA Provenance v1.0 | 아티팩트 증명 |
| SAST | 명시되지 않음 | CodeQL | ||
| 시크릿 스캔 | 명시되지 않음 | Secret Protection | ||
| CI 지원 범위 | 현재 GitHub Actions 지원, GitLab CI와 Jenkins는 로드맵에 포함 | GitHub Actions, GitLab CI, Azure DevOps | GitHub Actions, Azure Pipelines, Jenkins, GitLab CI, Buildkite, Harness | GitHub, Azure DevOps는 별도 구매 |
- 포함
- 일부 지원
- 미포함
- 로드맵에 포함
"명시되지 않음"은 공급업체의 공개 페이지에서 확인할 수 없었다는 뜻입니다. 각 열의 자세한 내용은 CRACI vs StepSecurity, CRACI vs Cycode, CRACI vs GitHub Advanced Security를 참고하세요.
어떤 도구가 어떤 CI/CD 위험을 다루는가
OWASP Top 10 CI/CD Security Risks는 파이프라인에서 일어날 수 있는 문제를 정리한 가장 널리 쓰이는 목록입니다. 10가지 위험은 다음과 같습니다.
- CICD-SEC-1: Insufficient Flow Control Mechanisms
- CICD-SEC-2: Inadequate Identity and Access Management
- CICD-SEC-3: Dependency Chain Abuse
- CICD-SEC-4: Poisoned Pipeline Execution (PPE)
- CICD-SEC-5: Insufficient PBAC (Pipeline-Based Access Controls)
- CICD-SEC-6: Insufficient Credential Hygiene
- CICD-SEC-7: Insecure System Configuration
- CICD-SEC-8: Ungoverned Usage of 3rd Party Services
- CICD-SEC-9: Improper Artifact Integrity Validation
- CICD-SEC-10: Insufficient Logging and Visibility
10가지를 모두 다루는 단일 도구는 없습니다. CRACI의 제어가 적용되는 것은 다음 네 가지입니다.
| 기능 | 위험의 내용 | CRACI의 대응 |
|---|---|---|
| CICD-SEC-3: Dependency Chain Abuse | 빌드가 악성 패키지나 예상치 못한 패키지를 가져옴 | 이그레스 정책이 작업이 가져올 수 있는 소스를 제한하고, 작업의 SBOM이 가져온 모든 패키지를 기록 |
| CICD-SEC-7: Insecure System Configuration | 파이프라인을 실행하는 시스템의 취약한 설정 | 작업은 격리된 가상 머신에서 실행되며, 적용할 수 없는 정책은 실패 시 차단 |
| CICD-SEC-9: Improper Artifact Integrity Validation | 변조된 아티팩트가 정상인 것처럼 파이프라인을 통과 | 서명된 출처 증명은 없음, API가 빌드마다 출처 증명 데이터를 반환 |
| CICD-SEC-10: Insufficient Logging and Visibility | 파이프라인 내 공격이 보이지 않아 조사할 수 없음 | 모든 작업의 네트워크 추적, 정책 위반 알림, SBOM·네트워크 추적·출처 증명을 반환하는 API |
CICD-SEC-7에 대해 CRACI는 러너를 담당합니다. 리포지토리와 GitHub 조직의 구성은 여전히 고객이 관리합니다. 나머지에 대해 분명히 말씀드리면, CRACI는 ID 및 접근 관리(CICD-SEC-2)나 자격 증명 위생(CICD-SEC-6)을 다루지 않으며, 흐름 제어, 파이프라인 권한, 서드파티 서비스(CICD-SEC-1, 5, 8)도 관리하지 않습니다. GitHub의 Secret Protection이나 Cycode의 시크릿 탐지 같은 시크릿 스캔, 그리고 위에서 소개한 보안 태세 도구가 이런 위험을 위해 만들어졌습니다.
CI/CD 보안 도구를 선택하는 방법
- 러너를 교체할지, 유지할지. GitHub 호스팅 러너, 셀프 호스팅 러너 또는 다른 CI 시스템을 유지하고 싶다면 에이전트로 런타임 제어를 추가하는 것이 방법입니다. 러너를 바꿀 수 있다면, CRACI 같은 러너는 배포할 에이전트 없이 이그레스 제어와 빌드 기록을 제공합니다.
- 현재 시점의 감사 모드. Harden-Runner와 Cimon은 무엇이든 차단하기 전에 트래픽을 관찰할 수 있습니다. CRACI의 모니터 또는 드라이런 모드는 로드맵에 있습니다.
- 프로세스 수준 포렌식. 사고 발생 시 어떤 프로세스가 어떤 파일을 썼는지 알아야 한다면, 프로세스와 파일을 모니터링하는 에이전트가 이를 다룹니다. CRACI는 프로세스나 파일 쓰기를 모니터링하지 않습니다.
- SBOM과 CRA 증거. 각 빌드의 패키지 수준 SBOM, 출처 증명, 그리고 Cyber Resilience Act를 위한 증거가 필요하다면, 각 도구가 무엇을 기록하는지, 출시한 항목을 계속 모니터링하는지 살펴보세요. CRACI는 빌드가 실행되는 동안 SBOM을 기록하고, 새로운 취약점이 나타날 때마다 모니터링 대상 SBOM을 재평가하며, SBOM을 CycloneDX 또는 SPDX로 내보냅니다.
- CI 플랫폼과 운영체제. CRACI는 현재 GitHub Actions를 지원하며 GitLab CI와 Jenkins는 로드맵에 있고, x86-64 및 ARM64의 Linux에서 실행되며 Windows와 macOS는 로드맵에 있습니다. 다른 CI 시스템에서 빌드하거나 지금 Windows 또는 macOS 러너가 필요하다면, 먼저 에이전트의 지원 범위를 확인하세요.
- 코드와 시크릿. 소스 코드와 시크릿용 스캐너는 어떤 러너도 다루지 않는 영역을 다룹니다. CRACI에는 SAST와 시크릿 스캔이 없으므로 별도로 계획하세요.
러너 위의 에이전트 vs 러너 그 자체
에이전트는 다른 누군가가 설계한 인프라에 추가됩니다. GitHub 호스팅 러너에서는 각 작업 시작 시 하나의 단계로 설치되며, 그 범위는 해당 인프라가 허용하는 데까지입니다. 덕분에 에이전트는 호스팅 러너, 셀프 호스팅 러너 플릿, 여러 CI 시스템을 한꺼번에 다룰 수 있으며, 빌드가 이 모든 곳에 흩어져 있을 때 이는 실질적인 장점입니다.
정책을 스스로 적용하는 러너는 그 반대 방식으로 동작합니다. CRACI에서 이그레스 정책은 작업 시작 전에 검증되고, 알 수 없는 필드를 거부하며, 실패 시 차단되므로, 적용할 수 없는 정책이 보호되지 않은 실행으로 이어지지 않습니다. 소스는 에코시스템별로 유형이 지정되며, 24개의 기본 제공 소프트웨어 소스 프리셋과 npm, PyPI, apt, apk, Go 프록시, Nix, Cargo, OCI 레지스트리, Git용 사용자 지정 소스를 지원하므로, 호스트만이 아니라 패키지 단위로 기록됩니다. CRACI에서 실행되는 작업에서는 런타임 에이전트와 나란히 실행되는 것이 아니라 런타임 에이전트를 대체합니다. CI/CD 통합과 빌드 시점 SBOM 생성에 대해 자세히 알아보거나, 데모를 예약하고 이그레스 정책 아래에서 GitHub Actions 작업이 실행되는 모습을 확인하세요.
도구별 CRACI 비교
나란히 비교
제품 하나가 아니라 카테고리를 고를 때 유용하도록 여러 도구를 한 페이지에 모았습니다.
CI/CD 보안 도구에 대해 자주 묻는 질문
CI/CD 보안 도구란 무엇입니까?
CI/CD 보안 도구는 소스 코드를 출시 소프트웨어로 만드는 파이프라인을 보호합니다. 크게 네 가지로 나뉩니다. 코드와 종속성을 읽는 스캐너(SAST, 시크릿 스캔, SCA), 빌드를 둘러싼 파이프라인 구성을 강화하는 도구, 작업이 실행되는 동안 러너를 감시하는 에이전트, 그리고 빌드 자체를 제어하고 기록하는 러너입니다. OWASP Top 10 CI/CD Security Risks는 도구가 어떤 위험을 다루는지 확인하는 일반적인 기준입니다.
CI/CD 보안과 SCA는 어떻게 다릅니까?
소프트웨어 구성 분석(SCA)은 매니페스트와 잠금 파일을 읽고, 선언된 종속성 중 어떤 것에 알려진 취약점이 있는지 알려 줍니다. CI/CD 보안은 파이프라인 자체를 보호합니다. 누가 파이프라인을 바꿀 수 있는지, 빌드가 무엇에 접근할 수 있는지, 출시하는 아티팩트가 실제로 빌드된 그 아티팩트인지입니다. CRACI는 빌드에서 출발합니다. CI 캐시에서 복원된 패키지를 포함해 각 작업이 실제로 가져온 패키지를 기록하고, 출시 후에도 새로운 취약점에 대해 계속 모니터링합니다.
CRACI를 사용하면 런타임 에이전트가 필요합니까?
이그레스 제어와 빌드 기록에는 필요하지 않습니다. CRACI에서는 이그레스 정책이 러너의 일부로, 작업 시작 전에 검증되고 실패 시 차단되므로, CRACI에서 실행되는 작업에서는 Harden-Runner나 Cimon 같은 에이전트를 CRACI가 대체합니다. 포기하는 것은 CRACI가 제공하지 않는 프로세스 및 파일 모니터링, 그리고 CRACI 로드맵에 있는 감사 모드입니다. 프로세스 수준의 포렌식이 반드시 필요하다면, 현재로서는 유지하는 러너에 러너 에이전트를 두어 해결할 수 있습니다.
CI/CD 보안 도구로 악성 패키지를 차단할 수 있습니까?
일부 도구는 서로 다른 방식으로 차단할 수 있습니다. 이그레스 제어는 빌드가 정책 밖의 소스에 접근하지 못하게 하므로, 예상치 못한 호스트에서의 다운로드는 실패합니다. 패키지 차단 목록과 레지스트리 제어는 알려진 악성 버전이 아예 설치되지 않게 합니다. CRACI는 현재 에코시스템별 유형이 지정된 소스로 작업별 이그레스 정책을 적용하며, 조직 전체의 패키지 차단 목록은 CRACI 로드맵에 있습니다.
GitHub Actions 이외에서도 동작하는 CI/CD 보안 도구는 무엇입니까?
2026년 9월 기준 StepSecurity는 GitHub Actions와 함께 GitLab CI와 Azure DevOps를 지원 대상으로 밝히고 있으며, Cycode의 Cimon은 Azure Pipelines, Jenkins, GitLab CI, Buildkite, Harness에서도 실행됩니다. GitHub Advanced Security는 Azure DevOps용으로도 판매됩니다. CRACI는 현재 GitHub Actions를 지원하며, GitLab CI와 Jenkins는 로드맵에 있습니다.