본문 바로가기

최근 등록된 글

새로운 정보와 해설
사이버보안

도커 쿠버네티스 보안 수칙: CWPP 및 컨테이너 취약점 점검

by 남뎅이 2026. 11. 1.

 

컨테이너와 쿠버네티스는 현대 클라우드 애플리케이션의 핵심 인프라이지만, 잘못된 도커 이미지 사용이나 권한 설정으로 인해 해커의 최우선 표적이 되고 있습니다. 기존 가상머신(VM) 방화벽으로는 컨테이너 내부의 런타임 위협을 막을 수 없으므로, 빌드 단계의 이미지 스캔부터 운영 환경을 방어하는 CWPP(클라우드 워크로드 보호 플랫폼)와 4C 보안 전략이 필수적입니다. 본문에서 컨테이너 보안 필수 용어, 도커 이미지 취약점 차단법, 쿠버네티스 보안 수칙을 즉시 확인하시기 바랍니다.

한눈에 보는 컨테이너 보안 핵심 용어 사전

가상머신(VM)과 다른 클라우드 네이티브 인프라를 보호하기 위해 입문자가 반드시 알아야 할 핵심 용어입니다.

1. 컨테이너 (Container)

애플리케이션과 실행에 필요한 라이브러리를 하나의 상자(컨테이너)로 묶어, 개발 환경이든 운영 환경이든 상관없이 어디서나 동일하고 빠르게 실행되도록 만든 경량화된 가상화 기술입니다.

2. 도커 (Docker)

컨테이너를 쉽게 생성, 배포, 실행할 수 있게 해주는 가장 대표적인 오픈소스 소프트웨어 플랫폼입니다.

3. 쿠버네티스 (Kubernetes, K8s)

수십 개에서 수만 개의 컨테이너가 죽으면 살려내고, 트래픽이 몰리면 자동으로 늘려주는 컨테이너 통합 관리 '오케스트레이션(지휘)' 시스템입니다.

4. 컨테이너 이미지 (Container Image)

컨테이너를 실행하기 위한 일종의 '설계도' 또는 '압축 파일'입니다. 누구나 만들어 저장소(Registry)에 올릴 수 있어 악성코드가 심어진 이미지를 다운받을 위험이 존재합니다.

5. CWPP (Cloud Workload Protection Platform)

가상머신, 컨테이너, 서버리스 등 클라우드에서 애플리케이션이 실행되는 단위인 '워크로드(Workload)' 자체를 런타임 위협으로부터 보호하는 특화된 보안 솔루션입니다.

도커(Docker) 컨테이너 이미지 취약점과 방어 수칙

컨테이너 보안의 첫 단추는 '깨끗하고 안전한 이미지(설계도)'를 사용하는 것입니다. 해커들은 겉보기에 정상적인 이미지 속에 암호화폐 채굴 악성코드나 백도어를 숨겨 유포합니다.

수칙 1: 검증된 '공식 베이스 이미지'만 사용 및 경량화

Docker Hub 등 퍼블릭 저장소에서 다운로드할 때는 반드시 'Official Image' 마크를 확인해야 합니다. 또한, 불필요한 해킹 표면을 줄이기 위해 우분투(Ubuntu) 같은 무거운 OS 대신 알파인 리눅스(Alpine Linux)와 같은 초경량 베이스 이미지를 사용하는 것이 원칙입니다.

수칙 2: 컨테이너 내부에서 Root 권한 사용 금지

도커는 기본적으로 컨테이너를 '루트(root)' 권한으로 실행하려 합니다. 만약 해커가 컨테이너를 뚫고 들어오면 서버 전체(호스트 OS)의 권한까지 탈취당할 수 있습니다. Dockerfile 작성 시 반드시 `USER` 명령어를 통해 제한된 권한의 일반 사용자로 실행되도록 설정해야 합니다.

수칙 3: 이미지 스캐닝 도구 자동화 연동

Trivy, Clair 같은 컨테이너 전용 취약점 스캐닝 도구를 CI/CD 파이프라인에 연결하여, 취약점이 발견된 이미지는 레지스트리에 등록되지 못하게 차단해야 합니다.

쿠버네티스(Kubernetes) 4C 보안 모델 가이드

클라우드 네이티브 컴퓨팅 재단(CNCF)이 공식적으로 권장하는 4계층(4C) 심층 방어 전략입니다. 각 계층은 안쪽의 계층을 감싸며 방어합니다.
4C 계층 보안 대상 및 역할 주요 보안 조치 사항
1. Cloud (클라우드) 가장 바깥쪽 물리 인프라 (AWS, GCP 등) CSP의 보안 규정 준수, 방화벽(VPC) 설정, IAM 접근 제어
2. Cluster (클러스터) 쿠버네티스 인프라 자체 (컨트롤 플레인, 노드) API 서버 접근 통제, RBAC(역할 기반 접근 제어) 설정, 통신 암호화(mTLS)
3. Container (컨테이너) 노드 위에서 실행되는 컨테이너 컨테이너 이미지 스캔, 권한 제한(Privileged 모드 차단)
4. Code (코드) 가장 안쪽의 애플리케이션 소스 코드 SAST/DAST 스캔, 오픈소스 취약점 점검, 통신 포트 최소화
핵심 요약: 가장 안쪽의 코드(Code)를 완벽하게 작성했더라도, 바깥쪽 클러스터(Cluster)의 API 서버가 외부 해커에게 노출되어 있다면 시스템 전체가 순식간에 장악됩니다. 4단계 모두 빈틈없이 관리해야 합니다.

런타임을 지키는 방패, CWPP의 주요 역할

코드 스캔과 4C 설정을 모두 통과하여 실제 서비스가 운영(Runtime)되는 도중에도 제로데이(Zero-day) 취약점을 이용한 해킹이 발생할 수 있습니다. 기존 백신은 짧게는 몇 분 단위로 생성되고 사라지는 수만 개의 컨테이너를 쫓아다니며 검사할 수 없습니다.

CWPP(Cloud Workload Protection Platform)는 바로 이 '운영 중인 컨테이너'를 지키는 전용 플랫폼입니다.

  • 행위 기반 런타임 탐지: 평소에 없던 의심스러운 프로세스(예: 갑작스러운 코인 채굴 스크립트 실행, 비정상적인 네트워크 통신)가 발생하면 즉시 해당 컨테이너를 차단하거나 격리합니다.
  • 마이크로 세그멘테이션 (Micro-segmentation): 컨테이너 간의 네트워크 통신을 잘게 쪼개어 엄격하게 통제합니다. 해커가 웹 서버 컨테이너를 뚫더라도, 그 안에서 데이터베이스 컨테이너로 이동(횡적 이동)하지 못하게 방화벽을 칩니다.

자주 묻는 질문 (FAQ)

Q1. 일반 서버(VM)에서 쓰던 백신을 컨테이너 안에 설치하면 안 되나요?

안 됩니다. 컨테이너는 '하나의 앱만 가볍게 실행'하는 목적이므로, 무거운 백신 에이전트를 컨테이너마다 설치하면 서버 자원이 고갈되고 배포 속도가 느려집니다. 대신 호스트(노드) 단위에서 컨테이너들을 밖에서 감시하는 가벼운 데몬셋(DaemonSet) 형태의 보안 에이전트(CWPP)를 사용해야 합니다.

Q2. 구글링이나 도커 허브(Docker Hub)에서 검색되는 이미지는 모두 안전한가요?

아닙니다. 누구나 자유롭게 올릴 수 있기 때문에, 유명 라이브러리와 이름이 비슷한 '타이포스쿼팅(Typosquatting)' 수법으로 악성코드를 심은 이미지가 무수히 많습니다. 반드시 제공자가 공식 인증된(Official) 이미지인지 확인하고 자체 스캔을 거쳐야 합니다.

마무리 및 후속 연재 안내

컨테이너 보안의 성공은 '가벼운 공식 이미지를 사용'하고 '최소 권한으로 실행'하는 기본 원칙에서 출발합니다. 지금 바로 프로젝트의 Dockerfile을 열어 불필요한 루트(Root) 권한이 부여되어 있는지 점검해 보시기 바랍니다.

다음 6편에서는 지금까지 배운 정적인 클라우드 인프라 방어(CSPM)와 동적인 런타임 방어(CWPP)를 하나로 묶어주는 '통합 보안 플랫폼 CNAPP'에 대해 알아보겠습니다.

공식 참조 출처 및 기준일:
- NIST SP 800-190 Application Container Security Guide (확인일: 2026-10-28)
- Kubernetes Official Security Documentation / 4C Framework (확인일: 2026-10-28)