기능
정책 게이트: 프로덕션 전에 취약점 차단
스캐너는 취약점을 알려 줍니다. 정책 게이트는 그 취약점이 포함된 빌드를 멈춥니다. CRACI 게이트는 각 빌드가 실제로 가져온 것의 기록을 기준으로 판단하므로, 아무도 제때 알림을 읽지 않았다는 이유로 취약한 패키지가 프로덕션에 도달하는 일이 없습니다.
업데이트
알림만으로는 부족한 이유
대부분의 보안 도구는 사후에 보고합니다. 발견 사항이 대시보드에 올라오고, 누군가 분류하고, 담당 팀에 티켓이 전달되는 동안에도 릴리스는 계속 진행됩니다. 발견 사항을 놓쳤거나 스캔이 그 패키지를 보지 못했다면, 누군가 무엇을 결정하기도 전에 취약점은 이미 프로덕션에 있습니다.
정책 게이트는 릴리스가 진행되기 전에 실시간으로 빌드를 멈출 수도 있습니다.
게이트가 막을 수 있는 것
| 규칙 | 결과 |
|---|---|
| 빌드의 발견 사항 | 정책에서 허용하지 않는 발견 사항이 있는 빌드는 차단됩니다. |
| 특정 CVE | 팀이 출시해서는 안 된다고 결정한 CVE가 포함된 빌드는 차단됩니다. |
| 알려진 악성 릴리스 | xz처럼 CVE가 게시된 악성 릴리스는 표시되며, 같은 방식으로 차단할 수 있습니다. |
| 라이선스 | 라이선스 정책 규칙으로 금지한 라이선스를 가져오는 빌드를 차단할 수 있습니다. |
게이트는 보는 만큼만 작동합니다
잠금 파일 스캔을 기반으로 한 게이트는 잠금 파일에 나열된 것만 차단할 수 있습니다. CRACI는 각 빌드로 들어오는 트래픽을 보므로, 게이트가 작업이 실제로 가져온 것을 기준으로 작동합니다.
- 모든 깊이의 전이적 종속성. 전이적 종속성을 참조하세요.
- 숨은 종속성. 설치 스크립트가 내려받는 코드, 빌드 시점에 다운로드하는 Rust 빌드 스크립트, 컨테이너 빌드의 베이스 이미지 등입니다.
- CI 캐시에서 복원된 패키지. 기록되며 캐시된 것으로 표시됩니다.
CRACI SBOM의 모든 구성 요소는 실제로 빌드에 있었으므로, 게이트가 추론만 된 패키지를 기준으로 작동하는 일은 없습니다. 그 이유는 빌드 시점 SBOM을 참조하세요.
게이트와 이그레스 정책은 하는 일이 다릅니다
| 위험 | 막는 수단 |
|---|---|
| 금지한 알려진 CVE가 있는 종속성 | 정책 게이트 |
| 금지한 라이선스 | 정책 게이트 |
| 빌드에 필요 없는 호스트로의 연결 | 기본 거부로 설정한 이그레스 정책 |
| 아직 권고가 없는 새로운 악성 패키지 | 권고가 나오기 전까지는 표시되지 않습니다. 기본 거부로 설정한 이그레스 정책은 그래도 이 패키지가 빌드에 필요 없는 호스트로 시크릿을 보내는 것을 차단합니다. |
새 CVE가 나오면
- CRACI가 모니터링 중인 SBOM을 재평가하고 영향을 받는 것을 표시합니다.
- 보안 팀이 이를 분류해 수정을 담당하는 팀에 보냅니다.
- 빌드 기록에서 어떤 빌드에 포함되어 있었는지, 따라서 얼마나 오래 영향을 받았는지 확인할 수 있습니다.
- 담당 팀이 수정을 출시하고, 정책 게이트가 이후 빌드에 그 CVE가 다시 들어오지 않게 막습니다.
수정은 여전히 여러분의 몫입니다. 게이트는 수정된 상태가 유지되도록 보장합니다. 취약점 추적을 참조하세요.
게이트가 하지 않는 일
- 도달 가능성 분석은 하지 않습니다. 게이트는 코드가 취약한 함수를 호출하는지가 아니라, 패키지가 빌드에 있는지를 기준으로 작동합니다.
- 멀웨어 탐지는 하지 않습니다. 게이트는 권고를 기준으로 작동하므로, 완전히 새로운 악성 패키지는 게이트에 걸리지 않습니다.
- 코드 스캔은 하지 않습니다. SAST와 시크릿 스캔은 설계상 범위 밖이며, CRACI와 함께 쓸 수 있는 훌륭한 도구가 많습니다.
정책 게이트: 자주 묻는 질문
정책 게이트란 무엇입니까?
빌드가 정책을 위반하면 빌드를 멈추는 규칙입니다. 누군가 나중에 처리하도록 문제를 보고하는 대신, 게이트가 빌드가 더 진행되지 않도록 막습니다.
정책 게이트는 스캐너 알림과 어떻게 다릅니까?
알림은 누군가 제때 조치해야 효과가 있습니다. 게이트는 스스로 조치합니다. 또한 CRACI 게이트는 빌드가 가져온 것의 기록을 기준으로 작동하므로, 잠금 파일 스캔으로는 절대 보이지 않는 패키지도 잡아낼 수 있습니다.
특정 CVE 하나를 차단할 수 있습니까?
예. 정책 게이트는 특정 CVE가 포함된 빌드를 차단할 수 있으므로, 팀이 결정한 취약점이 이후 빌드에 다시 들어오지 않습니다.
게이트로 라이선스를 차단할 수 있습니까?
예. 기록된 모든 패키지는 선언된 라이선스를 함께 담고 있으며, 라이선스 정책 규칙으로 라이선스를 기준으로 빌드를 차단할 수 있습니다.
게이트가 새로운 멀웨어를 막습니까?
게이트만으로는 막지 못합니다. CVE가 게시된 알려진 악성 릴리스는 다른 취약점과 마찬가지로 표시되며, 게이트로 이를 포함한 빌드를 차단할 수 있습니다. 새로운 악성 패키지는 권고가 나오기 전까지 표시되지 않습니다. 그 기간의 피해를 제한하는 것은 기본 거부로 설정한 이그레스 정책입니다.
정책 게이트는 어떤 CI 시스템에서 작동합니까?
CRACI 러너에서 실행되는 GitHub Actions입니다. 다른 CI 시스템은 로드맵에 있습니다.