Clear
Lead Graphic Papers

ระวังภัย แฮ็กเกอร์เผย 5 ช่องโหว่ 0-Day ใน MySQL

วันที่ประกาศ: 4 ธันวาคม 2555
ปรับปรุงล่าสุด: 4 ธันวาคม 2555
เรื่อง: ระวังภัย แฮ็กเกอร์เผย 5 ช่องโหว่ 0-Day ใน MySQL

ประเภทภัยคุกคาม: Intrusion, Denial of Service

Share on Facebook Share on Twitter Share on Facebook

ข้อมูลทั่วไป

แฮ็กเกอร์ที่ใช้นามแฝงว่า Kingcope ได้เผยแพร่ช่องโหว่ 0-Day ของโปรแกรม MySQL ในระบบกระดานข่าวของเว็บไซต์ Full Disclosure โดยมีทั้งหมด 5 ช่องโหว่ดังนี้ [1]

  1. CVE-2012-5611 — MySQL (Linux) Stack based buffer overrun PoC Zeroday
    • Stack-based buffer overflow อนุญาตให้ผู้ใช้ที่ได้รับสิทธิในการเข้าถึงระบบ สามารถสั่งประมวลผลคำสั่งอันตรายจากระยะไกล (Remote code execution) เพื่อได้รับสิทธิของคำสั่ง GRANT FILE
  2. CVE-2012-5612 — MySQL (Linux) Heap Based Overrun PoC Zeroday
    • Heap-based buffer overflow อนุญาตให้ผู้ใช้ที่ได้รับสิทธิในการเข้าถึงระบบสามารถทำ Denial of Service (Memory corruption และ Crash) และอาจสั่งประมวลผลคำสั่งอันตรายจากระยะไกลได้ เช่นคำสั่ง (1) USE, (2) SHOW TABLES, (3) DESCRIBE, (4) SHOW FIELDS FROM, (5) SHOW COLUMNS FROM, (6) SHOW INDEX FROM, (7) CREATE TABLE, (8) DROP TABLE, (9) ALTER TABLE, (10) DELETE FROM, (11) UPDATE, และ (12) SET PASSWORD
  3. CVE-2012-5613 — MySQL (Linux) Database Privilege Elevation Zeroday Exploit
    • ในกรณีที่มีการตั้งค่าระบบให้สิทธิของคำสั่ง FILE แก่ผู้ใช้งานที่ไม่มีสิทธิของผู้ดูแลระบบ ทำให้ผู้ใช้งานดังกล่าวสามารถยกระดับสิทธิของตัวเองโดยการสร้างไฟล์ผ่านคำ สั่ง FILE โดยไฟล์ดังกล่าวจะมีสิทธิเทียบเท่ากับไฟล์ที่สร้างโดย MySQL administrator อย่างไรก็ตาม ผู้พัฒนาได้ชี้แจงว่าช่องโหว่ดังกล่าวนี้เกิดจากความผิดพลาดของผู้ดูแลระบบ ที่ไม่ปฏิบัติตามคำแนะนำวิธีการที่ถูกต้องในการติดตั้งระบบ ซึ่งอาจพิจารณานำช่องโหว่ดังกล่าวนี้ออกจากรายการ CVE ในภายหลัง
  4. CVE-2012-5614 — MySQL Denial of Service Zeroday PoC
    • ผู้ใช้ที่ได้รับสิทธิในการเข้าถึงระบบสามารถทำ Denial of Service (Mysqld crash) โดยการใช้คำสั่ง SELECT คู่กับคำสั่ง UpdateXML ที่มีข้อมูล XML ประกอบด้วย element ประเภท unique และ nested จำนวนมาก
  5. CVE-2012-5615 — MySQL Remote Preauth User Enumeration Zeroday
    • สร้าง Error message โดยใช้ Time delay ตาม Username ที่มีอยู่ในระบบ ซึ่งทำให้ผู้ไม่หวังดีสามารถรู้รายชื่อ Username ที่มีอยู่ในระบบได้
ทั้ง 5 ช่องโหว่นี้มี Proof of Concept Code เผยแพร่ออกสู่สาธารณะแล้ว

ผลกระทบ

ระบบที่ใช้งาน MySQL เวอร์ชันที่มีช่องโหว่ดังกล่าวอาจถูกผู้ไม่หวังดีเข้าถึงข้อมูลสำคัญ เปลี่ยนแปลงข้อมูลในฐานข้อมูล หรืออาจถูกโจมตีจนระบบไม่สามารถให้บริการต่อได้ (Denial of Service)

ระบบที่ได้รับผลกระทบ

  1. CVE-2012-5611
    • MySQL 5.5.19, 5.1.53 และอาจจะมีในเวอร์ชั่นอื่นด้วย
    • MariaDB 5.5.2.x ก่อน 5.5.28a, 5.3.x ก่อน 5.3.11, 5.2.x ก่อน 5.2.13 และ 5.1.x ก่อน 5.1.66
  2. CVE-2012-5612
    • MySQL 5.5.19 และอาจจะมีในเวอร์ชั่นอื่นด้วย
    • MariaDB 5.5.28a และอาจจะมีในเวอร์ชั่นอื่นด้วย
  3. CVE-2012-5613
    • MySQL 5.5.19 และอาจจะมีในเวอร์ชั่นอื่นด้วย
    • MariaDB 5.5.28a และอาจจะมีในเวอร์ชั่นอื่นด้วย
  4. CVE-2012-5614
    • MySQL 5.5.19 และอาจจะมีในเวอร์ชั่นอื่นด้วย
    • MariaDB 5.5.28a และอาจจะมีในเวอร์ชั่นอื่นด้วย
  5. CVE-2012-5615
    • MySQL 5.5.19 และอาจจะมีในเวอร์ชั่นอื่นด้วย
    • MariaDB 5.5.28a, 5.3.11, 5.2.13, 5.1.66 และอาจจะมีในเวอร์ชั่นอื่นด้วย

ข้อแนะนำในการป้องกันและแก้ไข

ทีมพัฒนาของ MariaDB ซึ่งเป็น MySQL เวอร์ชันที่แยกไปพัฒนาต่อ (Fork) โดยนักพัฒนาภายนอก ได้แก้ไขช่องโหว่ดังกล่าวนี้ในโปรแกรม MariaDB เวอร์ชั่นล่าสุดแล้ว ผู้ใช้งาน MariaDB สามารถดาวน์โหลดเวอร์ชั่น 5.5.28a, 5.3.11, 5.2.13 และ 5.1.66 ไปติดตั้งได้ [2] พร้อมกันนี้ทาง MariaDB ได้ชี้แจงว่าช่องโหว่ CVE-2012-5631 นั้นไม่ใช่ข้อผิดพลาดของโปรแกรมแต่เป็นข้อผิดพลาดของการตั้งค่าระบบ และได้ให้ข้อมูลเพิ่มเติมว่าช่องโหว่ CVE-2012-5615 นั้นมีการค้นพบมานานกว่า 10 ปีแล้ว

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

อ้างอิง

  1. http://www.zdnet.com/vulnerabilities-threaten-to-crash-mysql-databases-7000008194/
  2. http://openquery.com/blog/mariadb-security-updates
Clear