การค้นหา AWS Account ID ของ S3 bucket
- ในปี 2021 Ben Bridts ได้เผยแพร่วิธีที่สร้างสรรค์ในการค้นหา AWS Account ID ของ S3 bucket ที่เปิดเผยสู่สาธารณะ
- บทความนี้อธิบายเทคนิคสำหรับค้นหา Account ID ของทั้ง S3 bucket แบบส่วนตัวและแบบสาธารณะ
จาก S3 bucket ไปยัง AWS Account ID
- แสดงเทคนิคในการค้นหา AWS Account ID ที่ไม่เคยทราบมาก่อนของ bucket ชื่อ
bucket-alpha ผ่านผลลัพธ์จากเชลล์
เทคนิคนี้ทำงานอย่างไรกันแน่?
- วิเคราะห์เหตุผลที่เทคนิคของ Ben ใช้งานได้ โดยเป็นการผสาน 3 องค์ประกอบหลัก:
- ความสามารถในการใช้ IAM policy กับคำขอ
- ความสามารถในการอนุมานได้ว่า IAM policy อนุญาตคำขอหรือไม่
- ความสามารถในการใช้ wildcard match กับคีย์เงื่อนไข
s3:ResourceAccount
วิธีแก้ปัญหา
- พบวิธีแก้ปัญหาโดยใช้ VPC endpoint สำหรับ S3 และอาศัยความแตกต่างของพฤติกรรมเมื่อคำขอถูกปฏิเสธใน CloudTrail
ดูแบบทีละขั้นตอน
- ขั้นตอนแบบทีละลำดับเมื่อคุณต้องการค้นหา Account ID ของ bucket
bucket-alpha:
- ระบุรีเจียนของ bucket
- ดีพลอย VPC และ VPC endpoint ในรีเจียนเดียวกัน
- เริ่มต้น EC2 instance ภายใน VPC และยืนยันว่าใช้ VPC endpoint สำหรับ S3
- แก้ไขนโยบายของ VPC endpoint เพื่อระบุว่า Account ID ของ bucket เป้าหมายขึ้นต้นด้วย "0" หรือไม่
- ส่งคำขอไปยัง bucket เป้าหมาย
- ตรวจสอบว่าคำขอปรากฏใน CloudTrail หรือไม่
- แก้ไขนโยบายของ VPC endpoint ตามผลลัพธ์เพื่อค้นหาข้อมูลของ Account ID เพิ่มเติม
ผลลัพธ์
- มีการเขียนสคริปต์เพื่อทำกระบวนการนี้แบบอัตโนมัติ ทำให้สามารถค้นหา Account ID ของ bucket ได้อย่างน่าเชื่อถือ
- ใช้ binary search กับแต่ละหลักเพื่อลดจำนวนครั้งของการทดสอบที่ต้องทำ
เพิ่มความเร็ว
- มีการปรับนโยบายของ VPC endpoint เพื่อลดเวลาที่ต้องรอให้ผลของนโยบายมีผล และลดเวลาที่ต้องรอผลแต่ละรายการใน CloudTrail
- ทำให้ลดเวลาที่ใช้ในการค้นหา Account ID ลงเหลือน้อยกว่า 10 นาที
ความเห็น
- โพสต์บล็อกนี้เผยแพร่หลังจากได้หารือกับทีมความปลอดภัยของ AWS
- มีการถกเถียงที่น่าสนใจว่า AWS Account ID ควรถูกมองว่าเป็นข้อมูลอ่อนไหวหรือไม่
- เทคนิคนี้อาจนำไปใช้กับบริการอื่นนอกเหนือจาก S3 ได้ด้วย
- เทคนิคเหล่านี้เป็นไปได้เพราะสามารถใช้เงื่อนไข
StringLike กับ s3:ResourceAccount ได้
- การที่เหตุการณ์ซึ่งถูกปฏิเสธโดยนโยบายของ VPC endpoint ถูกบันทึกลงใน CloudTrail อาจเป็นประโยชน์
คำขอบคุณ
- เทคนิคต้นฉบับของ Ben Bridt เป็นแรงบันดาลใจให้กับงานนี้
- ขอขอบคุณ Chris Farris สำหรับความช่วยเหลือและคำแนะนำ
ความเห็นของ GN⁺
- เทคนิคนี้อาจมีประโยชน์มากในการทำ security audit ในสภาพแวดล้อมคลาวด์ โดยเฉพาะในการตรวจสอบความเป็นเจ้าของของ AWS S3 bucket
- การถกเถียงเกี่ยวกับความอ่อนไหวของข้อมูลที่เทคนิคนี้เปิดเผย สะท้อนถึงบทสนทนาอย่างต่อเนื่องเรื่องความปลอดภัยของข้อมูลและความเป็นส่วนตัวระหว่างผู้ให้บริการคลาวด์กับผู้ใช้งาน
- เครื่องมืออื่นที่มีความสามารถคล้ายกันคือ CloudTrail ซึ่งเป็นบริการของ AWS เอง ใช้สำหรับบันทึกและมอนิเตอร์กิจกรรมทั้งหมดที่เกิดขึ้นในสภาพแวดล้อม AWS ของผู้ใช้
- ก่อนนำเทคนิคนี้มาใช้ ผู้ใช้ควรตรวจสอบให้แน่ใจว่าเทคนิคดังกล่าวสอดคล้องกับนโยบายของ AWS และแนวปฏิบัติด้านความปลอดภัยที่เหมาะสม
- ประโยชน์ที่ได้จากการใช้เทคนิคนี้คือการทำ security audit อย่างมีประสิทธิภาพและการยืนยันความเป็นเจ้าของข้อมูลได้อย่างรวดเร็ว แต่ก็ควรพิจารณาความเสี่ยง เช่น การเปิดเผยข้อมูลส่วนบุคคลที่อาจเกิดขึ้นด้วย
1 ความคิดเห็น
ความเห็นจาก Hacker News