Cyber Security Academy · บทเรียน

แบบจำลองภัยคุกคาม Kubernetes

จุดที่คลัสเตอร์อาจถูกโจมตี

บทเรียน 1 จาก 413 ขั้นตอน

แบบจำลองภัยคุกคาม Kubernetes เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใด Kubernetes จึงเป็นเป้าหมาย

Kubernetes จัดการคอนเทนเนอร์บนโหนดจำนวนมาก โดยรวมศูนย์ข้อมูลลับ เครือข่าย และการประมวลผลไว้ด้วยกัน ดังนั้นการเจาะระบบคลัสเตอร์อาจหมายถึงการเจาะระบบภาระงานทุกอย่างที่คลัสเตอร์นั้นทำงานอยู่

  • เซิร์ฟเวอร์ API เพียงเครื่องเดียวควบคุมทั้งคลัสเตอร์
  • โหนดต่าง ๆ เรียกใช้ภาระงานของผู้เช่าหลายรายอยู่เคียงข้างกัน
  • การตั้งค่าผิดพลาดเกิดขึ้นบ่อยกว่าช่องโหว่ CVE หลักมาก

ทบทวนสถาปัตยกรรมคลัสเตอร์

เพื่อสร้างแบบจำลองภัยคุกคาม คุณต้องรู้จักองค์ประกอบต่าง ๆ

  • ระนาบควบคุม: เซิร์ฟเวอร์ API, etcd, ตัวจัดตารางเวลา, ตัวจัดการตัวควบคุม
  • โหนด: kubelet, รันไทม์คอนเทนเนอร์, kube-proxy, พ็อด
  • etcd จัดเก็บสถานะและข้อมูลลับทั้งหมดของคลัสเตอร์

เซิร์ฟเวอร์ API เป็นจุดเข้าสู่ระบบเพียงจุดเดียว ส่วน etcd คือทรัพย์สินข้อมูลที่มีค่าที่สุด

แผนผังพื้นผิวการโจมตี

การโจมตีมุ่งเป้าไปยังชั้นต่าง ๆ ที่แยกจากกัน

  • ภายนอก: เซิร์ฟเวอร์ API, แดชบอร์ด และทางเข้าที่เปิดเผยต่อภายนอก
  • ภาระงาน: แอปพลิเคชันที่ถูกเจาะระบบภายในพ็อด
  • ตัวตน: โทเค็นบัญชีบริการและ RBAC
  • โหนด: API ของ kubelet และการหลบหนีจากคอนเทนเนอร์ไปยังโฮสต์
  • ห่วงโซ่อุปทาน: อิมเมจและส่วนพึ่งพาที่เป็นอันตราย

ระนาบควบคุมที่เปิดเผย

เซิร์ฟเวอร์ API หรือ kubelet ที่เข้าถึงได้จากอินเทอร์เน็ตและมีการยืนยันตัวตนที่อ่อนแอ เป็นเส้นทางโดยตรงสู่การยึดครองคลัสเตอร์

  • เปิดใช้งานการเข้าถึงแบบไม่ระบุตัวตนบนเซิร์ฟเวอร์ API
  • API สำหรับอ่าน/เขียนของ kubelet (พอร์ต 10250) ถูกเปิดเผย
  • แดชบอร์ด Kubernetes เปิดให้เข้าถึงได้พร้อมการผูกสิทธิ์ผู้ดูแลระบบ
# Probe an exposed kubelet for running pods
curl -sk https://NODE_IP:10250/pods

# Test anonymous API access
kubectl --insecure-skip-tls-verify --server https://API:6443 get pods

จุดยึดภายในพ็อด

จุดเริ่มต้นที่พบบ่อยที่สุดคือ RCE ในแอปพลิเคชันที่ทำงานอยู่ภายในพ็อด จากภายในพ็อด ผู้โจมตีจะค้นหาสิ่งต่อไปนี้

  • โทเค็นบัญชีบริการ ที่เมานต์ไว้ที่ /var/run/secrets/...
  • บริการภายในที่เข้าถึงได้ (ไม่มีนโยบายเครือข่าย)
  • เซิร์ฟเวอร์ API ซึ่งมักแก้ชื่อได้เป็น kubernetes.default
# From inside a pod: read the mounted SA token
cat /var/run/secrets/kubernetes.io/serviceaccount/token

# Use it against the API
curl -sk -H "Authorization: Bearer $(cat .../token)" https://kubernetes.default/api/v1/namespaces/default/pods

การหลบหนีจากคอนเทนเนอร์

การหลุดออกจากคอนเทนเนอร์ไปยังโหนดทำให้เข้าถึงภาระงานทั้งหมดบนโฮสต์นั้นได้

  • คอนเทนเนอร์ที่มีสิทธิ์สูงสามารถเข้าถึงอุปกรณ์ของโฮสต์และหลบหนีออกมาได้
  • การเมานต์ hostPID/hostNetwork/hostPath ขยายขอบเขตความเสียหาย
  • ซ็อกเก็ต Docker ที่เมานต์ไว้ทำให้สามารถเริ่มคอนเทนเนอร์ที่มีสิทธิ์สูงได้
  • ความสามารถที่เป็นอันตราย (SYS_ADMIN) ช่วยให้หลบหนีได้
# A privileged pod can mount the host filesystem and chroot to it
mount /dev/sda1 /mnt && chroot /mnt sh

etcd: คลังเก็บข้อมูลลับ

etcd เก็บสถานะทั้งหมดของคลัสเตอร์ รวมถึงข้อมูลลับ ซึ่งโดยค่าเริ่มต้นจะเข้ารหัสเพียงด้วย base64 เท่านั้น การเข้าถึง etcd โดยตรง (ซึ่งมักไม่มีการยืนยันตัวตนในคลัสเตอร์ที่ตั้งค่าผิดพลาด) ทำให้ข้อมูลลับทุกอย่างรั่วไหล

# Read all secrets from an exposed etcd
etcdctl --endpoints=https://NODE:2379 get / --prefix --keys-only

การเคลื่อนย้ายภายในคลัสเตอร์

เมื่อเข้ามาได้แล้ว ผู้โจมตีจะเคลื่อนต่อโดยใช้ตัวตนและเครือข่ายของคลัสเตอร์

  • บัญชีบริการที่อนุญาตกว้างเกินไปทำให้คุณสร้างพ็อดที่มีสิทธิ์สูงได้
  • เครือข่ายพ็อดแบบราบ (ไม่มี NetworkPolicy) อนุญาตให้เข้าถึงบริการใดก็ได้
  • การจัดตารางพ็อดลงบนโหนดเป้าหมายทำให้สามารถเจาะระบบโหนดได้

ข้อมูลเมตาคลาวด์จากพ็อด

ในคลัสเตอร์ที่มีการจัดการ (EKS/GKE/AKS) พ็อดอาจเข้าถึงบริการข้อมูลเมตาคลาวด์ของโหนดและขโมยข้อมูลรับรอง IAM/บทบาทของโหนด ซึ่งเชื่อมโยงการเจาะระบบคลัสเตอร์ไปสู่บัญชีคลาวด์

แนวทางป้องกันได้แก่ IMDSv2 การบล็อกข้อมูลเมตาที่ชั้นเครือข่าย และการใช้ตัวตนของภาระงานแทนบทบาทของโหนด

การทำแผนผังด้วยเครื่องมือ

เครื่องมือช่วยทำให้การประเมินภัยคุกคามของคลัสเตอร์เป็นไปโดยอัตโนมัติ

  • kube-hunter ตรวจสอบหาองค์ประกอบที่เปิดเผย
  • kube-bench ตรวจสอบการปฏิบัติตามเกณฑ์มาตรฐาน CIS
  • Peirates / kubeletctl จำลองเส้นทางการโจมตีภายในคลัสเตอร์
# Assess attack surface
kube-hunter --remote API_IP

# CIS benchmark check on a node
kube-bench run --targets node

ลำดับความสำคัญด้านการป้องกัน

แบบจำลองภัยคุกคามชี้ให้เห็นลำดับความสำคัญด้านการป้องกันที่ชัดเจน ได้แก่ ล็อกเซิร์ฟเวอร์ API จำกัด RBAC แยกพ็อดออกจากกัน เสริมความแข็งแกร่งให้โหนด และรักษาความปลอดภัยของห่วงโซ่อุปทาน บทเรียนถัดไปจะลงรายละเอียดแต่ละหัวข้อ

เมื่อทำการทดสอบ ให้โจมตีเฉพาะคลัสเตอร์ที่คุณได้รับอนุญาตเท่านั้น และหลีกเลี่ยงการทำให้ภาระงานในระบบจริงไม่เสถียร

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ตรวจสอบพื้นฐานการสร้างแบบจำลองภัยคุกคาม Kubernetes ของคุณ

สรุปทบทวน

คุณได้ทำแผนผังจุดที่คลัสเตอร์ Kubernetes ถูกโจมตี

  • เซิร์ฟเวอร์ API และ etcd เป็นเป้าหมายศูนย์กลางที่มีมูลค่าสูงสุด
  • จุดยึดภายในพ็อดอาศัยโทเค็น SA ที่เมานต์ไว้และเครือข่ายแบบราบ
  • พ็อดที่มีสิทธิ์สูงหรือใช้ hostPath ช่วยให้หลบหนีจากคอนเทนเนอร์ไปยังโหนดได้
  • คลัสเตอร์ที่มีการจัดการมีความเสี่ยงต่อการเคลื่อนเข้าสู่คลาวด์ผ่านข้อมูลเมตา

ถัดไป: RBAC และบัญชีบริการ

เริ่มต้นได้ฟรี

เรียนรู้ Cyber Security Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
76
บทเรียน
303

คำถามที่พบบ่อย

บทเรียน “แบบจำลองภัยคุกคาม Kubernetes” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แบบจำลองภัยคุกคาม Kubernetes” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แบบจำลองภัยคุกคาม Kubernetes”

จุดที่คลัสเตอร์อาจถูกโจมตี คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “แบบจำลองภัยคุกคาม Kubernetes” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แบบจำลองภัยคุกคาม Kubernetes
  2. RBAC และบัญชีบริการ
  3. ความปลอดภัยของพ็อดและนโยบายเครือข่าย
  4. การรักษาความปลอดภัยห่วงโซ่อุปทานและข้อมูลลับ
← กลับไปที่ Cyber Security Academy