본문 바로가기
카테고리 없음

container 보안

by Knowledge Store In Hyunsoft 2024. 10. 21.

Trivy와 Clair는 모두 컨테이너 이미지 취약점 스캐너로, 보안 취약점을 탐지하고 이미지의 안전성을 평가하는 데 사용됩니다. 이와 유사한 도구 및 각 도구의 특장점을 살펴보겠습니다.

1. Anchore

  • Anchore는 컨테이너 이미지 분석 및 보안 정책 관리 솔루션입니다.
  • 특장점:
    • 사용자 정의 보안 정책 작성 및 적용 가능.
    • 다양한 이미지 저장소와 통합 (Docker Hub, Amazon ECR 등).
    • 오픈소스와 상업적 솔루션이 제공되어 필요에 따라 선택 가능.
    • 정책 위반 사항을 지속적으로 모니터링하고, 자동화된 스캔 가능.

2. Sysdig Secure

  • Sysdig Secure는 보안 모니터링, 취약점 관리, 런타임 보안 등의 기능을 제공하는 클라우드 네이티브 보안 플랫폼입니다.
  • 특장점:
    • 런타임 보안과 취약점 관리를 통합하여 이미지가 실제로 실행 중일 때도 보호.
    • Kubernetes 환경에 최적화된 보안 솔루션.
    • 런타임 정책을 설정하여 잠재적인 위협에 대한 실시간 대응 가능.
    • 보안 위협에 대한 포렌식 데이터 수집 및 분석 지원.

3. Aqua Security

  • Aqua Security는 컨테이너 보안에 특화된 플랫폼으로, 컨테이너 이미지 스캐닝부터 런타임 보호까지 다양한 보안 기능을 제공합니다.
  • 특장점:
    • 클라우드 네이티브 환경에 특화된 보안 기능.
    • 이미지 빌드부터 배포, 실행까지 모든 단계에서 보안 보장.
    • 자동화된 정책 엔진으로 보안 규칙을 정의하고 적용.
    • Kubernetes 및 다양한 오케스트레이션 환경과의 통합.

4. Grype

  • Grype는 빠르고 가벼운 오픈소스 취약점 스캐너로, SBOM(소프트웨어 구성 명세서)을 기반으로 컨테이너 이미지를 분석합니다.
  • 특장점:
    • 비교적 빠른 스캔 속도.
    • SBOM 형식(CycloneDX, SPDX 등) 지원.
    • Trivy와 마찬가지로 CLI를 사용한 간편한 통합.
    • 다양한 언어 및 패키지 매니저 지원.

5. Twistlock (Palo Alto Prisma Cloud)

  • Twistlock은 Palo Alto Networks의 클라우드 보안 솔루션 Prisma Cloud의 일부로, 컨테이너 보안, 호스트 보안, 서버리스 보안을 포함합니다.
  • 특장점:
    • 이미지 스캔뿐 아니라 클라우드 네이티브 애플리케이션의 전체 보안 제공.
    • 빌드, 배포, 런타임 전 과정에서 보안 제공.
    • 규정 준수를 지원하는 정책 엔진과 리포팅 기능.
    • AI 기반 위협 탐지 및 대응 기능 제공.

요약

  • TrivyClair와 유사한 도구로는 Anchore, Sysdig Secure, Aqua Security, Grype, Twistlock 등이 있으며, 각 도구는 컨테이너 이미지 스캐닝 기능 외에도 사용자 정의 보안 정책, 런타임 보안, 클라우드 네이티브 환경 통합 등 다양한 기능을 제공하고 있습니다.
  • 도구 선택 시 사용 환경(Kubernetes, 클라우드 플랫폼 등), 정책 관리 필요성, 런타임 보안 등의 요소를 고려하여 선택하는 것이 중요합니다.

 

 

Harbor 연동 가능한 솔루션
 

TrivyClair는 모두 컨테이너 이미지 취약점 스캐너로, 보안 취약점을 탐지하고 이미지의 안전성을 평가하는 데 사용됩니다. 이와 유사한 도구 및 각 도구의 특장점을 살펴보겠습니다.

1. Anchore

  • Anchore는 컨테이너 이미지 분석 및 보안 정책 관리 솔루션입니다.
  • 특장점:
    • 사용자 정의 보안 정책 작성 및 적용 가능.
    • 다양한 이미지 저장소와 통합 (Docker Hub, Amazon ECR 등).
    • 오픈소스와 상업적 솔루션이 제공되어 필요에 따라 선택 가능.
    • 정책 위반 사항을 지속적으로 모니터링하고, 자동화된 스캔 가능.

2. Sysdig Secure

  • Sysdig Secure는 보안 모니터링, 취약점 관리, 런타임 보안 등의 기능을 제공하는 클라우드 네이티브 보안 플랫폼입니다.
  • 특장점:
    • 런타임 보안과 취약점 관리를 통합하여 이미지가 실제로 실행 중일 때도 보호.
    • Kubernetes 환경에 최적화된 보안 솔루션.
    • 런타임 정책을 설정하여 잠재적인 위협에 대한 실시간 대응 가능.
    • 보안 위협에 대한 포렌식 데이터 수집 및 분석 지원.

3. Aqua Security

  • Aqua Security는 컨테이너 보안에 특화된 플랫폼으로, 컨테이너 이미지 스캐닝부터 런타임 보호까지 다양한 보안 기능을 제공합니다.
  • 특장점:
    • 클라우드 네이티브 환경에 특화된 보안 기능.
    • 이미지 빌드부터 배포, 실행까지 모든 단계에서 보안 보장.
    • 자동화된 정책 엔진으로 보안 규칙을 정의하고 적용.
    • Kubernetes 및 다양한 오케스트레이션 환경과의 통합.

4. Grype

  • Grype는 빠르고 가벼운 오픈소스 취약점 스캐너로, SBOM(소프트웨어 구성 명세서)을 기반으로 컨테이너 이미지를 분석합니다.
  • 특장점:
    • 비교적 빠른 스캔 속도.
    • SBOM 형식(CycloneDX, SPDX 등) 지원.
    • Trivy와 마찬가지로 CLI를 사용한 간편한 통합.
    • 다양한 언어 및 패키지 매니저 지원.

5. Twistlock (Palo Alto Prisma Cloud)

  • Twistlock은 Palo Alto Networks의 클라우드 보안 솔루션 Prisma Cloud의 일부로, 컨테이너 보안, 호스트 보안, 서버리스 보안을 포함합니다.
  • 특장점:
    • 이미지 스캔뿐 아니라 클라우드 네이티브 애플리케이션의 전체 보안 제공.
    • 빌드, 배포, 런타임 전 과정에서 보안 제공.
    • 규정 준수를 지원하는 정책 엔진과 리포팅 기능.
    • AI 기반 위협 탐지 및 대응 기능 제공.

요약

  • TrivyClair와 유사한 도구로는 Anchore, Sysdig Secure, Aqua Security, Grype, Twistlock 등이 있으며, 각 도구는 컨테이너 이미지 스캐닝 기능 외에도 사용자 정의 보안 정책, 런타임 보안, 클라우드 네이티브 환경 통합 등 다양한 기능을 제공하고 있습니다.
  • 도구 선택 시 사용 환경(Kubernetes, 클라우드 플랫폼 등), 정책 관리 필요성, 런타임 보안 등의 요소를 고려하여 선택하는 것이 중요합니다.
 
4o

나의 말:

horbor 연동 가능한 취약점 스캐너 리스트
 

ChatGPT의 말:

ChatGPT

Harbor는 클라우드 네이티브 컨테이너 이미지 레지스트리로, 보안 및 이미지 관리 기능을 강화하기 위해 여러 취약점 스캐너와 연동할 수 있습니다. Harbor와 연동 가능한 주요 취약점 스캐너는 다음과 같습니다:

1. Trivy

  • 설명: Trivy는 Harbor에 기본 통합된 취약점 스캐너로, 오픈소스 이미지, 운영체제 패키지 및 소프트웨어 구성 요소의 취약점을 스캔합니다.
  • 특장점:
    • 빠른 스캔 속도.
    • 다양한 OS 및 언어 패키지 지원.
    • Kubernetes 클러스터 스캐닝 지원.

2. Clair

  • 설명: Clair는 Harbor와 연동 가능한 취약점 스캐너로, 컨테이너 이미지의 계층을 분석하고 취약점을 식별합니다.
  • 특장점:
    • 이미지 계층별 분석을 통한 심층 스캔.
    • 주기적인 데이터베이스 업데이트를 통해 최신 취약점 정보 제공.
    • API 기반 통합으로 다른 시스템과도 쉽게 연동 가능.

3. Anchore Engine

  • 설명: Anchore Engine은 오픈소스 기반 컨테이너 이미지 취약점 스캐너로, Harbor와 연동하여 이미지 스캔 및 정책 기반 보안 관리를 제공합니다.
  • 특장점:
    • 사용자 정의 보안 정책 작성 가능.
    • 다양한 이미지 레지스트리 및 클라우드 플랫폼과 통합 가능.
    • 취약점 외에도 정책 위반 사항을 스캔 가능.

4. Aqua Trivy Premium

  • 설명: Aqua Security의 상용 버전인 Aqua Trivy Premium도 Harbor와 연동할 수 있습니다. 트리비의 기본 기능을 확장하여 더 많은 엔터프라이즈 기능을 제공합니다.
  • 특장점:
    • 확장된 취약점 데이터베이스와 고급 보고 기능.
    • 통합된 보안 관리 및 정책 설정.
    • 클라우드 네이티브 보안 전체 라이프사이클 관리.

5. Twistlock (Prisma Cloud)

  • 설명: Twistlock은 Palo Alto의 Prisma Cloud 제품군 일부로, Harbor와 연동하여 컨테이너 이미지에 대한 보안 스캔을 실행할 수 있습니다.
  • 특장점:
    • 클라우드 네이티브 애플리케이션의 전체 보안 스택 제공.
    • 런타임 보안과 통합된 취약점 관리.
    • 인프라와 코드까지 아우르는 통합된 보안 관제.

6. JFrog Xray

  • 설명: JFrog Xray는 Harbor와 연동하여 컨테이너 이미지에 대한 심층적인 보안 분석을 제공합니다.
  • 특장점:
    • 이미지의 모든 계층과 종속성을 검사.
    • SBOM(Software Bill of Materials) 생성 및 관리.
    • JFrog 플랫폼과의 완전한 통합으로 아티팩트 레벨의 관리 제공.

요약

  • Harbor와 연동 가능한 대표적인 취약점 스캐너로는 Trivy, Clair, Anchore Engine, Aqua Trivy Premium, Twistlock (Prisma Cloud), JFrog Xray가 있습니다.
  • Harbor는 Trivy를 기본 제공하며, 추가적으로 다양한 외부 스캐너를 통합하여 더 높은 수준의 보안 기능을 제공할 수 있습니다.
  • 선택 시에는 기능 요구사항, 확장성, 사용자 정의 가능성, 엔터프라이즈 보안 기능 등을 고려하여 선택하는 것이 좋습니다.
 

harbor의 이미지 취약점 분석 및 pull /push  정책

 1. Harbor의 취약점 분석 기능

Harbor는 이미지의 보안을 위해 다양한 취약점 스캐너와 통합할 수 있으며, Trivy 스캐너가 기본적으로 내장되어 있습니다. 이를 통해 Harbor는 컨테이너 이미지를 분석하고, 보안 취약점을 탐지합니다.

취약점 분석 동작 과정:

  1. 이미지 푸시: 사용자가 Harbor 레지스트리에 컨테이너 이미지를 푸시하면, Harbor는 설정에 따라 자동으로 해당 이미지에 대해 취약점 분석을 수행합니다.
  2. 취약점 스캐닝: Trivy 또는 연동된 다른 스캐너가 이미지를 분석하고, 이미지에 포함된 패키지나 라이브러리의 취약점을 확인합니다.
  3. 리포트 생성: 분석된 취약점 정보를 기반으로 취약점 리포트가 생성됩니다. 리포트에는 각 취약점의 심각도(Critical, High, Medium, Low), 취약점 ID, 패키지 이름, 버전 등이 포함됩니다.
  4. 리포트 확인: Harbor UI에서 리포트를 확인할 수 있으며, 심각도에 따라 필요한 조치를 취할 수 있습니다.

취약점 리포트 예시:

  • 이미지 이름: my-app:v1.0
  • 취약점 개수: 15개
    • Critical: 3개
    • High: 5개
    • Medium: 4개
    • Low: 3개
  • 상세 항목:
    • CVE-2023-XXXXX (Critical): 패키지 openssl의 버전 X.X.X에서 발견된 취약점. 업데이트 권장.
    • CVE-2022-XXXXX (High): 패키지 glibc에서 발견된 버그. 패치 필요.

2. Pull/Push 정책

Harbor는 취약점 분석 결과에 따라 이미지의 Pull 및 Push를 제어할 수 있는 정책을 설정할 수 있습니다. 이를 통해 보안 기준을 충족하지 않는 이미지를 사용하거나 배포하는 것을 방지할 수 있습니다.

정책 설정 및 적용:

  1. Push 정책:
    • 취약점 없는 이미지 강제 푸시: 이미지를 Harbor로 푸시할 때, 일정 수준 이상 심각한 취약점이 포함된 이미지는 푸시를 차단할 수 있습니다. 예를 들어, Critical 또는 High 취약점이 발견되면 푸시를 금지하는 정책을 설정할 수 있습니다.
    • 정책 리포트: 푸시가 차단된 경우, 관리자에게 리포트를 제공하여 어떤 취약점이 문제가 되었는지 알려줍니다.
  2. Pull 정책:
    • 취약점 있는 이미지 Pull 차단: 사용자가 이미지를 Pull하려고 할 때, 특정 수준 이상의 취약점을 포함한 이미지는 Pull을 차단할 수 있습니다. 예를 들어, Critical 취약점이 포함된 이미지는 사용할 수 없도록 정책을 설정합니다.
    • 정책 리포트: 이미지의 Pull이 차단될 경우, 관리자는 어떤 이유로 Pull이 차단되었는지 리포트를 통해 확인할 수 있습니다.

정책 리포트 예시:

  • 이미지: my-app:v1.0
  • 정책 위반: Critical 취약점 존재 (CVE-2023-XXXXX)
  • 액션: 이미지 Push 차단 (취약점 해결 후 재시도 필요)
  • 조치 방법: 패키지 업데이트 후 재배포 권장.

3. 리포트 생성 및 활용

Harbor는 취약점 스캔과 Pull/Push 정책의 위반 사항에 대한 리포트를 생성하며, 관리자는 이를 통해 보안 상태를 모니터링하고 대응할 수 있습니다.

  • 자동화된 리포트: Harbor는 주기적으로 또는 특정 액션(Push, Pull 등) 발생 시 리포트를 자동 생성합니다.
  • 리포트 내역 확인: UI나 API를 통해 취약점 분석 결과 및 정책 위반 내역을 확인할 수 있으며, 이를 바탕으로 보안 상태를 관리합니다.
  • 외부 시스템 통합: Harbor의 API를 통해 리포트를 외부 시스템과 연동하거나, CI/CD 파이프라인에 통합할 수 있습니다.

요약

  • Harbor는 취약점 분석 기능을 통해 이미지의 보안 상태를 파악하고, 이를 리포트로 제공하며, Pull/Push 정책을 통해 보안 기준을 충족하지 못한 이미지를 제어할 수 있습니다.
  • 관리자와 개발자는 리포트를 통해 취약점을 확인하고, CI/CD 파이프라인에서 이를 자동화하여 보안 사고를 미연에 방지할 수 있습니다.

 

GitLab CI에서 컨테이너 취약점 분석을 자동화

 

GitLab CI에서 컨테이너 취약점 분석을 자동화하여 CI/CD 파이프라인 내에서 이미지 보안을 강화할 수 있습니다. TrivyAnchore와 같은 취약점 스캐너를 GitLab CI 파이프라인에 통합하면, 빌드된 컨테이너 이미지를 자동으로 분석하고 취약점이 있는 경우 파이프라인을 실패시키거나 경고를 표시할 수 있습니다.

다음은 GitLab CI에서 컨테이너 취약점 분석을 수행하는 대표적인 방법입니다.

1. Trivy를 사용한 컨테이너 취약점 분석

Trivy는 빠르고 가벼운 오픈소스 취약점 스캐너로, GitLab CI와 쉽게 통합할 수 있습니다.

GitLab CI 파이프라인 설정 예시:

먼저 trivy를 사용하여 GitLab CI에서 컨테이너 이미지를 스캔하는 방법입니다.

  1. .gitlab-ci.yml 파일 설정:
yaml
코드 복사
stages: - build - security_scan variables: DOCKER_IMAGE: "my-app:v1.0" build: stage: build script: - docker build -t $DOCKER_IMAGE . only: - main security_scan: stage: security_scan image: name: aquasec/trivy:latest entrypoint: [""] script: # Trivy를 사용하여 도커 이미지의 취약점 스캔 - trivy image --severity HIGH,CRITICAL $DOCKER_IMAGE allow_failure: false # 취약점이 있으면 파이프라인 실패 only: - main

설명:

  • build 스테이지: 애플리케이션의 Docker 이미지를 빌드합니다.
  • security_scan 스테이지: aquasec/trivy 이미지를 사용하여 빌드된 Docker 이미지를 스캔합니다.
    • trivy image 명령어로 컨테이너 이미지를 스캔하며, --severity 플래그를 통해 HIGH 또는 CRITICAL 수준의 취약점만 탐지하도록 설정합니다.
    • allow_failure: false 설정으로 인해 취약점이 발견되면 파이프라인이 실패합니다.

Trivy 스캔 결과 예시:

스캔 결과는 GitLab CI에서 출력되며, 각 취약점에 대한 상세 정보가 제공됩니다. 예:

makefile
코드 복사
2023-10-21T12:34:56Z INFO Number of language-specific files: 1 2023-10-21T12:34:56Z INFO Detected OS: alpine 2023-10-21T12:34:56Z INFO Detecting Alpine vulnerabilities... CVE-2023-XXXX (Critical): OpenSSL X.X.X CVE-2022-YYYY (High): glibc X.X.X ...

2. Anchore Engine을 사용한 취약점 분석

Anchore Engine도 GitLab CI에서 컨테이너 이미지에 대한 보안 분석을 제공할 수 있습니다. Anchore는 Docker 이미지를 분석하여 취약점을 탐지하고 정책 기반 검사를 수행합니다.

Anchore Engine을 GitLab CI와 통합하는 방법:

  1. Anchore Engine 설치:
    • Anchore Engine을 로컬 또는 Kubernetes 환경에 배포하여 REST API를 통해 컨테이너 이미지를 스캔할 수 있습니다.
    • 또는 SaaS형 Anchore Cloud를 사용할 수 있습니다.
  2. .gitlab-ci.yml 파일 설정:
yaml
코드 복사
stages: - build - security_scan variables: DOCKER_IMAGE: "my-app:v1.0" ANCHORE_CLI_URL: "http://anchore-engine:8228/v1" ANCHORE_CLI_USER: "admin" ANCHORE_CLI_PASS: "password" build: stage: build script: - docker build -t $DOCKER_IMAGE . only: - main security_scan: stage: security_scan image: anchore/engine-cli:latest script: - echo "Running Anchore scan for image: $DOCKER_IMAGE" - anchore-cli image add $DOCKER_IMAGE - anchore-cli image wait $DOCKER_IMAGE - anchore-cli image vuln $DOCKER_IMAGE all allow_failure: false # 취약점이 있으면 파이프라인 실패 only: - main

설명:

  • build 스테이지: 애플리케이션의 Docker 이미지를 빌드합니다.
  • security_scan 스테이지: anchore-cli 도구를 사용하여 Anchore 엔진에 Docker 이미지를 추가하고 스캔 결과를 조회합니다.
    • anchore-cli image add: 이미지를 Anchore에 추가합니다.
    • anchore-cli image vuln: 이미지에 대한 취약점 리포트를 생성합니다.
    • allow_failure: false: 취약점이 발견되면 파이프라인이 실패하도록 설정합니다.

Anchore 스캔 결과 예시:

arduino
코드 복사
Vulnerabilities for image 'my-app:v1.0': CVE-2023-XXXX (Critical): openssl (X.X.X) CVE-2022-YYYY (High): glibc (X.X.X) ...

3. GitLab의 자체 보안 스캐닝 기능 (Container Scanning)

GitLab 자체적으로도 Container Scanning 기능을 제공합니다. GitLab의 Container Scanning 기능을 사용하면 GitLab CI 파이프라인에서 Docker 이미지를 자동으로 스캔하고 취약점을 탐지할 수 있습니다.

GitLab의 Container Scanning 설정 방법:

  1. .gitlab-ci.yml에 컨테이너 스캐닝 추가:
yaml
코드 복사
include: - template: Security/Container-Scanning.gitlab-ci.yml stages: - build - test - container_scanning variables: CS_ANALYZER_IMAGE: "registry.gitlab.com/security-products/container-scanning:latest" build: stage: build script: - docker build -t $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:latest container_scanning: stage: container_scanning allow_failure: false

설명:

  • Container Scanning 템플릿: GitLab에서 제공하는 Security/Container-Scanning.gitlab-ci.yml 템플릿을 포함하여 컨테이너 스캐닝 작업을 추가합니다.
  • 변수 설정: CS_ANALYZER_IMAGE 변수를 설정하여 스캔 도구 이미지를 지정합니다.
  • 결과 확인: 파이프라인 완료 후 GitLab UI에서 스캔 결과를 확인할 수 있습니다.

요약

GitLab CI에서 컨테이너 취약점 분석을 수행하는 방법은 크게 세 가지입니다:

  1. Trivy: 빠르고 가벼운 오픈소스 취약점 스캐너.
  2. Anchore Engine: 고급 정책 관리 및 보안 검사 기능을 제공하는 스캐너.
  3. GitLab 자체 Container Scanning: GitLab에서 제공하는 보안 스캔 템플릿을 사용하여 쉽게 통합.

각 방법은 환경과 요구 사항에 따라 선택할 수 있으며, GitLab CI 파이프라인에서 자동화된 컨테이너 이미지 보안 검사를 통해 개발 프로세스 내에서 보안을 강화할 수 있습니다.

728x90

댓글