본문으로 건너뛰기

보안 분석

소프트웨어 보안, 어디서부터 시작해야 할지 막막하신가요? KIOPS의 DevSecOps 보안 분석 기능을 활용하면 소스 코드부터 실행 중인 애플리케이션, 인프라 설정까지 전 단계에 걸쳐 보안 취약점을 자동으로 탐지할 수 있습니다.

보안 분석이 왜 중요한가요?

보안 취약점은 개발 후반부에 발견될수록 수정 비용이 기하급수적으로 증가합니다. 코드 작성 시점부터 배포 후까지 지속적으로 보안을 점검하면 비용을 절감하고 안전한 소프트웨어를 제공할 수 있습니다.

보안 분석 페이지 접근 방법​

보안 분석은 KIOPS의 독립 페이지입니다. 사이드바의 "보안" 그룹 > [보안 분석] 메뉴를 클릭하면 진입합니다 (경로 /security).

진입 후 사용 흐름은 다음과 같습니다.

  1. 페이지 상단의 서비스 선택 카드 캐러셀에서 분석할 서비스를 선택합니다. 검색창으로 서비스 이름이나 Git URL을 필터링할 수 있습니다.
  2. 선택한 서비스에 대해 9개 탭이 나타납니다. 원하는 보안 영역 탭으로 이동하여 스캔을 실행하거나 결과를 확인합니다. 설치형 Basic에서는 문서 발급 탭이 없어 8개입니다.
  3. 스캔 이력이 없는 서비스를 선택하면 개요 탭이 먼저 노출되어, 어떤 분석을 어떤 순서로 실행하면 되는지 안내합니다.
보안 분석은 독립 페이지입니다

이전에는 서비스 상세 페이지의 소스/빌드 카드 안에서 코드 분석/이미지 분석에 접근했지만, 현재는 [보안 분석] 메뉴로 재편되었습니다. 모든 보안 영역은 "[보안 분석] 메뉴 > 서비스 선택 > 해당 탭" 경로로 접근합니다.

보안 분석 개요 화면 — 서비스 선택 후 영역별 보안 상태

설치형 Basic 화면 — 문서 발급 탭·평가 완성도 상자·보안 점수가 없습니다
설치형 Basic 화면

URL 직접 진입​

보안 분석 페이지는 URL 쿼리 파라미터로 특정 서비스와 탭을 바로 열 수 있습니다.

  • ?id={서비스ID}: 선택할 서비스를 지정합니다.
  • ?area={탭키}: 진입 시 자동으로 선택할 탭을 지정합니다 (overview, sast, sca, dast, sbom, iac, secrets, gate, reports).

예) /security?id=12&area=sast 는 12번 서비스의 SAST 탭을 바로 엽니다.


탭 구성​

선택한 서비스의 보안 분석은 9개 탭으로 구성됩니다. 설치형 Basic에서는 문서 발급 탭이 제외되어 8개입니다.

탭역할사용 도구
개요영역별 보안 상태와 보안 점수·등급(대시보드와 같은 계산식). 스캔 이력이 없으면 자동으로 열립니다. 설치형 Basic에서는 점수·등급이 표시되지 않습니다-
코드 분석(SAST)소스 코드 정적 분석Semgrep + OpenGrep (순차 실행, 합집합 통합)
이미지 분석(SCA)이미지·의존성 취약점(CVE) 분석Trivy + Dependency-Check (동시 실행)
도메인 분석(DAST)실행 중인 애플리케이션 동적 분석ZAP + Nuclei (동시 실행)
SBOM / 라이선스구성요소 명세 및 라이선스 분석Syft · ScanCode Toolkit (탭 내 독립 스캔으로 직접 실행)
IaC 구성인프라 정의 코드의 설정 오류 검사Checkov
시크릿코드와 커밋 이력에 노출된 키·토큰 탐지Gitleaks
보안 게이트나머지 영역의 결과를 종합해 배포 가능 여부를 판정OPA
문서 발급GS 인증용 보안 문서 발급(필요한 스캔의 충족 여부를 함께 표시). 설치형 Basic에서는 제공되지 않습니다-

개요 탭 구성​

개요 탭은 선택한 서비스의 보안 종합 상태를 한 화면에서 요약합니다. 상단 KPI 헤더에 보안 점수·등급이 표시되고, 그 아래에 영역별 상태 라벨이 이어집니다. 맨 아래 도구 · 분석 기준 보기를 펼치면 각 영역이 어떤 도구로 무엇을 분석하는지 확인할 수 있습니다(라이선스가 SBOM과 별도 행으로 표시되어 8행).

  • 보안 종합 상태: 선택한 서비스의 보안 분석 전체를 요약합니다.

    • 보안 점수 (0~100): 보안 위험도 기반 점수이며, 대시보드 위험도와 산식이 같습니다. 기준 100점에서 취약점 심각도만큼 차감합니다(Critical -20 · High -8 · Medium -3 · Low -1). 그런 다음 최악 심각도에 따른 상한을 적용합니다 — Critical이 하나라도 있으면 70점(최대 C), High이 최악이면 79점, Medium이 최악이면 89점이 상한입니다. A~F 등급으로 표시됩니다(A 90↑ · F 60 미만).
    • 평가 상태: 스캔 커버리지에 따라 세 가지로 나뉩니다. 등급은 스캔 상태에 따라 세 가지로 나뉩니다.
  • 미평가("-"): 스캔 이력이 없거나 결과가 모두 오래된 상태입니다.

  • 부분 평가: 일부 영역만 최신이며 (잠정) 표시가 붙습니다.

  • 확정 등급: 해당되는 모든 영역을 최신 코드로 스캔한 상태입니다. 부분 평가는 스캔하지 않은 영역 1개당 상한이 10점씩 내려가므로, 한두 영역만 스캔한 서비스가 A로 보이지 않습니다. 자세한 값은 상태 사전을 참고하세요.

    • 치명(Critical) · 심각(High) 건수: 점수 대상 영역(SAST · SCA(배포 이미지) · IaC · DAST · 시크릿)의 Critical/High 취약점을 합산한 건수입니다. SBOM · 라이선스 · 게이트는 점수·집계 대상에서 제외됩니다.
    • 영역별 상태 라벨: SAST · SCA · DAST · SBOM · IaC · 시크릿 · 게이트 각 영역의 상태를 태그로 표시합니다. 라벨을 클릭하면 해당 보안 영역 탭으로 바로 이동합니다.

7개 보안 영역 소개​

SAST (정적 코드 분석)​

소스 코드를 빌드 없이 패턴 기반으로 검사하여 취약한 코드를 찾습니다. KIOPS는 Semgrep을 먼저 실행하고 성공하면 이어서 OpenGrep을 실행한 뒤 두 결과를 합집합으로 통합합니다. 도구 선택 토글은 없습니다.

  • SQL Injection (CWE-89), XSS (CWE-79), Command Injection (CWE-78)
  • Hardcoded Credentials (CWE-798), Path Traversal (CWE-22)

상세: SAST 스캔

SCA (의존성 분석)​

빌드된 컨테이너 이미지의 OS 패키지와 라이브러리 의존성에서 알려진 CVE 취약점을 찾습니다. KIOPS는 Trivy와 Dependency-Check를 동시에 실행하고 결과를 합집합으로 통합합니다.

상세: SCA 스캔

DAST (동적 분석)​

배포되어 실행 중인 웹 애플리케이션에 외부에서 요청을 보내며 런타임 취약점을 찾습니다. ZAP와 Nuclei를 같은 대상 도메인에 대해 동시에 실행하며, 결과는 한 행으로 통합되어 표시됩니다.

상세: DAST 스캔

SBOM / 라이선스 (구성요소 명세)​

소프트웨어 구성요소 명세서(SBOM)입니다. SBOM은 Syft, 소스 라이선스는 ScanCode로 생성되며 CycloneDX 1.6 형식으로 출력됩니다. 라이선스 정보도 함께 식별됩니다.

SBOM은 SAST·SCA의 부산물이 아니라 별개의 독립 스캔입니다. 다만 이미지 SCA를 실행하면 해당 이미지의 SBOM·라이선스 분석이 함께 요청되며, 소스 SBOM은 [SBOM / 라이선스] 탭에서만 실행합니다.

상세: SBOM 생성

IaC (인프라 코드 분석)​

Dockerfile, Kubernetes 매니페스트, Terraform 등 인프라 정의 코드의 보안 설정 오류를 검사합니다. Checkov를 사용합니다.

상세: IaC 스캔

시크릿 (자격증명 탐지)​

Git 저장소 코드와 커밋 이력 전체에서 노출된 API 키, 토큰, 비밀번호를 탐지합니다. Gitleaks를 사용합니다.

상세: 시크릿 스캔

보안 게이트 (배포 판정)​

게이트를 제외한 6개 보안 영역(SAST·SCA·DAST·라이선스·IaC·시크릿)의 스캔 결과를 정책 기준으로 종합 평가하여 배포 가능 여부를 판정합니다. 라이선스 위험은 SBOM 스캔에서 수집되며, SBOM 구성요소 명세 자체는 게이트 평가 대상이 아닙니다. OPA(Open Policy Agent) 정책을 사용합니다.

상세: 보안 게이트

영역을 세는 방식이 화면마다 다릅니다

영역별 상태 라벨은 탭 구성을 따라 7개(SAST·SCA·DAST·SBOM·IaC·시크릿·게이트)로 표시되고, 도구 · 분석 기준 보기 목록은 라이선스를 SBOM과 분리해 8행으로 표시합니다. 라이선스는 SBOM 스캔에서 파생되는 정보라 전용 탭 없이 SBOM / 라이선스 탭을 공유하기 때문입니다.


보안 용어 쉽게 이해하기​

자주 쓰이는 용어를 정리했습니다.

  • SAST (Static Application Security Testing): 소스 코드를 실행하지 않고 코드 자체를 분석하여 보안 취약점을 찾습니다.
  • SCA (Software Composition Analysis): 프로젝트에서 사용하는 외부 라이브러리와 패키지에 알려진 보안 취약점이 있는지 확인합니다.
  • DAST (Dynamic Application Security Testing): 실제로 실행 중인 애플리케이션에 HTTP 요청을 보내 취약점을 찾습니다.
  • SBOM (Software Bill of Materials): 소프트웨어에 포함된 모든 구성요소의 목록입니다.
  • IaC (Infrastructure as Code): 인프라를 코드로 정의한 것입니다. Dockerfile, K8s 매니페스트, Terraform 등이 해당합니다.
  • CVE (Common Vulnerabilities and Exposures): 공개적으로 알려진 보안 취약점에 부여되는 고유 식별자입니다.

심각도 분류 및 대응 가이드​

CVSS 기반 심각도​

CVSS(Common Vulnerability Scoring System)는 취약점의 심각도를 0-10점으로 표준화한 점수 체계입니다.

  • Critical (CVSS 9.0-10.0): 즉시 대응이 필요합니다.
  • High (CVSS 7.0-8.9): 24-48시간 내 대응이 필요합니다.
  • Medium (CVSS 4.0-6.9): 1-2주 내 대응이 필요합니다.
  • Low (CVSS 0.1-3.9): 다음 릴리스에 대응합니다.
  • Info (N/A): 선택적 대응입니다. 참고용 정보입니다.
Critical/High 취약점 발견 시

Critical이나 High 심각도의 취약점이 발견되면 즉시 조치가 필요합니다. 특히 프로덕션 환경에서는 해당 취약점이 악용될 위험이 있으므로 빠른 패치나 임시 대응 방안을 마련하세요.


빠른 시작: 전체 보안 분석 흐름​

처음이시라면 아래 단계를 따라 전체 보안 분석을 경험해보세요.

  1. 사이드바에서 [보안 분석] 메뉴를 클릭합니다.
  2. 상단 카드 캐러셀에서 분석할 서비스를 선택합니다.
  3. 개요 탭에서 도구 · 분석 기준 보기를 펼쳐 각 영역의 도구와 사전조건을 먼저 확인합니다.
  4. [서비스 관리] 목록에서 해당 서비스의 [설정] 을 열어 Git URL·브랜치·토큰을 등록합니다(코드 분석·IaC·시크릿 공통). [보안 분석]에는 설정 탭이 없습니다.
  5. SAST 탭에서 소스 코드 정적 분석을 실행합니다.
  6. SCA 탭에서 빌드된 이미지의 CVE를 분석합니다.
    • 이미지 SBOM·라이선스는 이 SCA 실행에 함께 요청됩니다. 소스 SBOM이 필요하면 SBOM / 라이선스 탭에서 직접 실행합니다.
  7. IaC 와 시크릿 탭에서 인프라 설정 오류와 노출된 자격증명을 점검합니다.
  8. 서비스 배포 후 DAST 탭에서 런타임 취약점을 분석합니다.
  9. 보안 게이트 탭에서 6개 영역 결과를 종합한 배포 판정을 확인합니다.

보안 분석 베스트 프랙티스​

Shift-Left Security​

"Shift-Left"란 보안 점검을 개발 프로세스 초기(왼쪽)로 옮기는 것을 의미합니다.

  1. 개발 초기부터 SAST 실행: 코드 작성 시점에서 취약점을 탐지하면 수정이 쉽습니다.
  2. 의존성 추가 시 SCA 확인: 새 패키지를 도입하기 전에 알려진 취약점이 없는지 확인하세요.
  3. 시크릿 정기 점검: 노출된 키/토큰은 빠르게 폐기하고 교체하세요.

취약점 관리​

  1. Critical/High 우선 처리
  2. 오탐 관리: 확인된 오탐은 false_positive로, 인지된 미수정 항목은 accepted_risk(위험 수용)로 분류
  3. 정기적 재스캔: 새로운 CVE가 계속 발견되므로 정기적으로 재스캔하세요.
  4. 보안 게이트 활용: 배포 전 6개 영역 결과를 종합 점검하세요.

관련 기능​