Kubernetes พ่น

Feb 02 2023
เขียนโดย: Yu Pengfei, Mah Chia Hui บทนำ การเติบโตอย่างรวดเร็วของการใช้งาน Kubernetes ในช่วงทศวรรษที่ผ่านมาถือเป็นปรากฏการณ์ที่ยิ่งใหญ่ อย่างไรก็ตาม กรุงโรมไม่ได้สร้างเสร็จในวันเดียว และเช่นเดียวกับกองเทคโนโลยีหลักอื่นๆ ที่ใช้กันในปัจจุบัน เทคโนโลยีการบรรจุตู้คอนเทนเนอร์ต้องใช้เวลาหลายทศวรรษในการพัฒนาก่อนที่ Kubernetes จะนำเสนอตัวเองเป็นช่องทางสื่อสารที่ดีที่สุดในขั้นตอนปัจจุบัน

เขียนบทโดย: หยู เผิงเฟย , มาห์เจียฮุย

การแนะนำ

การเติบโตอย่างรวดเร็วของการใช้งาน Kubernetes ในช่วงทศวรรษที่ผ่านมาถือเป็นปรากฏการณ์ที่ยิ่งใหญ่ อย่างไรก็ตาม กรุงโรมไม่ได้สร้างเสร็จในวันเดียว และเช่นเดียวกับกองเทคโนโลยีหลักอื่นๆ ที่ใช้กันในปัจจุบัน เทคโนโลยีการบรรจุตู้คอนเทนเนอร์ต้องใช้เวลาหลายทศวรรษในการพัฒนาก่อนที่ Kubernetes จะนำเสนอตัวเองเป็นช่องทางสื่อสารที่ดีที่สุดในขั้นตอนปัจจุบัน

เมื่อมีการใช้งานคอนเทนเนอร์มากขึ้น เอ็นจิ้นการประสาน เช่น Kubernetes ก็ได้รับความนิยมอย่างมาก ในฐานะกลไกการประสาน Kubernetes ช่วยในการจัดการ ปรับขนาด และปรับใช้แอปพลิเคชันคอนเทนเนอร์ ที่กล่าวว่ามีเอ็นจิ้นการประสานที่แตกต่างกันมากมาย (เช่น Docker Swarm) - เหตุใด Kubernetes จึงยังคงเป็นที่นิยม คำตอบอย่างรวดเร็วอยู่ที่ Kubernetes ที่มีฟีเจอร์มากมาย อัดแน่นไปด้วยความสามารถต่างๆ เช่น การรักษาตัวเองและการปรับขนาดอัตโนมัติ ยิ่งไปกว่านั้น Kubernetes ยังได้รับการปรับใช้เป็นบริการที่มีการจัดการโดยผู้ให้บริการคลาวด์ส่วนใหญ่ (CSP) สิ่งนี้ทำให้ตำแหน่งเป็น "มาตรฐานทองคำ" สำหรับเครื่องยนต์ออเคสตรา การนำ Kubernetes มาใช้ยังคงเติบโต โดย 96% ขององค์กรใช้หรือประเมิน Kubernetes (https://thenewstack.io/is-kubernetes-adoption-slowing/)

ปัญหาของ Mo' Honey Mo'

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

บทความนี้เป็นบทความแรกในซีรีส์เกี่ยวกับความปลอดภัยของ Kubernetes จะให้ภาพรวมของการโจมตีทั่วไปและแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยขั้นพื้นฐานสำหรับ Kubernetes บทความต่อๆไปจะลงลึกในการโจมตีที่ซับซ้อนยิ่งขึ้น เช่น การติด HostPath, แทรมโพลีนพ็อด/โหนด ฯลฯ และการแก้ไข

เพื่อให้เข้าใจถึงการโจมตี ก่อนอื่นเราต้องเข้าใจสถาปัตยกรรม Kubernetes แผนภาพระดับสูงด้านล่างเป็นจุดเริ่มต้นที่ดี อย่าลังเลที่จะข้ามไปที่ “Attack Methodology” หากคุณคุ้นเคยกับสถาปัตยกรรม Kubernetes และพื้นฐานของมันแล้ว

แผนภาพสถาปัตยกรรม Kubernetes

พ็อด

Kubernetes ประกอบด้วยชิ้นส่วนที่เคลื่อนไหวจำนวนมาก และหน่วยการ ทำงานที่ต่ำที่สุดเรียกว่าPOD พ็อดสามารถโฮสต์คอนเทนเนอร์และปริมาตรพื้นที่เก็บข้อมูลต่างๆ ได้หลายรายการ แต่ละพ็อดยังมีที่อยู่ IP ที่ไม่ซ้ำกันอีกด้วย นอกจากนี้ยังปรับขนาดได้เป็นพิเศษเนื่องจากอิงจากพิมพ์เขียวการปรับใช้ (ไฟล์ yaml)

โหนด

เพื่อให้ทุกอย่างง่ายขึ้นสำหรับทุกคน เราจะแจกแจงประเภทของโหนดเป็น:

● โหนดผู้ปฏิบัติงาน

● มาสเตอร์โหนด

ชุดของโหนดสร้างคลัสเตอร์

โหนดผู้ปฏิบัติงาน:

พ็อดอยู่บนโหนดผู้ปฏิบัติงานเหล่านี้ซึ่งสามารถเป็นเครื่องเสมือนหรือเครื่องจริงก็ได้ คุณสามารถคิดว่ามันเป็นเครื่องโฮสต์สำหรับพ็อด

โหนดหลัก:

Master Node เป็นผู้ดูแลระบบขั้นสูงสุดในคลัสเตอร์ทั้งหมด ควบคุมและจัดการโหนดผู้ปฏิบัติงานทั้งหมด ซึ่งรวมถึงส่วนประกอบต่อไปนี้: เซิร์ฟเวอร์ Kube-API, Kube-Controller-Manager, Kube Scheduler เป็นต้น

เนมสเปซ

เนมสเปซ Kubernetes เป็นกลไกการแยกที่แยกทรัพยากรภายในคลัสเตอร์ ซึ่งโดยทั่วไปจะใช้เมื่อทีมต่างๆ ทำงานในคลัสเตอร์เดียวกัน ในบริบทของความปลอดภัยทางไซเบอร์ ออบเจ็กต์/ทรัพยากรเนมสเปซแต่ละรายการจะไม่ซ้ำกันสำหรับเนมสเปซ การเรียกใช้ข้ามเนมสเปซของวัตถุ/ทรัพยากรเป็นไปไม่ได้ เนื่องจากวัตถุ/ทรัพยากรเหล่านี้ถูกแยกออกจากกันภายในเนมสเปซ

ด้วยความรู้ใหม่ทั้งหมดนี้ คุณควรมีความเข้าใจพื้นฐานเกี่ยวกับสภาพแวดล้อม Kubernetes มาดูด้านที่น่าสนใจกันดีกว่า มีใครโจมตี Kubernetes อย่างไร

วิธีการโจมตี

วิธีการของผู้โจมตีที่ซับซ้อนสามารถแบ่งออกเป็นสามขั้นตอน

ขั้นที่ 1: ตั้งหลักเบื้องต้น

วิธีหลักในการตั้งหลักคือการประนีประนอมเว็บแอปพลิเคชันหรือไมโครเซอร์วิสที่โฮสต์บนคลัสเตอร์ วัตถุประสงค์ของผู้โจมตีคือการได้รับการเรียกใช้โค้ดจากระยะไกลบนแอปพลิเคชันโดยการแจกแจงแอปพลิเคชันและระบุช่องโหว่ที่สามารถใช้ประโยชน์ได้ (เช่น log4shell, apache struts)

ขั้นตอนที่ 2: การยกระดับสิทธิ์

เมื่อตั้งหลักในคลัสเตอร์ Kubernetes ได้ ผู้โจมตีจะอยู่ในพ็อด ซึ่งตามที่อธิบายไว้เป็นเพียงคอนเทนเนอร์นักเทียบท่า ผู้โจมตีสามารถดักจับข้อมูลที่ละเอียดอ่อนในคอนเทนเนอร์ได้ แต่จำกัดเฉพาะข้อมูลที่มีอยู่เท่านั้น . ดังนั้น ผู้โจมตีจะหาทางยกระดับไปยังพ็อดที่มีสิทธิ์มากกว่าหรือไปที่โหนด

ต่อไปนี้คือเทคนิคทั่วไปบางประการที่ผู้โจมตีจะใช้:

  • ไฟล์ที่ละเอียดอ่อน

การแก้ไข:

นอกเหนือจากแนวทางปฏิบัติมาตรฐานที่จะไม่ทิ้งข้อมูลรับรองที่ละเอียดอ่อนไว้ในพ็อด ผู้ดูแลระบบ Kubernetes ควรปฏิบัติตามหลักการของสิทธิ์ขั้นต่ำเมื่อให้สิทธิ์แก่โทเค็นบัญชีบริการ

  • แอปพลิเคชันที่เข้าถึงได้

การแก้ไข:

หากต้องการจัดการพ็อด เนมสเปซ หรือแม้แต่เซิร์ฟเวอร์ภายนอกที่สามารถเข้าถึงทรัพยากร Kubernetes เฉพาะ ผู้ดูแลระบบ Kubernetes สามารถใช้ทรัพยากรนโยบายเครือข่าย Kubernetesได้

  • บริการข้อมูลเมตาบนคลาวด์

การแก้ไข:

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

  • การฝ่าวงล้อมของฝัก

การแก้ไข:

ผู้ดูแลระบบ Kubernetes สามารถใช้ทรัพยากรตัวควบคุมการรับเข้า ซึ่งเป็นทรัพยากร Kubernetes ที่ตรวจสอบความถูกต้องของทรัพยากรทั้งหมดที่สร้างขึ้นในคลัสเตอร์ Kubernetes โดยชุดกฎที่กำหนดไว้ ทรัพยากรที่ไม่เป็นไปตามชุดกฎที่กำหนดไว้จะไม่สามารถสร้างได้ ส่งผลให้เกิดข้อผิดพลาด

ขั้นตอนที่ 3: รับมงกุฎเพชร

ในระบบนิเวศ Kubernetes มงกุฎเพชรหมายถึงโหนดหลัก ผู้โจมตีที่ได้รับสิทธิ์เข้าถึงโหนดหลักอย่างสมบูรณ์จะสามารถควบคุมคลัสเตอร์ Kubernetes ได้อย่างสมบูรณ์ ผู้โจมตีจะใช้เทคนิคที่มีรายละเอียดในขั้นตอนที่ 1 และ 2 ซ้ำ เพื่อย้ายจากพ็อดที่ติดไวรัสไปยังโหนดที่อยู่ด้านข้าง และสุดท้ายไปยังโหนดหลัก เพื่อป้องกันไม่ให้สถานการณ์ที่เลวร้ายที่สุดนี้เกิดขึ้น ผู้ดูแลระบบ Kubernetes จะต้องตรวจสอบให้แน่ใจว่าคลัสเตอร์ได้รับการกำหนดค่าอย่างปลอดภัยด้วยการแก้ไขบางอย่างที่กล่าวถึงข้างต้น

นั่นหมดแล้วหรือ?

สำหรับการดูมาตรการรักษาความปลอดภัย Kubernetes ขององค์กรของคุณอย่างครอบคลุมยิ่งขึ้น เราขอแนะนำให้คุณใช้เมทริกซ์การโจมตี Kubernetes ของ Microsoft เมทริกซ์ประกอบด้วยกลยุทธ์หลักที่เกี่ยวข้องกับความปลอดภัยของ Kubernetes แต่ละคนมีเทคนิคหลายอย่างที่ผู้โจมตีสามารถใช้เพื่อให้บรรลุเป้าหมายที่แตกต่างกัน

บทสรุป

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

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

ดูแลและจับคุณบน FLIPPETY-FLIP