클라우드 / 컨테이너 / Kubernetes 보안
필수 조치 (读完后立刻执行)
NOW:../field-journal/precedent-pentest.md읽기 — 클라우드/K8s 테스트는 반드시 서면 승인 필요NOW: 케이스 초기화 + 범위 설정; 계정 경계 명확히 하고, 파괴적 작업 금지NOW: 클라우드 메타데이터/컨테이너/K8s/IAM인지 확인. 일반 웹 스캔이면pentest-tools/로 전환NEXT: 도구 인덱스 확인; kubectl/aws/gcloud 등은 주로 수동 설치ACT: '신원 및 노출 표면'부터 시작, 기본 전체 네트워크 스캔 금지
적용 시나리오
- 클라우드 메타데이터 SSRF (169.254.169.254 / IMDS)
- IAM 과도한 권한, 공개 스토리지 버킷, 잘못된 보안 그룹
- Docker/containerd 탈출 경로 평가
- Kubernetes RBAC, 시크릿, Admission, 공급망 이미지
- 컨테이너 이미지 취약점 (
supply-chain-security/와 연동 가능)
워크플로우
Phase 1 — 신원 및 경계
□ 현재 신원: 클라우드 AK/SK, K8s SA, 노드 SSH?
□ 범위: 단일 계정 / 단일 클러스터 / 단일 네임스페이스
□ 네트워크 제한: authorized_target_only
Phase 2 — 클라우드 제어면
# 예시 (공급업체에 따라 교체; 반드시 승인된 계정 내에서 실행)
aws sts get-caller-identity
aws s3 ls
# Azure / GCP 해당 identity 명령어
□ 공개 버킷 / 잘못된 ACL
□ 메타데이터: IMDSv1 vs v2; SSRF 체인
□ 역할 위임 가능(PassRole) 및 수평 이동
Phase 3 — 컨테이너
□ privileged / hostPath / hostNetwork 여부
□ capabilities (SYS_ADMIN 등)
□ 쓰기 가능한 호스트 경로 → 탈출 후보
□ 이미지 히스토리 및 알려진 CVE → Trivy
Phase 4 — Kubernetes
kubectl auth can-i --list
kubectl get pods,secrets,svc -A
kubectl get clusterrolebindings
□ SA 토큰 마운트 및 권한
□ 위험한 admission webhook 누락
□ etcd / dashboard 노출
□ 네트워크 정책이 기본적으로 허용인지 확인
도구 체인
| 도구 | 용도 | 부트스트랩 |
|---|---|---|
| kubectl | 클러스터 상호작용 | 수동 |
| trivy | 이미지/IaC 스캔 | bootstrap trivy 사용 가능 시 |
| kube-bench / kubeaudit | CIS/구성 감사 | 수동 |
| pacu / scoutsuite | 클라우드 감사 (승인 필요) | 수동 |
| nuclei | 알려진 클라우드 취약점 템플릿 | bootstrap nmap/nuclei 생태계 |
참고 자료
references/k8s-cloud-checklist.md- CTF 참고:
../../CTF-Sandbox-Orchestrator/competition-agent-cloud/ ../supply-chain-security/../pentest-tools/
라우팅 컨텍스트
상위: MASTER R23
하위: 노드 셸 획득 시 → attack-chain / windows-ad; 이미지 취약점 → supply-chain
금지 사항: 승인 없이 퍼블릭 클라우드의 다른 테넌트 스캔
작업 완료 자가 점검
- 승인된 계정/클러스터 내로 제한되었는가?
- 발견 사항에 재현 방법과 영향이 포함되었는가?
- 파괴적 작업을 피했는가?
- 보고서 / 저널 작성 완료?