0Pricing
Docker & DevOps Fundamentals · 강의

컨테이너 이미지 보안 검사

CI/CD 파이프라인에 이미지 검사 도구를 통합하여 Docker 이미지의 취약점을 식별하세요.

컨테이너 이미지 보안 검사은(는) CoddyKit의 무료 Docker & DevOps Fundamentals 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Docker & DevOps Fundamentals 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Docker & DevOps Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

컨테이너 이미지를 검사하는 이유

컨테이너 이미지는 현대 애플리케이션의 기반입니다. 다른 소프트웨어와 마찬가지로 컨테이너 이미지에도 숨겨진 보안 결함이 있을 수 있습니다. 이미지 검사는 애플리케이션을 배포하기 전에 이러한 결함을 찾는 중요한 실천 방법입니다.

실행 중인 소프트웨어가 안전하고 알려진 취약점이 없는지 확인하는 데 도움이 됩니다.

컨테이너 이미지 보안 검사 — 일러스트레이션 1

이미지에 숨겨진 위험

컨테이너 이미지에는 어떤 종류의 취약점이 숨어 있을 수 있을까요?

  • 오래된 기본 이미지: 알려진 보안 버그가 있는 오래된 운영 체제 버전(예: Ubuntu 또는 Alpine)을 사용하는 경우입니다.
  • 취약한 라이브러리: 이미지에 설치하는 추가 소프트웨어 패키지나 종속 항목에 보안 결함(CVE)이 있을 수 있습니다.
  • 잘못된 설정: 검사는 주로 알려진 CVE를 대상으로 하지만, 부적절한 설정도 위험을 초래할 수 있습니다.

이미지 검사 도구의 작동 방식

컨테이너 이미지 검사 도구는 다음과 같은 방식으로 작동합니다.

  • 계층 분석: Docker 이미지의 각 계층을 검사합니다.
  • 구성 요소 추출: 설치된 모든 패키지, 라이브러리, 종속 항목을 식별합니다(예: OS 패키지, Python 라이브러리, Node.js 모듈).
  • 데이터베이스와 비교: 이러한 구성 요소를 정기적으로 업데이트되는 광범위한 취약점 데이터베이스(예: CVE 데이터베이스)와 대조합니다.
  • 보고서 생성: 식별된 취약점, 심각도, 그리고 대개 권장 해결 방법을 자세히 보여 주는 목록을 제공합니다.

주요 도구

오픈 소스와 상용 제품을 포함하여 컨테이너 이미지 검사에 사용할 수 있는 강력한 도구가 여러 가지 있습니다.

  • Trivy: 사용하기 쉽고 폭넓은 범위를 지원하는 것으로 알려진 인기 있는 오픈 소스 검사 도구입니다.
  • Clair: 또 다른 견고한 오픈 소스 도구로, 대규모 컨테이너 레지스트리에 통합되는 경우가 많습니다.
  • Docker Scout (docker scan 사용): Docker Desktop에 내장되어 있으며 Snyk의 취약점 데이터베이스를 활용해 로컬에서 빠르게 검사합니다.

로컬에서 이미지 스캔하기

내장된 docker scan 명령을 사용하여 일반적인 Docker 이미지를 빠르게 스캔해 보겠습니다. 이 명령은 Docker Scout(Snyk 기반)를 사용하여 취약점을 확인합니다.

다음 예제를 실행해 보세요:

docker scan nginx:latest

결과 이해하기

스캔을 실행하면 보고서가 생성됩니다. 다음 항목을 확인하세요:

  • CVE ID: 취약점을 나타내는 고유 식별자입니다(예: CVE-2023-1234).
  • 심각도: 취약점이 얼마나 치명적인지를 나타냅니다(예: 치명적, 높음, 중간, 낮음).
  • 패키지: 결함이 포함된 특정 소프트웨어 구성 요소 또는 라이브러리입니다.
  • 수정 버전: 보고서에서 문제를 해결하는 패키지 또는 기본 이미지의 버전을 제안하는 경우가 많습니다.

워크플로에서 스캔하기

이미지 스캔의 진정한 장점은 개발 워크플로에 통합했을 때 발휘됩니다. 지속적 통합(CI) 파이프라인에 스캔을 추가하면 다음과 같은 작업을 수행할 수 있습니다:

  • 문제 조기 발견: 새 코드가 커밋되거나 이미지가 빌드되는 즉시 취약점을 식별합니다.
  • 보안 검사 자동화: 보안을 빌드 프로세스의 표준 자동화 단계로 만듭니다.
  • 배포 방지: 심각한 취약점이 발견되면 CI 파이프라인에서 빌드가 실패하도록 구성하여 안전하지 않은 이미지가 운영 환경에 도달하지 않게 합니다.

CI로 스캔 자동화하기

다음은 GitHub Actions 워크플로에 Trivy 스캔을 통합하는 방법을 개념적으로 보여 주는 코드 조각입니다. 이렇게 하면 빌드되는 모든 이미지가 자동으로 스캔됩니다.

# .github/workflows/scan.yml
name: Image Scan

on:
  push:
    branches: [ main ]

jobs:
  build-and-scan:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Build Docker Image
      run: docker build -t my-app:latest .
    - name: Run Trivy Scan
      uses: aquasecurity/trivy-action@master
      with:
        image-ref: 'my-app:latest'
        format: 'table'
        exit-code: '1' # Fail build on critical issues

발견한 문제 해결하기

취약점을 찾는 것은 문제 해결의 절반일 뿐이며, 나머지 절반은 취약점을 수정하는 것입니다! 다음은 일반적인 해결 전략입니다:

  • 기본 이미지 업데이트: 선택한 기본 이미지의 최신 패치 버전을 항상 사용합니다.
  • 종속성 최소화: 애플리케이션 실행에 반드시 필요한 패키지만 설치합니다.
  • 다단계 빌드: 다단계 Dockerfile을 사용하여 최종 이미지 크기를 줄이고 실행 시 필요하지 않은 빌드 도구를 제거합니다.
  • 패치 적용: 취약한 구성 요소에 사용할 수 있는 특정 보안 패치를 적용합니다.

스캔 확인

이미지 스캔은 안전한 컨테이너 개발에 필수적인 부분입니다. 이제 이해한 내용을 확인해 보겠습니다.

핵심 요점

컨테이너 이미지 보안 스캔의 중요한 역할을 배웠습니다:

  • 기본 이미지와 종속성에 포함된 알려진 취약점(CVE)을 식별합니다.
  • Trivy, Clair, Docker Scout 같은 도구가 이 과정을 자동화하는 데 도움을 줍니다.
  • 스캔을 CI/CD 파이프라인에 통합하면 취약점을 조기에 발견하고 안전하지 않은 이미지가 배포되는 것을 방지할 수 있습니다.
  • 이미지를 정기적으로 업데이트하고 종속성을 최소화하여 공격 표면을 줄입니다.

강력한 보안 태세를 유지하려면 이미지를 계속 스캔하세요!

자주 묻는 질문

“컨테이너 이미지 보안 검사” 강의는 무료인가요?

네 — “컨테이너 이미지 보안 검사” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Docker & DevOps Fundamentals 강의 전체를 잠금 해제할 수 있습니다. Docker & DevOps Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

“컨테이너 이미지 보안 검사”에서 뭘 배우나요?

CI/CD 파이프라인에 이미지 검사 도구를 통합하여 Docker 이미지의 취약점을 식별하세요. 브라우저에서 직접 실행하는 실습 코드로 Docker & DevOps Fundamentals을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Docker & DevOps Fundamentals을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Docker & DevOps Fundamentals은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“컨테이너 이미지 보안 검사” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Docker & DevOps Fundamentals 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Docker & DevOps Fundamentals 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 컨테이너 이미지 보안 검사
  2. 실행 중인 컨테이너 보안
  3. Secrets 관리 및 RBAC
  4. 네트워크 정책과 최소 권한 네트워킹
← Docker & DevOps Fundamentals(으)로 돌아가기