본문으로 건너뛰기

보안 게이트

SAST, SCA, DAST, IaC, 시크릿, 라이선스 등 여러 영역의 스캔을 마쳤는데, 결국 "이 서비스를 배포해도 되는가?"라는 질문에는 어떻게 답해야 할까요? 보안 게이트는 6개 보안 영역의 결과를 OPA 정책 기준으로 종합하여 배포 가능 여부를 한 번에 판정합니다. 게이트 자체는 보안 영역이 아니라 평가 정책 판정입니다.

보안 게이트가 왜 필요한가요? 개별 영역의 스캔 결과만 보면 전체 그림을 놓치기 쉽습니다. SAST는 통과했지만 SCA에 Critical 취약점이 있거나, 시크릿이 노출된 채로 배포가 진행될 수 있습니다. 보안 게이트는 6개 영역의 결과를 하나의 OPA 정책으로 평가하여, 일관된 기준으로 배포 여부를 결정하게 해줍니다.

보안 게이트 판정 결과

개요​

  • 역할: 6개 보안 영역(SAST/SCA/DAST/IaC/시크릿/라이선스)의 스캔 결과를 정책 기준으로 종합하여 배포 가능 여부를 판정
  • 정책 판정 지위: 게이트는 보안 영역이 아닌 배포 정책 판정 결과. OPA 평가 후 보안 점수 산식에서 제외됨.
  • 판정 엔진: OPA (Open Policy Agent)
  • 판정 기준: OPA Rego 정책 (영역별 심각도 임계값)
  • 결과 형식: 영역별 통과/차단 판정 + 게이트 전체 통과 여부 + (warn 모드 시) 위반 정보

보안 게이트는 새 스캔을 실행하지 않습니다. 보안 게이트는 SAST/SCA/DAST/IaC/시크릿 등 각 영역에서 이미 수행된 스캔 결과를 모아 평가합니다. 게이트 자체가 코드를 다시 분석하지 않으므로, 게이트를 실행하기 전에 평가 대상 영역의 스캔을 먼저 수행해야 합니다.


OPA란?​

OPA(Open Policy Agent)는 정책을 코드로 정의하고 평가하는 범용 정책 엔진입니다. Rego라는 정책 언어로 "어떤 조건이면 통과, 어떤 조건이면 차단"이라는 규칙을 정의합니다.

KIOPS의 보안 게이트는 OPA Rego 정책을 사용하여, 각 보안 영역의 스캔 결과가 정책 임계값을 충족하는지 평가합니다. 예를 들어 "Critical 취약점이 1개라도 있으면 차단"과 같은 규칙이 정책으로 표현됩니다.


Step 1: 보안 게이트 진입​

  1. 사이드바의 "보안" 그룹 > [보안 분석] 메뉴를 클릭합니다.
  2. 페이지 상단의 카드 캐러셀에서 평가할 서비스를 선택합니다.
  3. 보안 게이트 탭을 선택합니다.

URL로 바로 진입하기: /security?id={서비스ID}&area=gate URL로 진입하면 해당 서비스의 보안 게이트 탭이 바로 열립니다.


Step 1-1: 차단 정책 설정 (선택)​

보안 게이트는 평가 실행과 별개로, 배포 시 게이트 판정을 실제로 강제할지를 제어하는 차단 정책(gate_enforce_mode)을 설정할 수 있습니다.

게이트 탭에서 다음 중 선택:

  • 정책 미적용 (off): 게이트 평가는 수행되지만 배포에 영향을 주지 않습니다.
  • 경고만 (warn): 게이트 판정이 차단(block)이어도 배포는 진행되며, 사용자에게 위반 정보가 토스트 알림으로 표시됩니다.
  • 배포 차단 (block): 게이트 판정이 차단이면 배포 API가 HTTP 412 Precondition Failed로 요청을 거부합니다.

각 모드는 GateEnforcementBadge로 UI에 표시되어, 사용자가 대시보드·서비스 관리 페이지에서도 정책 활성 여부를 한눈에 확인할 수 있습니다.


Step 2: 게이트 평가 실행​

보안 게이트 탭에서 [지금 평가] 버튼을 클릭하면, OPA가 최신 6개 영역의 스캔 결과를 정책과 대조하여 판정합니다.

평가 대상이 되는 6개 영역은 다음과 같습니다. 라이선스 데이터는 SBOM 스캔(license_analysis)에서 수집되지만, 게이트에서는 라이선스가 독립된 평가 영역으로 판정됩니다. SBOM 구성요소 명세 자체는 현재 게이트 정책에서 평가하지 않습니다.

  • SAST (소스 코드 정적 분석)
  • SCA (의존성 취약점)
  • DAST (런타임 취약점)
  • 라이선스 (SBOM 스캔에서 수집된 라이선스 위험)
  • IaC (인프라 설정 오류)
  • 시크릿 (노출된 자격증명)

각 영역에 스캔 결과가 없으면 해당 영역은 평가에서 제외되거나 판정 불가로 표시됩니다.


Step 3: 판정 결과 확인​

3.1 판정 결과​

OPA 평가 후 다음 중 하나의 판정이 표시됩니다.

  • 허용 (allow): 모든 영역이 정책을 만족합니다.
  • 차단 (block): 1개 이상 영역의 결과가 정책 임계값을 초과했습니다.
  • 경고 (warn): warn 차단 정책이 활성화되고 block 판정인 경우 표시됩니다. 배포는 그대로 진행되나 위반 정보가 사용자에게 전달됩니다.

3.2 영역별 차단 사유​

block 판정 시, 어떤 영역의 어떤 취약점이 문제인지 카드 형식으로 표시됩니다. 각 카드는:

  • 영역 명: SAST, SCA, 라이선스 등
  • 문제 항목: Critical·High 취약점 또는 라이선스 위험 카운트
  • 조치 안내: 통과를 위한 조치 방법

3.3 판정 기준 확인​

판정 결과 화면의 [판정 기준] 섹션에서 적용된 정책명과 영역별 severity_thresholds(허용 최대 위반 수)를 확인할 수 있습니다. (정책 자체의 편집 기능은 게이트 패널에서 제공되지 않습니다.)

3.4 warn 모드 위반 알림​

warn 차단 정책이 활성화되고 게이트 판정이 block인 경우:

  • 배포는 그대로 진행됩니다.
  • 배포 응답의 최상위 레벨에 gate_warning 객체가 동봉됩니다(decision_id, decision(항상 'block'), violations 배열, hint 메시지).
  • 위반 내용이 화면 우측 상단에 경고 알림으로 약 8초간 표시됩니다.
  • 같은 decision_id의 알림은 다시 표시되지 않습니다. 같은 decision이 반복돼도 처음 한 번만 알림이 뜹니다. 이력은 최대 100개까지 보관하며, 100개를 넘으면 시간과 무관하게 가장 오래된 것부터 지워집니다.

게이트 판정 기준​

보안 게이트는 영역별 심각도 임계값을 정책(OPA Rego)으로 정의하여 판정합니다.

6개 영역의 평가 기준​

OPA Rego 정책은 각 영역별로 다음과 같은 규칙을 정의합니다. 일반적으로:

  • SAST, SCA, DAST, IaC, 시크릿: Critical/High 취약점 수가 임계값을 초과하면 차단
  • 라이선스: strong_copyleft 라이선스(Critical 등급)나 weak_copyleft(High 등급) 수가 임계값을 초과하면 차단

하나의 영역이라도 임계값을 초과하면 게이트 전체가 block 판정입니다.

보안 점수와의 분리​

게이트 판정(block/allow)은 배포 정책 결과이며, 보안 점수(0~100) 산식에서는 제외됩니다. 보안 점수는 대시보드 위험도와 단일 산식으로 통일되어 있으며, 아래 규칙으로 계산됩니다:

  • 기준 100점에서 심각도별 차감 — Critical 1건당 -20 · High -8 · Medium -3 · Low -1
  • 최악 심각도별 등급 상한(ceiling) — Critical이 있으면 70점 이하 · High가 최악이면 79점 이하 · Medium이 최악이면 89점 이하
  • 점수 대상 5영역 — SAST(스캔이 배포보다 오래되면 제외) · SCA(배포 이미지 한정) · IaC · DAST · 시크릿(탐지 건수를 Critical로 반영, "항상 1" 한계 개선)
  • SBOM · 라이선스 · 게이트는 점수에서 제외(정보/정책 판정 성격)

결과는 0100으로 제한되며, 등급은 A (90100) · B (8089) · C (7079) · D (6069) · F (059) — 미분석(스캔 0건)은 "-"로 표기됩니다. 위협이 많을수록 점수가 내려갑니다.

차단 판정 시 대응 — 게이트가 차단으로 판정되면, 차단 원인이 된 영역으로 이동하여:

  1. 취약점을 수정하거나
  2. 확인된 오탐을 false_positive로 분류한 뒤
  3. 해당 영역을 재스캔하고
  4. 게이트를 다시 평가하세요.

warn 모드가 활성화된 경우, 배포는 진행되더라도 [보안 분석] 탭에서 위반을 확인하고 조치하는 것을 권장합니다.


권장 활용 방식​

배포 전 최종 점검​

배포를 진행하기 전에 보안 게이트로 6개 영역의 결과를 한 번에 점검하세요. 개별 영역을 일일이 확인하지 않아도, 게이트의 allow/block 판정으로 배포 안전성을 빠르게 파악할 수 있습니다. warn 차단 정책이 활성화되면 위반 정보가 배포 응답에 동봉되어 사용자가 즉시 인지할 수 있습니다.

영역별 스캔 선행​

게이트는 기존 스캔 결과를 종합하므로, 정확한 판정을 위해서는 평가 대상 영역의 스캔을 먼저 최신 상태로 유지해야 합니다. 코드나 이미지가 변경되었다면 관련 영역을 재스캔한 뒤 게이트를 평가하세요.

정기 점검​

새로운 CVE는 계속 발견됩니다. 코드 변경이 없더라도 정기적으로 영역별 재스캔 후 게이트를 다시 평가하면, 시간이 지나며 새로 드러난 위험을 놓치지 않을 수 있습니다.


문제 해결​

판정 불가가 많이 표시됨​

평가 대상 영역의 스캔 이력이 없으면 판정 불가로 표시됩니다. SAST, SCA, DAST, 라이선스, IaC, 시크릿 등 6개 영역의 스캔을 먼저 수행한 뒤 게이트를 평가하세요.

게이트가 계속 차단됨​

차단 원인 상세 내역에서 어떤 영역의 어떤 항목이 임계값을 초과했는지 확인하세요. 해당 영역의 결과 탭에서 취약점을 수정하거나 오탐을 분류한 뒤, 재스캔하고 게이트를 다시 평가합니다.


관련 가이드​