
ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่งชาติ (ThaiCERT) ขอแจ้งเตือนผู้ใช้งาน Metabase ให้เร่งตรวจสอบและอัปเดตซอฟต์แวร์ หลังผู้พัฒนาเปิดเผยช่องโหว่ Zero-Day ระดับวิกฤต (Critical) ซึ่งได้รับคะแนน CVSS 3.1 เท่ากับ 10.0 และได้รับการยืนยันว่าถูกนำไปใช้โจมตีจริงแล้ว โดยช่องโหว่อาจทำให้ผู้โจมตีที่ไม่ได้ผ่านการยืนยันตัวตนได้รับสิทธิ์ผู้ดูแลระบบ และสามารถเข้าถึงข้อมูลสำคัญที่เชื่อมต่อกับ Metabase ได้
1. รายละเอียดภัยคุกคาม
Metabase เปิดเผยช่องโหว่ Zero-Day ระดับ Critical ในซอฟต์แวร์ Business Intelligence และ Data Visualization โดยช่องโหว่ดังกล่าวได้รับการติดตามภายใต้รหัส GHSA-vwf4-m7j8-wcjf [1] มีคะแนนความรุนแรง CVSS 3.1 เท่ากับ 10.0
ช่องโหว่นี้เป็นการโจมตีแบบ SQL Injection ซึ่งผู้โจมตีผ่านเครือข่ายที่ไม่ต้องผ่านการยืนยันตัวตน (Unauthenticated Remote Attacker) สามารถแทรกคำสั่ง SQL ไปยังฐานข้อมูลภายในของ Metabase (Metabase Application Database) ผ่าน endpoint ที่เกี่ยวข้องกับการรีเซ็ตรหัสผ่าน และอาจทำให้ผู้โจมตีได้รับสิทธิ์ผู้ดูแลระบบ (Administrator) ของ Metabase Instance ได้
เมื่อได้รับสิทธิ์ผู้ดูแลระบบแล้ว ผู้โจมตีอาจสามารถเปลี่ยนแปลงการตั้งค่าของแอปพลิเคชัน เข้าถึงหรือขโมยข้อมูลรับรองที่จัดเก็บไว้สำหรับฐานข้อมูลที่เชื่อมต่อกับ Metabase อ่านข้อมูลที่สามารถเข้าถึงได้ผ่านการเชื่อมต่อดังกล่าว รวมถึงส่งออกข้อมูลออกจากระบบได้
2. ระบบที่อาจได้รับผลกระทบและได้รับการแก้ไข [2][3][4]
Metabase ระบุเวอร์ชันที่ได้รับผลกระทบ ดังนี้
2.1 เวอร์ชัน ตั้งแต่ x.58.0 และต่ำกว่า x.58.23 (แก้ไขในเวอร์ชัน x.58.24)
2.2 เวอร์ชัน ตั้งแต่ x.59.0 และต่ำกว่า x.59.20 (แก้ไขในเวอร์ชัน x.59.21)
2.3 เวอร์ชัน ตั้งแต่ x.60.0 และต่ำกว่า x.60.16 (แก้ไขในเวอร์ชัน x.60.17)
2.4 เวอร์ชัน ตั้งแต่ x.61.0 และต่ำกว่า x.61.10 (แก้ไขในเวอร์ชัน x.61.11)
2.5 เวอร์ชัน ตั้งแต่ x.62.0 และต่ำกว่า x.62.8 (แก้ไขในเวอร์ชัน x.62.9)
2.6 เวอร์ชัน ตั้งแต่ x.63.0 และต่ำกว่า x.63.3 (แก้ไขในเวอร์ชัน x.63.5)
ทั้งนี้ Metabase ระบุว่าเวอร์ชันที่ต่ำกว่าเวอร์ชัน 58 ไม่ได้รับผลกระทบจากช่องโหว่นี้
3. ผลกระทบที่อาจเกิดขึ้น
หากช่องโหว่นี้ถูกใช้โจมตีสำเร็จ ผู้โจมตีจะสามารถเข้าถึงระบบด้วยสิทธิ์ผู้ดูแลระบบ (Administrator) ได้โดยไม่มีการยืนยันตัวตน ทำให้สามารถเปลี่ยนแปลงการตั้งค่าของแอปพลิเคชันได้ นอกจากนี้ยังสามารถขโมยข้อมูลรับรอง (Credentials) ที่เก็บไว้สำหรับฐานข้อมูลที่เชื่อมต่อ อ่านข้อมูลทั้งหมดที่เข้าถึงได้ผ่านฐานข้อมูลเหล่านั้น และส่งออกข้อมูลสำคัญไปนอกระบบได้ ซึ่งอาจนำไปสู่การรั่วไหลของข้อมูลความลับทางธุรกิจหรือข้อมูลส่วนบุคคลของผู้ใช้งานอย่างร้ายแรง
4. แนวทางการตรวจสอบและป้องกัน
4.1 ผู้ดูแลระบบที่ใช้งาน Metabase แบบ Self-hosted ควรตรวจสอบเวอร์ชันที่ใช้งานอยู่ และอัปเดตไปยังเวอร์ชันที่ได้รับการแก้ไขแล้วตามรายการข้างต้น โดยสามารถดาวน์โหลดแพตช์เวอร์ชันที่แก้ไขแล้วได้ที่ https://dg.th/iwl0j1z3kn
4.2 ตรวจสอบรูปแบบการโจมตีจาก Log บันทึกเหตุการณ์ โดย Metabase ระบุรูปแบบการโจมตีที่สามารถใช้ประกอบการตรวจสอบได้ ดังนี้
– พบการเรียก POST /api/session/reset_password และได้รับ HTTP Status Code 400
– หลังจากนั้นพบการเรียก GET /api/user/current และได้รับ HTTP Status Code 200
หากพบเหตุการณ์ทั้งสองรายการตามลำดับดังกล่าวใน Application Logs หรือ Metabase Server Ingress Logs ผู้พัฒนาระบุว่ามีความเป็นไปได้ที่ระบบจะถูกโจมตีสำเร็จ และควรดำเนินการตรวจสอบเหตุการณ์เพิ่มเติมโดยทันที
4.3 ตรวจสอบบัญชีผู้ดูแลระบบ (Administrator Accounts) รวมถึงการเปลี่ยนแปลงบัญชี สิทธิ์ หรือการเพิ่มผู้ใช้งานใหม่ที่ไม่เป็นไปตามกิจกรรมปกติของหน่วยงาน
4.4 ตรวจสอบ API Keys ที่มีอยู่ในระบบ และลบ API Keys ที่ไม่รู้จัก ไม่ได้ใช้งาน หรือไม่สามารถระบุแหล่งที่มาได้
4.5 ตรวจสอบ Metabase Activity และ Query History เพื่อค้นหากิจกรรม การสอบถามข้อมูล หรือการส่งออกข้อมูลที่ผิดปกติหรือไม่ได้รับอนุญาต
5. แนวทางลดความเสี่ยงและการดำเนินการเพิ่มเติม
5.1 กรณีไม่สามารถอัปเดตระบบได้ทันที หากยังไม่สามารถอัปเดต Metabase ได้ทันที ให้ปิดกั้นการเข้าถึง endpoint ที่
– /api/session/reset_password
เป็นการชั่วคราว โดยสามารถกำหนดข้อจำกัดผ่าน Firewall, Web Application Firewall (WAF), Reverse Proxy หรือกลไกควบคุมการเข้าถึงที่เหมาะสม
5.2 ยกเลิก Session ที่กำลังใช้งานทั้งหมด สำหรับระบบที่ endpoint /api/session/reset_password เคยเปิดให้สามารถเข้าถึงได้จากสาธารณะ
5.3 ตรวจสอบ API Keys ทั้งหมดภายในระบบ และลบ Keys ที่ไม่รู้จักหรือไม่ได้รับอนุญาตออกจากระบบ
5.4 ตรวจสอบบัญชี Administrator และการเปลี่ยนแปลงที่เกี่ยวข้องกับบัญชี เพื่อค้นหาการเพิ่มบัญชีหรือเปลี่ยนแปลงสิทธิ์โดยไม่ได้รับอนุญาต
5.5 ดำเนินการเปลี่ยนหรือหมุนเวียนข้อมูลบัญชีผู้ใช้งาน (Rotate Credentials) ของฐานข้อมูลที่เชื่อมต่อกับ Metabase โดยเฉพาะระบบที่ endpoint ดังกล่าวเคยเปิดให้เข้าถึงจากอินเทอร์เน็ต หรือระบบที่พบหลักฐานหรือพฤติกรรมที่อาจบ่งชี้ถึงการโจมตี
5.6 ตรวจสอบ Data Warehouse Logs, Metabase Activity และ Query History เพื่อค้นหาสัญญาณของการเข้าถึงข้อมูล การสอบถามข้อมูล หรือการส่งออกข้อมูลที่ไม่ได้รับอนุญาต
หากตรวจพบรูปแบบการโจมตีตามข้อ 4.2 หรือพบกิจกรรมที่อาจบ่งชี้ว่าระบบถูกเข้าถึงโดยไม่ได้รับอนุญาต ควรดำเนินการตรวจสอบเหตุการณ์เพิ่มเติม ประเมินขอบเขตของข้อมูลและระบบที่อาจได้รับผลกระทบ และดำเนินมาตรการตอบสนองต่อเหตุการณ์ตามกระบวนการของหน่วยงานโดยเร็วที่สุด
แหล่งอ้างอิง
