0Pricing
Cyber Security Academy · บทเรียน

การใช้ประโยชน์จากการกำหนดค่า IAM ที่ผิดพลาด

การยกระดับสิทธิ์บนคลาวด์

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

IAM ในฐานะกลไกยกระดับสิทธิ์

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

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

สิทธิ์ที่เป็นอันตราย

การดำเนินการ IAM บางอย่างทำให้ยกระดับสิทธิ์ได้โดยตรง ควรตรวจสอบสิ่งเหล่านี้ในตัวตนที่คุณควบคุม:

  • iam:CreateAccessKey กับผู้ใช้รายอื่น
  • iam:AttachUserPolicy / iam:PutUserPolicy (แนบ AdministratorAccess)
  • iam:CreatePolicyVersion (เขียนนโยบายที่มีอยู่ใหม่)
  • iam:PassRole + บริการประมวลผล (เรียกใช้โค้ดในฐานะบทบาทที่มีสิทธิ์สูง)
  • sts:AssumeRole กับนโยบายความเชื่อถือที่อ่อนแอ

การยกระดับสิทธิ์ด้วยการแนบนโยบาย

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

# Attach AdministratorAccess to yourself
aws iam attach-user-policy \
  --user-name me \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

การใช้ PassRole ในทางที่ผิด

iam:PassRole ช่วยให้คุณมอบบทบาทให้บริการได้ เมื่อใช้ร่วมกับบริการที่เรียกใช้โค้ดของคุณได้ (EC2, Lambda, Glue) คุณจะทำงานในฐานะบทบาทนั้น แม้บทบาทดังกล่าวจะมีสิทธิ์สูงกว่าคุณมากก็ตาม

# Launch a Lambda that assumes a privileged role you can pass
aws lambda create-function --function-name esc \
  --role arn:aws:iam::111:role/AdminRole \
  --runtime python3.12 --handler h.run --zip-file fileb://code.zip

การย้อนกลับเวอร์ชันนโยบาย

iam:CreatePolicyVersion หรือ SetDefaultPolicyVersion ช่วยให้คุณแทนที่เอกสารนโยบายที่ใช้งานอยู่ หรือย้อนกลับไปใช้เวอร์ชันก่อนหน้าที่อนุญาตสิทธิ์มากกว่า ทำให้ได้การเข้าถึงอย่างกว้างขวางโดยไม่ต้องแก้ไขการเป็นสมาชิกกลุ่ม

# Make a new, permissive default version of an existing policy
aws iam create-policy-version \
  --policy-arn arn:aws:iam::111:policy/devs \
  --policy-document file://admin.json --set-as-default

นโยบายความเชื่อถือและการใช้ AssumeRole ในทางที่ผิด

นโยบายความเชื่อถือของบทบาทกำหนดว่าใครสามารถรับบทบาทได้ เงื่อนไขความเชื่อถือที่อ่อนแอเปิดโอกาสให้ยึดบทบาท

  • บทบาทที่เชื่อถือ * หรือทั้งบัญชี สามารถถูกเรียกใช้ได้อย่างกว้างขวาง
  • หากคุณแก้ไขนโยบายความเชื่อถือของบทบาทได้ ให้เพิ่มตัวคุณเองเป็นตัวตนหลักที่เชื่อถือได้
  • ปัญหาตัวแทนสับสน: ไม่มีรหัสภายนอกในบทบาทการผสานรวมของบุคคลที่สาม
# Assume a poorly-scoped role
aws sts assume-role \
  --role-arn arn:aws:iam::111:role/CrossAccountAdmin \
  --role-session-name pt

สิ่งเทียบเท่าระหว่างระบบคลาวด์

รูปแบบเดียวกันนี้ปรากฏในผู้ให้บริการหลายราย

  • Azure: การกำหนดบทบาท User Access Administrator หรือ Owner การใช้ Managed Identity ในทางที่ผิด และการเพิ่มข้อมูลรับรองให้ตัวตนบริการ
  • GCP: iam.serviceAccounts.actAs ร่วมกับบริการประมวลผล การใช้ setIamPolicy กับโครงการ และการสร้างคีย์บัญชีบริการ
# GCP: impersonate a privileged service account
gcloud compute instances create esc --service-account priv@proj.iam.gserviceaccount.com --scopes cloud-platform

เครื่องมือสำหรับค้นหาเส้นทาง

แทนที่จะคาดเดา ให้ใช้เครื่องมือเพื่อเปิดเผยเส้นทางยกระดับสิทธิ์ที่ใช้งานได้จากตัวตนปัจจุบันของคุณ

# Pacu (AWS exploitation framework) escalation module
pacu
run iam__privesc_scan

# PMapper query for escalation
pmapper query 'preset privesc me'

การเชื่อมต่อไปยังระนาบควบคุม

การยกระดับสิทธิ์มักเชื่อมโยงการเข้าถึงระนาบข้อมูลเข้ากับอำนาจในระนาบควบคุม

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

แต่ละขั้นเชื่อมโยงเป็นข้อค้นพบแยกกันที่ควรรายงาน

การป้องกัน IAM

การป้องกันมุ่งเน้นที่การให้สิทธิ์เท่าที่จำเป็นและมาตรการควบคุม

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

การดำเนินการอย่างมีจริยธรรม

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

ประสานงานขั้นตอนที่อาจรบกวนระบบ เช่น การเขียนนโยบายที่ใช้ร่วมกันใหม่ กับลูกค้าล่วงหน้า

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

ตรวจสอบว่าคุณเข้าใจการยกระดับสิทธิ์ของ IAM แล้ว

สรุปทบทวน

คุณได้เรียนรู้ว่าการกำหนดค่า IAM ที่ไม่ถูกต้องทำให้ยกระดับสิทธิ์ได้อย่างไร

  • การแนบนโยบาย PassRole การย้อนกลับเวอร์ชัน และ AssumeRole เป็นเส้นทางหลัก
  • รูปแบบเดียวกันนี้เกิดขึ้นซ้ำใน AWS, Azure และ GCP
  • Pacu และ PMapper ค้นหาเส้นทางที่ใช้งานได้โดยอัตโนมัติ
  • การให้สิทธิ์เท่าที่จำเป็น ขอบเขตสิทธิ์ และรหัสภายนอกคือแนวทางป้องกัน

ถัดไป: การคงอยู่และการเคลื่อนย้ายด้านข้างข้ามบัญชีระบบคลาวด์

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

บทเรียน “การใช้ประโยชน์จากการกำหนดค่า IAM ที่ผิดพลาด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การใช้ประโยชน์จากการกำหนดค่า IAM ที่ผิดพลาด”

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

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

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

บทเรียน “การใช้ประโยชน์จากการกำหนดค่า IAM ที่ผิดพลาด” ใช้เวลานานแค่ไหน

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

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

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

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

  1. พื้นผิวการโจมตีบนคลาวด์
  2. การแจกแจงทรัพยากรคลาวด์
  3. การใช้ประโยชน์จากการกำหนดค่า IAM ที่ผิดพลาด
  4. การคงอยู่และการเคลื่อนที่ด้านข้าง
← กลับไปที่ Cyber Security Academy