콘텐츠로 이동

Kubescape

Kubescape는 ARMO의 오픈소스 쿠버네티스 보안 자세 관리 플랫폼 (CNCF 인큐베이팅 프로젝트)이다. IDE, CI/CD 파이프라인, 실행 중인 클러스터에서 리스크 분석, 컴플라이언스 스캔, 오설정 탐지, 취약점 스캔을 제공한다.

CommandDescription
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | bash최신 버전 설치 (macOS/Linux)
brew install kubescapeHomebrew를 통해 설치 (macOS)
scoop install kubescapeScoop를 통해 설치 (Windows)
docker run -it kubescape/kubescape:latest kubescape --helpDocker에서 Kubescape 실행
kubescape version설치된 버전 표시
kubescape download프레임워크 및 정책 다운로드
kubescape download --frameworks모든 프레임워크 다운로드
CommandDescription
kubescape scankubeconfig를 사용하여 현재 클러스터 스캔
kubescape scan --kubeconfig /path/to/kubeconfig특정 kubeconfig로 클러스터 스캔
kubescape scan -f manifest.yamlYAML 매니페스트 파일 스캔
kubescape scan -f *.yaml여러 매니페스트 파일 스캔
kubescape scan -d ./k8s-configs/디렉토리의 모든 매니페스트 스캔
kubescape scan --helm /path/to/chart배포 전 Helm 차트 스캔
kubescape scan --include-namespaces default,kube-system특정 네임스페이스만 스캔
kubescape scan --exclude-namespaces kube-node-lease스캔에서 네임스페이스 제외
kubescape scan --severity high,critical높음/심각 심각도 문제만 표시
kubescape scan --pod-runtime containerd컨테이너 런타임 지정 (docker, containerd, cri-o)
CommandDescription
kubescape scan framework nsaNSA-CISA 쿠버네티스 강화 가이드에 대해 스캔
kubescape scan framework cisCIS 쿠버네티스 벤치마크에 대해 스캔
kubescape scan framework mitreMITRE ATT&CK 프레임워크에 대해 스캔
kubescape scan framework pci-dssPCI-DSS 컴플라이언스에 대해 스캔
kubescape scan framework soc2SOC2 컴플라이언스에 대해 스캔
kubescape scan framework hipaaHIPAA 컴플라이언스에 대해 스캔
kubescape scan -f manifest.yaml -f nsa,cis,mitre여러 프레임워크에 대해 매니페스트 스캔
kubescape scan --list-frameworks사용 가능한 모든 프레임워크 나열
CommandDescription
kubescape scan image gcr.io/project/image:tag취약점에 대해 컨테이너 이미지 스캔
kubescape scan image --image-scan-concurrency 5 image1 image2동시에 여러 이미지 스캔
kubescape scan -f manifest.yaml --include-image-scanning매니페스트 및 모든 참조 이미지 스캔
kubescape scan image --severity critical --only-vulnerabilities심각한 취약점만 표시
kubescape scan image --image-registry-credentials user:pass@registry:5000프라이빗 레지스트리 이미지 스캔
kubescape scan -f manifest.yaml --image-scan-cache반복 실행을 위해 이미지 스캔 캐시
CommandDescription
kubescape scan -o json > report.json결과를 JSON으로 출력
kubescape scan -o pdf > report.pdfPDF 보고서 생성
kubescape scan -o html > report.htmlHTML 보고서 생성
kubescape scan -o sarif > report.sarifSARIF 형식으로 출력 (CI/CD 도구용)
kubescape scan -o pretty-json보기 좋게 형식화된 JSON 출력
kubescape scan --output-file report.json -o json파일에 출력 저장
kubescape scan -o json | jq '.results[] | select(.severity=="critical")'jq로 JSON 결과 필터링
CommandDescription
kubescape scan --fail-threshold 80리스크 스코어가 80 미만이면 파이프라인 실패
kubescape scan --fail-threshold 70 --severity critical심각한 발견에서 파이프라인 차단
kubescape scan -f manifest.yaml --fail-threshold 85 -o sarifGitHub Actions에서 SARIF 생성 + 차단
kubescape scan --fail-on-compliance-failure컴플라이언스 프레임워크 실패 시 실패
kubescape scan -o json --format-by-severity심각도 수준별로 그룹화된 출력
- name: Run Kubescape security scan
  uses: kubescape/github-action@v2
  with:
    kubeconfig: ${{ secrets.KUBECONFIG }}
    frameworks: nsa,cis
    fail-threshold: 80
    output-format: sarif
    output-file: kubescape-report.sarif

- name: Upload SARIF to GitHub Security
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: kubescape-report.sarif
kubescape_scan:
  stage: security
  image: kubescape/kubescape:latest
  script:
    - kubescape scan framework nsa --fail-threshold 80 -o sarif > report.sarif
    - kubescape scan framework cis --fail-threshold 75 -o json > cis-report.json
  artifacts:
    reports:
      sast: report.sarif
    paths:
      - cis-report.json
stage('Security: Kubescape') {
    steps {
        sh '''
            kubescape scan -f k8s-manifests/ \
              --fail-threshold 80 \
              -o sarif > kubescape-report.sarif \
              -o json > kubescape-report.json
        '''
        archiveArtifacts artifacts: '*-report.*'
    }
}
CommandDescription
kubescape download --output-dir ./offline-data로컬 디렉토리에 모든 프레임워크 다운로드
kubescape download --frameworks nsa,cis --output-dir ./fw특정 프레임워크 오프라인 다운로드
kubescape scan -f manifest.yaml --offline --frameworks-dir ./offline-data다운로드한 프레임워크를 사용하여 스캔
kubescape scan -d manifests/ --offline --frameworks-dir ./offline-data오프라인 디렉토리 스캔
CommandDescription
kubescape config현재 구성 표시
kubescape config set <key> <value>구성 값 설정
kubescape config get <key>구성 값 가져오기
kubescape config -p ~/.kubescape/config사용자 정의 구성 파일 경로 사용
kubescape scan -c ./custom-config.yaml사용자 정의 구성으로 스캔
CommandDescription
kubescape operator install클러스터에 Kubescape operator 설치
kubescape operator install --namespace kubescape특정 네임스페이스에 operator 설치
kubescape operator uninstallKubescape operator 제거
kubectl get deployment -n kubescapeoperator 설치 확인
kubectl logs -n kubescape -l app=kubescape-operatoroperator 로그 보기
kubescape operator statusoperator 상태 확인
CommandDescription
kubescape scan --exceptions exceptions.json예외 규칙을 스캔에 적용
kubescape scan --enable-controls <control-id>특정 컨트롤 활성화
kubescape scan --disable-controls <control-id>특정 컨트롤 비활성화
kubescape scan --controls <id1>,<id2>지정된 컨트롤만 실행
kubescape scan --list-controls사용 가능한 모든 컨트롤 나열
kubescape scan --list-controls --framework nsaNSA 프레임워크 컨트롤 나열
{
  "exceptions": [
    {
      "ruleID": "C-0001",
      "namespace": "test-namespace",
      "resources": ["deployment/test-app"],
      "justification": "Development environment exemption"
    }
  ]
}
CommandDescription
kubescape scan --verbose상세 디버그 출력 표시
kubescape scan --log-level debug로깅 수준 설정 (debug, info, warn, error)
kubescape scan --submit스캔 결과를 Kubescape Cloud에 제출
kubescape scan --account <account-id>특정 클라우드 계정에 제출
kubescape scan --keep-local클라우드에 제출하지 않고 스캔
kubescape scan --max-workers 10병렬 처리 워커 제어
kubescape scan --timeout 300제한 시간 설정 (초)
PracticeDescription
버전 관리 매니페스트항상 쿠버네티스 매니페스트 버전 관리; 배포 전 스캔
리스크 스코어에서 차단CI/CD에서 --fail-threshold 설정; 조직 리스크 허용도에 따라 75-85 사용
다중 프레임워크 스캔NSA + CIS + MITRE 사용; 우선순위가 가장 높은 발견부터 해결
정기 이미지 스캔공급 체인에서 컨테이너 이미지 스캔; 초기에 CVE 포착
네임스페이스 격리--include-namespaces를 사용하여 스캔 초점; 시스템 네임스페이스 제외
보안 환경의 오프라인에어갭 클러스터의 경우 오프라인으로 프레임워크 다운로드
시간 경과에 따른 모니터링스캔 전체의 리스크 스코어 추적; 회귀 조사
예외 정당화예외를 문서화; 제거를 위해 정기적으로 검토
Helm 사전 배포Helm 설치 전 차트에서 kubescape scan --helm 실행
RBAC 활성화ServiceAccount가 최소 필요 권한을 가지고 있는지 확인
SARIF 출력 사용SARIF 보고서를 IDE, GitHub, SIEM 시스템에 통합
컨트롤 세부 정보 검토kubescape scan --list-controls를 사용하여 각 컨트롤의 목적 이해