0Pricing
Ethical Hacking Academy · บทเรียน

การเปิดเผย S3 และพื้นที่จัดเก็บ

บักเก็ตสาธารณะ

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

เหตุใดบักเก็ตพื้นที่จัดเก็บจึงทำให้ข้อมูลรั่วไหล

พื้นที่จัดเก็บออบเจ็กต์อย่าง AWS S3, Azure Blob และ GCP Cloud Storage เป็นหนึ่งในแหล่งที่มาที่พบบ่อยที่สุดของการรั่วไหลของข้อมูลบนคลาวด์ บักเก็ตสร้างได้ง่ายและกำหนดค่าผิดพลาดได้ง่าย

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

บักเก็ตสาธารณะเพียงหนึ่งรายการอาจทำให้ข้อมูลหลายล้านระเบียนรั่วไหล

การทำงานของการตั้งชื่อ S3

ชื่อบักเก็ต S3 ต้อง ไม่ซ้ำกันทั่วโลก และเชื่อมโยงกับ URL ที่คาดเดาได้ ความสามารถในการคาดเดานี้เองที่ทำให้การสำรวจเป็นไปได้

ผู้ใดก็ตามที่เดาชื่อบักเก็ตที่มีอยู่ได้ สามารถตรวจสอบระดับการเข้าถึงของบักเก็ตนั้น

# Two equivalent S3 URL forms
https://my-bucket.s3.amazonaws.com/
https://s3.amazonaws.com/my-bucket/

# Region-specific endpoint
https://my-bucket.s3.eu-west-1.amazonaws.com/

การตรวจหาบักเก็ตสาธารณะ

การทดสอบที่รวดเร็วที่สุดคือการส่งคำขอโดยไม่ผ่านการยืนยันตัวตน รหัสสถานะ HTTP จะบอกสถานะการเข้าถึง

  • 200 พร้อมรายการ XML — เข้าถึงรายการแบบสาธารณะ
  • 403 AccessDenied — มีบักเก็ตอยู่ แต่เป็นแบบส่วนตัว
  • 404 NoSuchBucket — ไม่มีบักเก็ตดังกล่าว
# Anonymous listing attempt
curl -s https://example-data.s3.amazonaws.com/

# Anonymous via the AWS CLI (no signing)
aws s3 ls s3://example-data --no-sign-request

การเดาชื่อบักเก็ตแบบไล่ครบทุกกรณี

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

รูปแบบทั่วไป: company-backups, company-dev, company-logs, company-assets

# Permutate and probe bucket names from a keyword
cloud_enum -k example

# Dedicated S3 enumerator
s3scanner scan --bucket-file candidates.txt

การอ่านสาธารณะเทียบกับการเขียนสาธารณะ

การเข้าถึงแบบสาธารณะมีสองลักษณะ และการเขียนอันตรายกว่าการอ่านมาก

  • การอ่านสาธารณะ — ผู้โจมตีดาวน์โหลดข้อมูลของคุณ (ข้อมูลรั่วไหล)
  • การเขียนสาธารณะ — ผู้โจมตีอัปโหลดหรือเขียนทับออบเจ็กต์

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

# Test for public write (DANGEROUS - only with authorization)
aws s3 cp test.txt s3://example-data/ --no-sign-request

# If this succeeds, the bucket allows anonymous uploads.

ความเข้าใจผิดเกี่ยวกับ 'Block Public Access'

AWS มีการตั้งค่า Block Public Access ทั้งในระดับบัญชีและระดับบักเก็ต การตั้งค่าเหล่านี้มีประสิทธิภาพสูง แต่ก็มักถูกเข้าใจผิด

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

ตรวจสอบสิทธิ์การเข้าถึงที่มีผลจริงเสมอ อย่าตรวจเพียงนโยบายเดียว

# Inspect block-public-access configuration
aws s3api get-public-access-block --bucket example-data
aws s3api get-bucket-policy-status --bucket example-data

การเปิดเผยข้อมูลจาก Azure Blob

Azure จัดเก็บออบเจ็กต์ไว้ใน คอนเทนเนอร์ภายใน บัญชีพื้นที่จัดเก็บ การกำหนดค่าที่ผิดพลาดจะตั้งระดับการเข้าถึงสาธารณะของคอนเทนเนอร์เป็น blob หรือ container

ชื่อบัญชีพื้นที่จัดเก็บก็ไม่ซ้ำกันทั่วโลกและคาดเดาได้เช่นกัน

# Azure blob URL pattern
https://exampleacct.blob.core.windows.net/container/file.txt

# Anonymous list attempt against a public container
curl -s 'https://exampleacct.blob.core.windows.net/backups?restype=container&comp=list'

การเปิดเผยข้อมูลจาก GCP Cloud Storage

บักเก็ต Google Cloud Storage อาจถูกทำให้เป็นสาธารณะได้โดยมอบบทบาทการอ่านให้กับหลักการ allUsers หรือ allAuthenticatedUsers

รูปแบบการเปิดเผยคล้ายกับ S3 ได้แก่ ชื่อที่คาดเดาได้ การตรวจสอบโดยไม่ระบุตัวตน และการผูก IAM แบบสาธารณะ

# Anonymous list of a GCS bucket
curl -s https://storage.googleapis.com/example-bucket/

# Check IAM bindings for allUsers (authenticated)
gsutil iam get gs://example-bucket

สิ่งที่ผู้โจมตีมองหาภายใน

บักเก็ตสาธารณะเป็นเพียงประตู สิ่งที่มีค่าจริง ๆ คือข้อมูลภายใน:

  • ข้อมูลดัมป์และข้อมูลสำรองของฐานข้อมูล
  • ซอร์สโค้ดและไฟล์ .env ที่มีความลับ
  • ข้อมูลรับรองคลาวด์และคีย์ API
  • PII ของลูกค้า (ข้อมูลส่วนบุคคล)
  • เอกสารและการกำหนดค่าภายใน

แม้ไฟล์ที่รั่วไหลเพียงเล็กน้อยก็อาจมีคีย์ที่ใช้ยกระดับไปสู่การเข้าถึงบัญชีทั้งหมดได้

การแก้ไขและเสริมความปลอดภัย

การแก้ปัญหาการเปิดเผยข้อมูลจากพื้นที่จัดเก็บต้องดำเนินการเป็นหลายชั้น:

  • เปิดใช้ Block Public Access ในระดับบัญชี
  • ลบ ACL สาธารณะและสิทธิ์ที่มอบให้ allUsers / allAuthenticatedUsers
  • ใช้นโยบายบักเก็ตที่จำกัดขอบเขตไว้เฉพาะหลักการที่ระบุ
  • เปิดใช้การเข้ารหัสและการบันทึกการเข้าถึง
  • สแกนการกำหนดค่าอย่างต่อเนื่องเพื่อค้นหาบักเก็ตสาธารณะที่เกิดขึ้นใหม่

จัดการข้อมูลที่เปิดเผยอย่างมีความรับผิดชอบ

การพบบักเก็ตสาธารณะที่มีข้อมูลจริงจำนวนมากมีทั้งประเด็นด้านจริยธรรมและกฎหมาย

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

เป้าหมายคือการพิสูจน์ว่ามีการเข้าถึงได้ ไม่ใช่การเก็บรวบรวมข้อมูล

ตรวจสอบอย่างรวดเร็ว

คำขอแบบไม่ระบุตัวตนไปยัง URL ของบักเก็ต S3 ได้รับ HTTP 403 AccessDenied สิ่งนี้บ่งชี้ว่าอย่างไร

สรุป: การเปิดเผยข้อมูลจาก S3 และพื้นที่จัดเก็บ

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

  • ชื่อบักเก็ตไม่ซ้ำกันทั่วโลกและ คาดเดาได้ จึงทำให้สำรวจได้
  • รหัสสถานะ HTTP เปิดเผยสถานะการเข้าถึง: 200 (สาธารณะ), 403 (ส่วนตัว), 404 (ไม่มีอยู่)
  • การเขียนสาธารณะอันตรายกว่าการอ่านสาธารณะ
  • รูปแบบเดียวกันนี้ใช้กับ Azure Blob และ GCP Cloud Storage
  • แก้ไขด้วย Block Public Access และนโยบายตามหลักสิทธิ์เท่าที่จำเป็น

ถัดไป: บริการข้อมูลเมตาและ SSRF ซึ่งเป็นห่วงโซ่การโจมตีเฉพาะของระบบคลาวด์

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

บทเรียน “การเปิดเผย S3 และพื้นที่จัดเก็บ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การเปิดเผย S3 และพื้นที่จัดเก็บ”

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

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

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

บทเรียน “การเปิดเผย S3 และพื้นที่จัดเก็บ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. พื้นผิวการโจมตีบนคลาวด์
  2. การกำหนดค่า IAM ผิดพลาด
  3. การเปิดเผย S3 และพื้นที่จัดเก็บ
  4. เมทาดาทาและ SSRF
← กลับไปที่ Ethical Hacking Academy