Kubernetes Hardening
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kubescape๋ ์ํ ๋ถ์, ๋ณด์ ์ค์, RBAC ์๊ฐํ ๋ฐ ์ด๋ฏธ์ง ์ทจ์ฝ์ ์ค์บ์ ํฌํจํ ๋ค์ค ํด๋ผ์ฐ๋ K8s ๋จ์ผ ์ฐฝ์ ์ ๊ณตํ๋ K8s ์คํ ์์ค ๋๊ตฌ์ ๋๋ค. Kubescape๋ K8s ํด๋ฌ์คํฐ, YAML ํ์ผ ๋ฐ HELM ์ฐจํธ๋ฅผ ์ค์บํ์ฌ ์ฌ๋ฌ ํ๋ ์์ํฌ(์: NSA-CISA, MITRE ATT&CKยฎ)์ ๋ฐ๋ผ ์๋ชป๋ ๊ตฌ์ฑ, ์ํํธ์จ์ด ์ทจ์ฝ์ ๋ฐ RBAC(์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด) ์๋ฐ์ ์กฐ๊ธฐ์ ๊ฐ์งํ๊ณ , ์ํ ์ ์๋ฅผ ์ฆ์ ๊ณ์ฐํ๋ฉฐ, ์๊ฐ์ ๋ฐ๋ฅธ ์ํ ์ถ์ธ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๋๊ตฌ kube-bench๋ CIS Kubernetes Benchmark์ ๋ฌธ์ํ๋ ๊ฒ์ฌ๋ฅผ ์คํํ์ฌ Kubernetes๊ฐ ์์ ํ๊ฒ ๋ฐฐํฌ๋์๋์ง ํ์ธํ๋ ๋๊ตฌ์ ๋๋ค. ๋ค์ ์ค์์ ์ ํํ ์ ์์ต๋๋ค:
์ปจํ ์ด๋ ๋ด๋ถ์์ kube-bench ์คํ (ํธ์คํธ์ PID ๋ค์์คํ์ด์ค ๊ณต์ )
ํธ์คํธ์ kube-bench๋ฅผ ์ค์นํ๋ ์ปจํ ์ด๋๋ฅผ ์คํํ ํ, ํธ์คํธ์์ ์ง์ kube-bench ์คํ
Releases page์์ ์ต์ ๋ฐ์ด๋๋ฆฌ ์ค์น,
์์ค์์ ์ปดํ์ผ.
๋๊ตฌ kubeaudit๋ ๋ค์ํ ๋ณด์ ๋ฌธ์ ์ ๋ํด Kubernetes ํด๋ฌ์คํฐ๋ฅผ ๊ฐ์ฌํ๋ ๋ช ๋ น์ค ๋๊ตฌ์ด์ Go ํจํค์ง์ ๋๋ค.
Kubeaudit๋ ํด๋ฌ์คํฐ ๋ด์ ์ปจํ ์ด๋์์ ์คํ๋๊ณ ์๋์ง ๊ฐ์งํ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ํด๋น ํด๋ฌ์คํฐ์ ๋ชจ๋ Kubernetes ๋ฆฌ์์ค๋ฅผ ๊ฐ์ฌํ๋ ค๊ณ ์๋ํฉ๋๋ค:
์ด ๋๊ตฌ๋ ๋ํ autofix
์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ง๋ ๋ฌธ์ ๋ฅผ ์๋์ผ๋ก ์์ ํฉ๋๋ค.
๋๊ตฌ kube-hunter๋ Kubernetes ํด๋ฌ์คํฐ์ ๋ณด์ ์ทจ์ฝ์ ์ ํ์งํฉ๋๋ค. ์ด ๋๊ตฌ๋ Kubernetes ํ๊ฒฝ์ ๋ณด์ ๋ฌธ์ ์ ๋ํ ์ธ์๊ณผ ๊ฐ์์ฑ์ ๋์ด๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค.
Kubei๋ ์ฌ์ฉ์๊ฐ Kubernetes ํด๋ฌ์คํฐ์ ์ ํํ๊ณ ์ฆ๊ฐ์ ์ธ ์ํ ํ๊ฐ๋ฅผ ๋ฐ์ ์ ์๋๋ก ํด์ฃผ๋ ์ทจ์ฝ์ ์ค์บ๋ ๋ฐ CIS Docker ๋ฒค์น๋งํฌ ๋๊ตฌ์ ๋๋ค. Kubei๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋์ ์์คํ ํ๋์ ์ด๋ฏธ์ง๋ฅผ ํฌํจํ์ฌ Kubernetes ํด๋ฌ์คํฐ์์ ์ฌ์ฉ๋๋ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ์ค์บํฉ๋๋ค.
KubiScan์ Kubernetes์ ์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด(RBAC) ์ธ์ฆ ๋ชจ๋ธ์์ ์ํํ ๊ถํ์ ์ค์บํ๋ ๋๊ตฌ์ ๋๋ค.
Mkat๋ ๋ค๋ฅธ ๋๊ตฌ์ ๋น๊ตํ์ฌ ๊ณ ์ํ ์ฒดํฌ์ ๋ค๋ฅธ ์ ํ์ ํ ์คํธํ๊ธฐ ์ํด ๊ตฌ์ถ๋ ๋๊ตฌ์ ๋๋ค. ์ฃผ๋ก 3๊ฐ์ง ๋ชจ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค:
find-role-relationships
: ์ด๋ค AWS ์ญํ ์ด ์ด๋ค ํ๋์์ ์คํ๋๊ณ ์๋์ง ์ฐพ์ต๋๋ค.
find-secrets
: Pods, ConfigMaps ๋ฐ Secrets์ ๊ฐ์ K8s ๋ฆฌ์์ค์์ ๋น๋ฐ์ ์๋ณํ๋ ค๊ณ ์๋ํฉ๋๋ค.
test-imds-access
: ํ๋๋ฅผ ์คํํ๊ณ ๋ฉํ๋ฐ์ดํฐ v1 ๋ฐ v2์ ์ ๊ทผํ๋ ค๊ณ ์๋ํฉ๋๋ค. ๊ฒฝ๊ณ : ์ด ์์
์ ํด๋ฌ์คํฐ์์ ํ๋๋ฅผ ์คํํ๋ฏ๋ก, ์ํ์ง ์์ ์ ์์ผ๋ ๋งค์ฐ ์ฃผ์ํ์ธ์!
Popeye๋ ๋ผ์ด๋ธ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ค์บํ๊ณ ๋ฐฐํฌ๋ ๋ฆฌ์์ค ๋ฐ ๊ตฌ์ฑ์ ์ ์ฌ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ๋ ์ ํธ๋ฆฌํฐ์ ๋๋ค. ๋์คํฌ์ ์๋ ๊ฒ์ด ์๋๋ผ ๋ฐฐํฌ๋ ๊ฒ์ ๊ธฐ์ค์ผ๋ก ํด๋ฌ์คํฐ๋ฅผ ์ ๋ฆฌํฉ๋๋ค. ํด๋ฌ์คํฐ๋ฅผ ์ค์บํจ์ผ๋ก์จ ์๋ชป๋ ๊ตฌ์ฑ์ ๊ฐ์งํ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ์ ์ฉ๋๋๋ก ๋์์ฃผ์ด ํฅํ ๋ฌธ์ ๋ฅผ ์๋ฐฉํฉ๋๋ค. ์ด๋ ์ค์ ํ๊ฒฝ์์ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ด์ํ ๋ ์ง๋ฉดํ๋ ์ธ์ง ๊ณผ๋ถํ๋ฅผ ์ค์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ๋ํ ํด๋ฌ์คํฐ๊ฐ ๋ฉํธ๋ฆญ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ ์ฌ์ ์ธ ๋ฆฌ์์ค ๊ณผ๋ค/๊ณผ์ ํ ๋น์ ๋ณด๊ณ ํ๊ณ ํด๋ฌ์คํฐ์ ์ฉ๋์ด ๋ถ์กฑํ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ์๋ํฉ๋๋ค.
KICS๋ ๋ค์ ์ฝ๋๋ก์์ ์ธํ๋ผ ์๋ฃจ์ ์์ ๋ณด์ ์ทจ์ฝ์ , ์ค์ ๋ฌธ์ ๋ฐ ์ธํ๋ผ ์๋ชป๋ ๊ตฌ์ฑ์ ์ฐพ์ต๋๋ค: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM ๋ฐ OpenAPI 3.0 ์ฌ์
Checkov๋ ์ฝ๋๋ก์์ ์ธํ๋ผ์ ๋ํ ์ ์ ์ฝ๋ ๋ถ์ ๋๊ตฌ์ ๋๋ค.
Terraform, Terraform ๊ณํ, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless ๋๋ ARM ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ํ๋ก๋น์ ๋๋ ํด๋ผ์ฐ๋ ์ธํ๋ผ๋ฅผ ์ค์บํ๊ณ ๊ทธ๋ํ ๊ธฐ๋ฐ ์ค์บ๋์ ์ฌ์ฉํ์ฌ ๋ณด์ ๋ฐ ์ค์ ์๋ชป๋ ๊ตฌ์ฑ์ ๊ฐ์งํฉ๋๋ค.
kube-score๋ Kubernetes ๊ฐ์ฒด ์ ์์ ์ ์ ์ฝ๋ ๋ถ์์ ์ํํ๋ ๋๊ตฌ์ ๋๋ค.
์ค์น ๋ฐฉ๋ฒ:
Pods์ ๋ณด์ ์ปจํ ์คํธ(PodSecurityContext ์ฌ์ฉ)์ ์คํ๋ ์ปจํ ์ด๋์ ๋ณด์ ์ปจํ ์คํธ(SecurityContext ์ฌ์ฉ)๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์:
Kubernetes Api Server์ ๋ํ ์ ๊ทผ์ ๋ณดํธํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ถฉ๋ถํ ๊ถํ์ ๊ฐ์ง ์ ์์ ์ธ ํ์์๊ฐ ์ด๋ฅผ ๋จ์ฉํ๊ณ ํ๊ฒฝ์ ๋ง์ ํผํด๋ฅผ ์ค ์ ์์ต๋๋ค. ์ ๊ทผ(API ์๋ฒ์ ์ ๊ทผํ ์ ์๋ ์ถ์ฒ๋ฅผ ํ์ดํธ๋ฆฌ์คํธํ๊ณ ๋ค๋ฅธ ๋ชจ๋ ์ฐ๊ฒฐ์ ๊ฑฐ๋ถ)๊ณผ ์ธ์ฆ์ ๋ชจ๋ ์์ ํ๊ฒ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค(์ต์ ๊ถํ ์์น์ ๋ฐ๋ฆ). ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ต๋ช ์์ฒญ์ ํ์ฉํ์ง ๋ง์ธ์.
์ผ๋ฐ ์์ฒญ ํ๋ก์ธ์ค: ์ฌ์ฉ์ ๋๋ K8s ServiceAccount โ> ์ธ์ฆ โ> ๊ถํ ๋ถ์ฌ โ> ์น์ธ ์ ์ด.
ํ:
ํฌํธ๋ฅผ ๋ซ์ต๋๋ค.
์ต๋ช ์ ๊ทผ์ ํผํฉ๋๋ค.
NodeRestriction; ํน์ ๋ ธ๋์์ API์ ๋ํ ์ ๊ทผ์ ์ฐจ๋จํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก kubelet์ด node-restriction.kubernetes.io/ ์ ๋์ฌ๊ฐ ์๋ ๋ ์ด๋ธ์ ์ถ๊ฐ/์ ๊ฑฐ/์ ๋ฐ์ดํธํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ด ๋ ์ด๋ธ ์ ๋์ฌ๋ ๊ด๋ฆฌ์๊ฐ ์์ ๋ถํ ๊ฒฉ๋ฆฌ๋ฅผ ์ํด Node ๊ฐ์ฒด์ ๋ ์ด๋ธ์ ์ง์ ํ๋ ๋ฐ ์์ฝ๋์ด ์์ผ๋ฉฐ, kubelet์ ํด๋น ์ ๋์ฌ๊ฐ ์๋ ๋ ์ด๋ธ์ ์์ ํ ์ ์์ต๋๋ค.
๋ํ kubelet์ด ์ด๋ฌํ ๋ ์ด๋ธ ๋ฐ ๋ ์ด๋ธ ์ ๋์ฌ๋ฅผ ์ถ๊ฐ/์ ๊ฑฐ/์ ๋ฐ์ดํธํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
๋ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ์์ ํ ์์ ๋ถํ ๊ฒฉ๋ฆฌ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
ํน์ ํ๋์ API ์ ๊ทผ์ ํผํฉ๋๋ค.
ApiServer๊ฐ ์ธํฐ๋ท์ ๋ ธ์ถ๋๋ ๊ฒ์ ํผํฉ๋๋ค.
๋ฌด๋จ ์ ๊ทผ RBAC๋ฅผ ํผํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๋ฐ IP ํ์ดํธ๋ฆฌ์คํธ๊ฐ ์๋ ApiServer ํฌํธ.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ง์ ๋์ง ์์ผ๋ฉด Pod๊ฐ ์์๋ ๋ ๋ฃจํธ ์ฌ์ฉ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ค์๊ณผ ์ ์ฌํ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๋ ์์ ํ ์ปจํ ์คํธ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์์ต๋๋ค:
Kubernetes ํ๊ฒฝ์ ํ์์ ๋ฐ๋ผ ์์ฃผ ์ ๋ฐ์ดํธํ์ฌ ๋ค์์ ์ ์งํด์ผ ํฉ๋๋ค:
์ข ์์ฑ ์ต์ ์ํ.
๋ฒ๊ทธ ๋ฐ ๋ณด์ ํจ์น.
๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ: ๋งค 3๊ฐ์๋ง๋ค ์๋ก์ด ๋ง์ด๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค -- 1.20.3 = 1(์ฃผ์).20(๋ง์ด๋).3(ํจ์น)
Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ (์ฌ๊ธฐ์ ๋ณด๊ธฐ):
๋ค์ ์์์ ๋ฐ๋ผ ๋ง์คํฐ ๋ ธ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ทธ๋ ์ด๋ํฉ๋๋ค:
etcd (๋ชจ๋ ์ธ์คํด์ค).
kube-apiserver (๋ชจ๋ ์ ์ด ํ๋ ์ธ ํธ์คํธ).
kube-controller-manager.
kube-scheduler.
ํด๋ผ์ฐ๋ ์ปจํธ๋กค๋ฌ ๋งค๋์ , ์ฌ์ฉํ๋ ๊ฒฝ์ฐ.
kube-proxy, kubelet๊ณผ ๊ฐ์ ์์ปค ๋ ธ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ทธ๋ ์ด๋ํฉ๋๋ค.
๋ฐฐํฌํ | ๋ช ๋ น์ด / ๋งํฌ |
---|---|
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)