관리 메뉴

miinsun

KCSA 대비 본문

Infra/Kubernetes

KCSA 대비

miinsun 2025. 6. 22. 19:06

긍정어

  • mitigated : 완화된, 줄인
  • persistence: 고집, 끈기, 영속성
  • dedicated: 헌신적인, 전용의
  • consistency : 일관성
  • integrity : 진실성
  • legitimate / legitimacy : 정당한 / 정당성, 합법성
  • compromise : 타협하다, 절충하다
  • adhere : 지키다, 준수하다, 고수하다

 

부정어

  • vulnerable / vulnerability : 취약한 / 취약성
  • compromised : 손상된, 탈취된
  • exploit : 악용하다
  • suspicious : 의심스러운
  • rely on : 의존하다
  • excessive : 과도한
  • impersonate : 사칭하다
  • bypassing : 우회하다
  • repudiation : 거부, 거절, 부인 (법률적 의미 : 주장에 대한 거부, 부인 방지)
  • disclosure : 폭로, 공개 
  • dispute : 분쟁, 갈등, 논란
  • malicipis : 악의있는

 

알아둬야하는 개념

The 4Cs of Cloud Native Security

범주 집중 영역 주요 공격 벡터 핵심 모범 사례
Cloud Infra 관리 포트 노출, 과도한 권한의 IAM 역할 방화벽, VPN/ bastion , 역할 감사
Cluster Control Plane &
APIs
공개 Docker API, 보안 설정되지 않은 Kubernetes API/대시보드 API 보호, RBAC, OIDC/TLS, 정기 패치
Container Workload Isolation 신뢰되지 않는 이미지, 권한 상승 컨테이너, 느슨한 런타임 설정 이미지 서명/스캔, PSP/PSA, seccomp, 리소스 제한
Code Application &
Secrets
하드코딩된 자격 증명, 평문 환경 변수, mTLS 미적용 Vault/K8s Secrets(암호화), 상호 TLS, 코드 리뷰

Kubernetes 컴포넌트의 TLS를 이용한 통신 암호화
컨트롤러 매니저, 스케줄러, API 서버, etcd 간의 모든 통신이 암호화되도록 보장합니다:

  • 클라이언트-서버 및 서버-서버 연결에 상호 TLS(mTLS) 활성화
  • 신뢰할 수 있는 인증 기관(CA) 또는 cert-manager 사용
  • 인증서 갱신 자동화를 통해 자격 증명 만료 방지

 

 

 

kubelet Security Options
기본적으로 kubelet은 익명 요청(system:anonymous)을 허용합니다.

클라이언트가 자격증명을 하려면 이 기능을 비활성화 해야 함

 

KubeAPIServer Security Options

  • certificate-authority: API 서버의 인증서를 검증하도록 보장합니다.
  • "server: https://… " : 암호화된 HTTPS 연결을 강제합니다.
  • Service Account token File: 인증된 RBAC 제어 접근을 제공합니다.
  • Enable Audit Logging

 

Pod Security Policies (PSP)

  • Enabling the PSP Admission Controller
  • Defining a Basic PSP : A minimal PSP that disallows privileged containers
  • requiredDropCapabilities : 기본적으로 위험한 권한(capabilities)을 제거합니다.
  • defaultAddCapabilities : 안전한 권한을 명시적으로 추가하는 옵션
  • Volume Type을 persistentVolumeClaim으로만 제한하며, host-mounted path는 허용하지 않음

 

Kubernetes Authorization Mechanisms

Node system:node:<nodeName> 인증서를 기반으로 kubelet에 필요한 권한만 정확히 부여합니다.
ABAC API 서버 시작 시 전달된 속성 기반 JSON 정책을 사용합니다.
RBAC 권한 모음(Role)과 이를 사용자/그룹에 할당하는 RoleBinding을 정의합니다.
Webhook 각 요청을 외부 HTTP 서비스(예: OPA)로 위임하여 맞춤형 정책 결정을 수행합니다.

 

Kubernetes 기본 네임스페이스

default 사용자의 워크로드를 위한 기본 네임스페이스
kube-system 클러스터 핵심 컴포넌트 및 애드온(DNS, 네트워크 플러그인, 컨트롤러 등)
kube-public 공개적으로 접근 가능한 리소스를 위한 읽기 전용 네임스페이스

 

취약점 영향

Dirty COW 승인되지 않은 루트 권한 획득을 허용하는 리눅스 커널 결함
runc 컨테이너 탈출 runc 바이너리를 덮어써 호스트 수준 권한을 획득
Docker 컨테이너 이스케이프 컨테이너 내부에서 호스트의 Secret 파일에 접근
Containerd DoS containerd 자원 고갈을 통해 호스트에 서비스 거부 상태 유발
CRI-O 컨테이너 Escape CRI-O 샌드박스를 벗어나 호스트 환경으로 탈출

 

Trust Boundary

클러스터 (Cluster) 전체 Kubernetes 클러스터 VPC 분리, 전용 클러스터
노드 (Node) 단일 컴퓨트 호스트 노드 강화, kubelet 인증, 호스트 OS 패치
네임스페이스 (Namespace) 논리적 분할 RBAC 역할, NetworkPolicy
파드 (Pod) 애플리케이션 인스턴스 PodSecurityPolicies, egress/ingress 정책
컨테이너 (Container) 컨테이너 프로세스 AppArmor, seccomp, 최소 베이스 이미지

 

Application in Container BestPractices

최소 베이스 이미지 사용 distroless 등 경량화되고 잘 관리되는 이미지 사용으로 OS 수준 취약점 축소
이미지 서명 강제 Notary, Cosign 같은 도구로 배포 전 이미지 스캔 및 서명
비밀정보 주기적 교체 비밀값 회전 자동화 및 장기 사용 자격 증명 회피
최소 권한 RBAC 적용 각 서비스 계정에 필요한 권한만 부여
네트워크 정책 구현 파드 간 통신 분리 및 Kubernetes API 서버로의 egress 제한

 

Service Mesh의 주요 기능

기능 설명 예시 도구/설정
서비스 디스커버리 (Service Discovery) 동적 조회를 위해 정상 인스턴스 레지스트리를 유지합니다. Envoy, Consul Catalog
상태 확인 (Health Checking) 응답이 없는 인스턴스를 제거해 비정상 파드로의 라우팅을 방지합니다. HTTP/gRPC 프로브, 커스텀 헬스 체크
로드 밸런싱 (Load Balancing) 라운드 로빈, 최소 연결, 로컬리티 기반 등 다양한 알고리즘으로 트래픽을 분산합니다. Envoy의 LB 알고리즘
보안 (mTLS) 서비스 간 모든 트래픽을 암호화하고 인증합니다. Istio PeerAuthentication, Linkerd identity service
트래픽 관리 (Traffic Management) 재시도, 타임아웃, 장애 주입, 트래픽 분할 정책 등을 적용해 요청 흐름을 제어합니다. Istio VirtualService, Linkerd ServiceProfile
관측 가능성 (Observability) 엔드 투 엔드 가시성을 위해 메트릭, 로그, 트레이스를 수집합니다. Prometheus, Jaeger, Grafana

 

주요 Compliance Frameworks

프레임워크 적용 범위  주요 요구사항
GDPR EU 개인 데이터 보호 저장 시 암호화, 데이터 접근 제한
HIPAA 미국 의료 정보(PHI) 보호 TLS 암호화, 엄격한 접근 제어, 안전한 비밀 관리
PCI DSS 결제 카드 데이터 보호 전송 및 저장 시 암호화, 감사 로깅, 강력한 인증
NIST 사이버 보안 모범 사례 위험 평가, 보안 통제, 주기적 감사
CIS 벤치마크 IT 시스템 강화 안전한 설정, RBAC, 네트워크 정책, 로깅

 

Threat Modelling Frameworks (STRIDE: Six Threat)

위협 유형 정의 Multi-factor authentication, certificate-based auth
스푸핑 (Spoofing) 합법적인 사용자 또는 시스템을 가장하는 행위 Encryption, Digital Signatures
변조 (Tampering) 전송 중이거나 저장된 데이터의 무단 수정 암호화, 디지털 서명
부인방지 (Repudiation) 수행된 행위(예: 거래)를 부인하는 행위 종합 로깅, 부인방지(non-repudiation) 기법
정보 노출 (Information Disclosure) 민감 데이터가 노출되는 행위 전송 시 TLS, 디스크 암호화
서비스 거부 (Denial of Service) 자원 고갈 또는 서비스 중단을 유발하는 행위 속도 제한(rate limiting), 리소스 쿼터, 오토스케일링 정책 적용
권한 상승 (Elevation of Privilege) 무단으로 상위 권한을 획득하는 행위 역할 기반 접근 제어(RBAC), 최소 권한 원칙 적용

 

Supply Chain Compliance

Core Area Description Tool / Standard
아티팩트 (Artifacts) 빌드 결과물: 이미지, 바이너리 Sigstore Cosign
메타데이터 (Metadata) 소프트웨어 자재 명세서(SBOM) SPDX
증명서 (Attestations) 서명된 출처 증명 문서 in-toto
정책 (Policies) 자동화된 컴플라이언스 적용 Sigstore Policy Controller

 

 

어려웠던 문제

Q1. Kubernetes Management 컴포넌트에 대한 무단 접근을 방지하기 위한  가장 효과적인 조치는 무엇일까요?

A2. etcd를 로컬호스트에 바인딩하기

이유: etcd는 Kubernetes의 핵심 데이터 스토어로, 클러스터 상태 및 시크릿 등 민감 정보를 저장합니다. etcd를 로컬호스트 인터페이스에만 바인딩하면 외부 네트워크에서 등d에 직접 접근하는 것을 근본적으로 차단합니다. 이렇게 하면 공격 표면(attack surface)을 줄이고, 무단 사용자가 etcd API를 호출해 중요한 데이터를 조작·열람하는 것을 방지할 수 있습니다.

 

Q2. API 서비스에 대한 SQL 인젝션 공격을 우려하고 있습니다. 이 위험을 완화하기 위해 어떤 모범 사례를 채택해야 할까요?

A2. prepared statements과 parameterized queries 사용하기

 

Q3. 백엔드 서비스에 사용된 third-party 라이브러리 취약점을 자동으로 스캔해야 합니다. 어떤 도구를 사용해야 할까요?

A3. OWASP Dependency-Check와 Snyk

  • OWASP Dependency-Check는 프로젝트의 의존성 트리를 분석해 알려진 CVE 데이터베이스와 대조하여 취약 라이브러리를 탐지합니다.
  • Snyk는 더 나아가 취약점의 심각도, 패치 가능성, 자동화된 PR 생성 기능 등을 제공해 개발 워크플로우에 통합하기에 최적화되어 있습니다.

 

Q4. 웹 애플리케이션에서 카드 소지자(cardholder) 데이터를 보호하기 위해 암호화 및 강력한 접근 제어를 구현했습니다.
이때 준수해야 하는 컴플라이언스(규제) 프레임워크는 무엇인가요?

A4. PCI DSS

이유:

  • PCI DSS(Payment Card Industry Data Security Standard)는 신용카드 정보(카드 번호, 만료일, 보안코드 등)를 저장·전송·처리하는 모든 조직이 지켜야 할 보안 표준입니다. 암호화, 접근 통제, 로깅, 네트워크 보안 등 카드 소지자 데이터를 안전하게 보호하기 위한 구체적인 요구사항을 담고 있습니다.
  • CIS Benchmarks는 Center for Internet Security에서 제공하는 시스템·애플리케이션 설정 가이드라인입니다.
  • HIPAA는 미국 의료 분야의 개인정보보호법(Health Insurance Portability and Accountability Act)으로, 의료정보(PHI)를 다루는 조직에 적용됩니다.
  • GDPR는 유럽연합(EU) 거주자의 개인정보(PII)를 보호하기 위한 법률(General Data Protection Regulation)입니다.

 

Q5. 컴플라이언스(규정 준수) 검사를 자동화하고 감사 보고서를 생성해야 합니다. 이를 위해 어떤 도구들이 적합할까요?

A5. Chef InSpec과 OpenSCAP

  • 이유:
    • Chef InSpec은 서버·컨테이너·클라우드 리소스에 대해 정책(Policy as Code) 기반의 컴플라이언스 규칙을 작성하고 자동으로 평가할 수 있습니다.
    • OpenSCAP은 SCAP(Security Content Automation Protocol) 표준을 활용해 OS 및 애플리케이션 설정이 벤치마크(CIS, DISA STIG 등)에 부합하는지 스캔하고, 리포트를 생성합니다.

 

'Infra > Kubernetes' 카테고리의 다른 글

Kubestronaut 취득 후기  (1) 2025.07.26
[CKS] CKS 대비  (0) 2025.04.20
[CKA] CKA 후기  (0) 2023.12.04
[CKA] CKA 알아둬야 하는 시스템 구조  (0) 2023.12.04
[CKA] CKA 알아둬야 하는 명령어  (0) 2023.12.04
Comments