miinsun
KCSA 대비 본문
긍정어
- 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 |