ช่องโหว่ Google Vertex AI SDK เปิดช่องให้ผู้โจมตี hijack การอัปโหลดโมเดลผ่านเทคนิค Bucket Squatting

นักวิจัยจาก Palo Alto Networks Unit 42 ค้นพบช่องโหว่ร้ายแรงใน Google Cloud Vertex AI SDK สำหรับ Python ที่ช่วยให้ผู้โจมตีที่ไม่มีสิทธิ์เข้าถึงโปรเจกต์ของเหยื่อ สามารถ hijack การอัปโหลด ML model และรันโค้ดภายใน serving infrastructure ของ Google ได้ โดยใช้เทคนิคที่เรียกว่า “Pickle in the Middle” ซึ่งอาศัยการโจมตีแบบ bucket squatting — ผู้โจมตีเพียงสร้าง Cloud Storage bucket ด้วยชื่อที่ SDK ทำนายได้จาก project ID ของเหยื่อไว้ล่วงหน้า เพราะ bucket name เป็นแบบ globally unique เมื่อเหยื่ออัปโหลดโมเดล ไฟล์จะถูกส่งไปยัง bucket ของผู้โจมตีแทน จากนั้นผู้โจมตีจะสลับโมเดลดังกล่าวเป็นไฟล์ pickle ที่ฝังโค้ดอันตราย เมื่อ Vertex AI โหลดโมเดลที่ถูกสลับแล้ว โค้ดของผู้โจมตีจะทำงานใน serving container ทันที
Google ได้ออกแพตช์เรียบร้อยแล้ว โดยเวอร์ชัน 1.144.0 เพิ่ม uuid4 สุ่มลงในชื่อ bucket และเวอร์ชัน 1.148.0 เพิ่มการตรวจสอบ bucket ownership เพื่อป้องกัน bucket squatting ใน Model.upload() ผู้ใช้งาน Vertex AI SDK ควรอัปเดตเป็นเวอร์ชัน 1.148.0 หรือใหม่กว่าโดยเร็ว และควรกำหนด staging_bucket ของตนเองแทนการใช้ค่า default เพื่อลดความเสี่ยง Unit 42 ระบุว่ายังไม่พบการโจมตีจริงในช่วงเวลาที่ตรวจสอบ
ที่มา: The Hacker News
คำศัพท์เทคนิคที่น่าสนใจ
- Vertex AI SDK – Python SDK ของ Google Cloud สำหรับสร้างและ deploy machine learning model
- Bucket Squatting – เทคนิคโจมตีที่จองชื่อ storage resource ที่คาดการณ์ได้ไว้ล่วงหน้า เพื่อรับข้อมูลที่ไม่ได้ตั้งใจ
- Pickle – รูปแบบ serialization ของ Python ที่สามารถรันโค้ดอันตรายได้เมื่อโหลดไฟล์
- OAuth Token – โทเค็นสำหรับยืนยันตัวตนเพื่อเข้าถึง API และบริการต่างๆ ของ Google Cloud
- Vulnerability Reward Program – โปรแกรมจ่ายค่ารางวัลให้ผู้ที่พบและรายงานช่องโหว่
- Cloud Storage Bucket – พื้นที่เก็บข้อมูลบนคลาวด์ของ Google Cloud ที่ใช้ชื่อแบบ globally unique
- Metadata Server – เซิร์ฟเวอร์ที่เก็บข้อมูล credentials และ configuration สำหรับ instance บนคลาวด์